Поделиться через


Изменение строка подключения источников данных в отчетах Power BI с помощью PowerShell — Сервер отчетов Power BI

Мы можем обновлять подключения для отчетов Power BI для DirectQuery и обновлять их.

Важно!

Это также критическое изменение о том, как можно настроить это в предыдущих выпусках. Если вы используете предварительную версию Сервер отчетов Power BI за октябрь 2020 г., см. статью об изменении строка подключения источников данных в отчетах Power BI с помощью PowerShell — Сервер отчетов Power BI до октября 2020 г.

Необходимые компоненты

  • Скачайте последнюю версию Сервер отчетов Power BI и Power BI Desktop для Сервер отчетов Power BI.
  • Отчет, сохраненный в выпуске Power BI Desktop за октябрь 2020 г., оптимизированный для сервера отчетов, с включенными расширенными метаданными набора данных.
  • Отчет, использующий параметризованные подключения. После публикации можно обновить только отчеты с параметризованными подключениями и базами данных.
  • В этом примере используются средства PowerShell служб Reporting Services. Вы можете добиться того же, используя новые интерфейсы REST API.

Создание отчета с параметризованными подключениями

  1. Создайте подключение SQL Server к серверу. В приведенном ниже примере мы подключаемся к localhost к базе данных с именем ReportServer и извлекаем данные из ExecutionLog.

    Connect to the SQL Server database

    Вот как выглядит запрос M на этом этапе:

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. Выберите "Управление параметрами" на ленте Редактор Power Query.

    Select Manage Parameters

  3. Создайте параметры для имени сервера и имени базы данных.

    Manage Parameters, set servername and databasename.

  4. Измените запрос на первое подключение и сопоставийте имя базы данных и сервера.

    Map the Server and Database name

    Теперь запрос выглядит следующим образом:

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. Опубликуйте этот отчет на сервере. В этом примере отчет называется executionlogparameter. На следующем рисунке показан пример страницы управления источниками данных.

    The data source management page.

Обновление параметров с помощью средств PowerShell

  1. Откройте PowerShell и установите последние средства Служб Reporting Services, следуя инструкциям.https://github.com/microsoft/ReportingServicesTools

  2. Чтобы получить параметр отчета, используйте новый API REST DataModelParameters с помощью следующего вызова PowerShell:

    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 для обновления значений на сервере:

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  8. После обновления параметров сервер обновляет все источники данных, привязанные к параметрам. Вернитесь в диалоговое окно "Изменить источник данных", вы сможете задать учетные данные для обновленного сервера и базы данных.

    Set credentials for the updated server and database.

Есть еще вопросы? Задайте их в сообществе Power BI.