다음을 통해 공유


PowerShell을 사용하여 Power BI 보고서의 데이터 원본 연결 문자열 변경 - Power BI Report Server

Power BI 보고서의 DirectQuery 및 새로 고침에 대한 연결을 업데이트할 수 있는 기능을 활성화합니다.

중요합니다

이는 이전 버전에서의 설정 방법에 대한 호환성을 깨뜨리는 변경사항이기도 합니다.

필수 조건

  • Power BI Report Server 및 Power BI Report Server용 Power BI Desktop의 최신 릴리스를 다운로드합니다.
  • 향상된 데이터 세트 메타데이터가 활성화된 상태에서 보고서 서버에 최적화된 Power BI Desktop의 2020년 10월 이상 버전으로 저장된 보고서입니다.
  • 매개 변수가 있는 연결을 사용하는 보고서입니다. 게시 후 매개 변수가 있는 연결 및 데이터베이스가 있는 보고서만 업데이트할 수 있습니다.
  • 이 예제에서는 Reporting Services PowerShell 도구를 사용합니다. 새 REST API를 사용하여 동일한 작업을 수행할 수 있습니다.

매개 변수가 있는 연결을 사용하여 보고서 만들기

  1. 서버에 대한 SQL Server 연결을 만듭니다. 아래 예제에서는 Localhost에 연결하여 ReportServer라는 데이터베이스에 연결하고 ExecutionLog에서 데이터를 가져옵니다.

    SQL Server 데이터베이스에 연결

    이 시점에서 M 쿼리의 모양은 다음과 같습니다.

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. 파워 쿼리 편집기 리본에서 매개 변수 관리를 선택합니다.

    매개 변수 관리 선택

  3. 서버 이름 및 데이터베이스 이름에 대한 매개 변수를 만듭니다.

    매개 변수를 관리하고 서버 이름 및 데이터베이스 이름을 설정합니다.

  4. 첫 번째 연결에 대한 쿼리를 편집하고 데이터베이스 및 서버 이름을 매핑합니다.

    서버 및 데이터베이스 이름 매핑

    이제 쿼리는 다음과 같습니다.

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. 해당 보고서를 서버에 게시합니다. 이 예제에서 보고서의 이름은 executionlogparameter입니다. 다음 이미지는 데이터 원본 관리 페이지의 예입니다.

    데이터 원본 관리 페이지입니다.

PowerShell 도구를 사용하여 매개 변수 업데이트

  1. PowerShell을 열고 다음 지침에 따라 최신 Reporting Services 도구를 설치합니다 https://github.com/microsoft/ReportingServicesTools.

  2. 보고서에 대한 매개 변수를 얻으려면 다음 PowerShell 호출을 사용하여 새 REST DataModelParameters API를 사용합니다.

    Get-RsRestItemDataModelParameters '/executionlogparameter'
    
        Name         Value
        ----         -----
        ServerName   localhost
        Databasename ReportServer
    
  3. 이 호출의 결과를 변수에 저장합니다.

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. 사전에 매핑하여 매개 변수 값에 액세스합니다.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
    
  5. 이 변수는 변경해야 하는 값으로 업데이트됩니다.

  6. 원하는 매개 변수의 값을 업데이트합니다.

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  7. 업데이트된 값을 사용하여 commandlet Set-RsRestItemDataModelParameters 을 사용하여 서버의 값을 업데이트할 수 있습니다.

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  8. 매개 변수가 업데이트되면 서버는 매개 변수에 바인딩된 모든 데이터 원본을 업데이트합니다. 데이터 원본 편집 대화 상자로 돌아가서 업데이트된 서버 및 데이터베이스에 대한 자격 증명을 설정할 수 있어야 합니다.

    업데이트된 서버 및 데이터베이스에 대한 자격 증명을 설정합니다.

더 많은 질문? Power BI 커뮤니티에 문의해 보세요.