Как получить доступ к серверу анализа Azure с одним клиентом с помощью Power BI Embedded

Итак, в настоящее время мне сложно понять, как можно настроить Power BI Embedded, чтобы каждый клиент мог получить доступ к данным из своей отдельной службы анализа Azure. Это ситуация App Owns Data. Службы Analysis Services будут работать в режиме In-Memory, и доступ к ним будет осуществляться из Power BI через Live Connect.

В идеале я бы хотел, чтобы отчет Power BI игнорировал набор данных / источник данных до тех пор, пока встроенный отчет не будет предоставлен с параметром (например, строкой подключения), который интерпретируется отчетом, чтобы он знал, к какому серверу подключаться. Итак, в идеале иметь: одну рабочую область, один отчет и ноль (или поддельный) набор данных.

Вот примерно то, что я хочу сделать (обратите внимание, что красный и синий поток обращаются к другому серверу):

введите здесь описание изображения

Похоже, что если бы я создал и отчет, и набор данных для каждого клиента, я смогу достичь своей цели, но это кажется плохим подходом, поскольку, если отчет необходимо обновить, это предполагает обновление, возможно, сотен отчетов. Кроме того, создание сотен отчетов кажется ненужными накладными расходами, когда все, что нужно изменить в Power BI для каждого запроса, - это строка подключения, указывающая на источник данных.

Так можно ли совместно использовать рабочую область и отчет для всех клиентов, но имея полностью отдельные источники данных? Или мой подход противоречит тому, как Power BI ожидает работать?

На данный момент я пробовал использовать Параметры запроса при настройке источника данных в Power BI Desktop, но я получаю следующую ошибку:

The connect live option for this file is disabled because it already contains data from another data source. You cannot explore live data and connect to another type of data source in the same file.


person Peadar Doyle    schedule 05.03.2018    source источник


Ответы (1)


Пожалуйста, обрати внимание,

Каждый отчет в Power BI можно подключить только к одному набору данных. НЕТ возможности динамически изменять строку подключения на лету.

В настоящее время и в обозримом будущем вам придется клонировать отчет и набор данных для каждого клиента (или для каждой настройки подключения) и изменить строку подключения нового набора данных для соответствия.

Затем вы можете динамически выбирать, какой отчет отображать, в зависимости от потребностей вашего клиента.

Клонировать отчет можно с помощью:

POST https://api.powerbi.com/v1.0/myorg/reports/{report_id}/Clone

POST https://api.powerbi.com/v1.0/myorg/groups/{group_id}/reports/{report_id}/Clone

https://msdn.microsoft.com/en-us/library/mt784674.aspx

Изменение строки подключения будет выполняться с помощью:

POST https://api.powerbi.com/v1.0/myorg/datasets/{dataset_id}/Default.SetAllConnections (аналогичный API для групп)

https://msdn.microsoft.com/en-us/library/mt748181.aspx

используя библиотеку C # .NET, предоставленную командой Power BI, вы должны использовать

Reports.CloneReport(string reportKey, CloneReportRequest requestParameters)

Datasets.SetAllDatasetConnections(string datasetKey, ConnectionDetails parameters)

person RBreuer    schedule 13.03.2018
comment
Чем больше я копал, тем больше казалось, что единственным вариантом было наличие отчета / набора данных для каждого клиента. Это кажется действительно плохим подходом для подхода, основанного на использовании данных приложением. - person Peadar Doyle; 14.03.2018