Zmena reťazec pripojenia zdroja údajov v zostavách Power BI pomocou prostredia PowerShell – Power BI Report Server

Umožňujeme aktualizovať a obnovovať pripojenia pre zostavy služby Power BI pre režim DirectQuery.

Dôležité

V porovnaní s predchádzajúcimi vydaniami ide o prelomovú zmenu v spôsobe nastavenia. Ak používate verziu Power BI Report Servera spred októbra 2020, pozrite si tému Zmena reťazec pripojenia zdroja údajov v zostavách služby Power BI pomocou prostredia PowerShell – verzia Power BI Report Servera spred októbra 2020

Predpoklady

  • Stiahnite si najnovšie vydanie Power BI Report Servera a aplikácie Power BI Desktop pre Power BI Report Server.
  • Zostava uložená s vydaním aplikácie Power BI Desktop z októbra 2020 alebo novšou verziou optimalizovanou pre server zostáv s povolenou možnosťou Rozšírené metaúdaje množiny údajov.
  • Zostava, ktorá používa parametrizované pripojenia. Po publikovaní možno aktualizovať iba zostavy s parametrizovanými pripojeniami a databázami.
  • V tomto príklade sa používajú nástroje prostredia PowerShell služby Reporting Services. To isté je možné dosiahnuť pomocou nových rozhraní REST API.

Vytvorenie zostavy s parametrizovanými pripojeniami

  1. Vytvorte pripojenie SQL Servera k serveru. V príklade uvedenom nižšie sa pripájame k lokálnemu hostiteľovi k databáze s názvom ReportServer a ťaháme údaje z tabuľky ExecutionLog.

    Connect to the SQL Server database

    Takto vyzerá dotaz jazyka M:

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. Na páse s nástrojmi Editor Power Query vyberte položku Spravovať parametre.

    Select Manage Parameters

  3. Vytvorte parametre pre servername a databasename.

    Manage Parameters, set servername and databasename.

  4. Upravte dotaz na prvé pripojenie a namapujte položky databasename a servername.

    Map the Server and Database name

    Dotaz teraz vyzerá takto:

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. Publikuje túto zostavu na server. V tomto príklade má zostava názov executionlogparameter. Nasledujúci obrázok je príkladom stránky správy zdroja údajov.

    The data source management page.

Aktualizácia parametrov pomocou nástrojov prostredia PowerShell

  1. Otvorte prostredie PowerShell a nainštalujte najnovšie nástroje služby Reporting Services podľa pokynov na stránke https://github.com/microsoft/ReportingServicesTools.

  2. Ak chcete získať parameter zostavy, použite nové rozhranie REST DataModelParameters API pomocou nasledujúceho volania prostredia PowerShell:

    Get-RsRestItemDataModelParameters '/executionlogparameter'
    
        Name         Value
        ----         -----
        ServerName   localhost
        Databasename ReportServer
    
  3. Výsledok tohto volania uložíme v premennej:

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. Ak chcete získať prístup k hodnotám parametrov, priraďte sa ku slovníku.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
    
  5. Táto premenná sa aktualizuje hodnotami, ktoré potrebujeme zmeniť.

  6. Aktualizujte hodnoty požadovaných parametrov:

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  7. S aktualizovanými hodnotami môžeme použiť rutinu typu commandlet Set-RsRestItemDataModelParameters na aktualizáciu hodnôt na serveri:

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  8. Po aktualizácii parametrov server aktualizuje všetky zdroje údajov, ktoré boli viazané na parametre. Vráťte sa do dialógového okna Úprava zdroja údajov. Mali by ste mať možnosť nastaviť poverenia pre aktualizovaný server a databázu.

    Set credentials for the updated server and database.

Máte ďalšie otázky? Skúste sa spýtať Komunita Power BI