Power BI Desktop 파일에서 Power Query로 데이터를 가져올 수 ②

3638 단어 자신의 메모
마지막 기사 을 근거로, 곧 사용할 수 있도록 재구성한 것.

처리 흐름


  • Power BI Desktop에서 데이터를 추출하려는 파일을 열어 둡니다.
  • PowerShell : 접속 상태를 텍스트 파일을 출력.
  • Power Query : 텍스트 파일에서 localhost를 얻습니다.
  • Power Query : localhost로 데이터베이스 이름을 얻습니다.
  • Power Query : 데이터베이스 이름을 사용하여 pbix와의 연결 쿼리를 만듭니다.

  • PowerShell 코드



    우리 Win7 환경을 사용하는 경우가 많기 때문에 netstat입니다.

    Export_netstat
    #プロセスIDを取る.
    [string]$msmdsrv_id =(Get-Process msmdsrv).Id
    #接続状況の文字列を得て,絞り込む.
    $vStr =netstat -no
    #行末がIDなので,それで絞り込む.
    $vStr | Select-String (" " + $msmdsrv_id + "$") |Out-File "C:\Users\Public\Documents\localhost.txt"
    
    
    

    출력되는 텍스트 파일은 이런 느낌.


    Power Query 코드



    DAX 코드를 파라미터로 합니다. 텍스트 파일의 경로는 Powershell에서 고정 위치로 출력하는 가정이므로 멋지다.

    fx_FromPBIX
    (DAX as text)=>
    let
        FromTXT = Table.FromColumns({
                    Lines.FromBinary( File.Contents("C:\Users\Public\Documents\localhost.txt"), null, null, 932 )
                  }),
        //空白行のごみがあるので,空の削除をしてからの選択となる.
        FirstLine = Table.SelectRows(FromTXT, each [Column1] <> null and [Column1] <> ""){0}[Column1],
    
        //環境によっては囲んでる文字がちょっと違うかもしれない.その辺は現場対応.
        StrLocalhost = "localhost:" &
                       Text.Trim(
                            Text.BetweenDelimiters(FirstLine,"[::1]:","[::1]")," "
                       ),
    
        DBName = AnalysisServices.Databases(StrLocalhost, [TypedMeasureColumns=true, Implementation="2.0"])[Name]{0},
        Connect_pbix = AnalysisServices.Database(StrLocalhost, DBName, 
                                        [Implementation="2.0", 
                                         Query= DAX
               ]),
        列名の整理 = Table.TransformColumnNames( Connect_pbix,each Text.BetweenDelimiters(_,"[","]") )
    in
        列名の整理
    

    ↓호출한 모습


    업데이트 내역



    2020/2/2: 「처리의 흐름」의 개소를 번호 첨부 리스트로 변경.

    좋은 웹페이지 즐겨찾기