如何使用Power BI Embedded

时间:2018-03-05 12:44:53

标签: powerbi powerbi-embedded azure-analysis-services

因此,目前我很难理解如何设置Power BI Embedded,以便每个客户都可以从他们自己的Azure Analysis Service访问数据,这是 App Owns Data 情况。 Analysis Services将以In-Memory模式运行,并将通过Live Connect从Power BI访问。

理想情况下,我希望Power BI报告不知道数据集/数据源,直到嵌入式报告提供了报告解释的参数(例如连接字符串),以便它知道连接到哪个服务器。因此,理想情况下:一个工作区,一个报告,零(或假)数据集。

以下大致是我要做的事情(注意红色和蓝色流访问不同的服务器):

enter image description here

看起来如果我为每个客户创建报告和数据集我可以实现我的目标,但这似乎是一种糟糕的方法,因为如果需要更新报告,这涉及更新,可能包括数百个报告。当所有Power BI需要针对每个请求进行更改时,创建数百个报告似乎也是不必要的开销,这是指向数据源的连接字符串。

是否可以在所有客户之间共享工作区和报告,但拥有完全独立的数据源?或者我的方法是否与Power BI预期运作的方式相冲突?

到目前为止,我在Power BI Desktop中配置数据源时尝试使用Query Parameters但是我收到以下错误:

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.

1 个答案:

答案 0 :(得分:2)

请注意,

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

使用Power BI团队提供的C#.NET库,您可以使用

Reports.CloneReport(string reportKey, CloneReportRequest requestParameters)

Datasets.SetAllDatasetConnections(string datasetKey, ConnectionDetails parameters)