1

因此,目前我很难理解如何设置 Power BI Embedded,以便每个客户都可以从他们自己的单独 Azure 分析服务访问数据,这是一种应用程序拥有数据的情况。Analysis Services 将在内存模式下运行,并将通过 Live Connect 从 Power BI 进行访问。

理想情况下,我希望 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.

4

1 回答 1

3

请注意,

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)

于 2018-03-13T11:51:01.970 回答