다음을 통해 공유


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

DirectQuery 및 새로 고침에 대한 Power BI 보고서의 연결을 업데이트할 수 있습니다.

Important

이 기능은 이전 릴리스에서 설정하는 방법에 관한 호환성이 손상되는 변경이기도 합니다. Power BI Report Server의 2020년 10월 이전 버전을 사용하고 있는 경우 PowerShell을 사용하여 Power BI 보고서에서 데이터 원본 연결 문자열 변경 - Power BI Report Server 2020년 10월 이전 버전을 참조하세요.

필수 조건

  • Power BI Report Server용 Power BI Report Server 및 Power BI Desktop의 최신 릴리스를 다운로드합니다.
  • 향상된 데이터 세트 메타데이터를 사용하며, Report Server에 최적화된 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. Power Query 편집기 리본에서 매개 변수 관리를 선택합니다.

    매개 변수 관리 선택

  3. servername 및 databasename에 대한 매개 변수를 만듭니다.

    매개 변수 관리, servername 및 databasename 설정

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

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

    이제 쿼리는 다음과 같이 표시됩니다.

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

    데이터 원본 관리 페이지.

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

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

  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. 업데이트된 값을 사용하면 Set-RsRestItemDataModelParameters commandlet을 사용하여 서버에서 값을 업데이트할 수 있습니다.

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

    업데이트된 서버와 데이터베이스에 대한 자격 증명 설정

추가 질문이 있으신가요? Power BI 커뮤니티에 질문합니다.