在 Power BI 报表中重复使用以前发布的数据源

Reuse a previosly published datasource in a Power BI report

我使用 Power BI Desktop 开发了一个 Power BI 报告,指向一个私有的本地开发数据库作为数据源,这样我就可以轻松地开发和测试它。然后,我将它从我的 Power BI Desktop pbix 发布到我客户的工作区。

因此,工作区包含已发布的报表和数据集。后来,我的客户更改了数据集,使其现在指向他们自己的正确的本地生产数据库。它完美运行。

现在,我想使用之前发布并重新配置的数据集为我的客户发布一份新报告。问题是我在 Power BI Desktop 中看不到任何让报表指向已发布数据集的选项,也看不到任何避免在每次发布报表时创建新数据集的选项,也看不到任何方式来从 Web 门户重新配置新发布的报告以指向与第一个报告相同的数据集。

有什么方法可以做到这一点或解决这个问题吗?我认为最合理的解决方案是能够更改任何报告的数据集,以便任何报告的数据集都可以互换。

更新: 我已经使用了特定于连接的参数,但我无权更改已发布的数据集,所以这是一个死胡同。

我想到的另一件事是,在 Power BI Desktop 中,如果您无法从计算机访问目标数据库,则无法将连接参数值更改为生产环境的值并发布报告,因为 PowerBI Desktop要求您首先应用更改,当它尝试应用值时,它会尝试连接到相应的数据库,显然,以网络相关错误或超时错误结束尝试连接到数据库服务器,因此取消更改并返回起点。

使用 connection specific parameters 定义数据源始终是一个好习惯。这意味着您不直接输入服务器名称,而是使用参数间接指定它。数据库名称相同(如果适用)。

如果您要制作新报告,请取消 Get data 对话框,按如下所述定义参数,然后在 Get data 中使用这些参数指定数据源:

要修改现有报告,请单击 Edit Queries 打开 Power Query Editor,然后在 Manage Parameters 中定义两个新的文本参数,我们将它们命名为 ServerNameDatabaseName:

将它们的当前值设置为指向您的数据源之一,例如SQLSERVER2016AdventureWorks2016。然后在报告中右键单击您的查询并打开 Advanced Editor。在M代码中找到服务器名和数据库名:

并将它们替换为上面定义的参数,因此 M 代码将如下所示:

现在您可以关闭并应用更改,您的报告应该会像以前一样工作。但是现在当你想改变数据源时,使用 Edit Parameters:

并更改服务器 and/or 数据库名称以指向您要用于报告的其他数据源:

更改参数值后,Power BI Desktop 会要求您应用更改并从新数据源重新加载数据。要更改在 Power BI 服务中发布的报表的参数值(即数据源),请转到数据集的设置并输入新服务器 and/or 数据库名称:

如果服务器是本地服务器,也请检查 Gateway connection,以确保其配置正确以使用正确的网关。您可能还想检查 Manage gateways:

中的可用网关

更改数据源后,刷新数据集以从新数据源获取数据。使用 Power BI Pro 帐户,您可以每 24 小时执行 8 次,而如果数据集位于专用容量中,则此限制提高到每 24 小时 48 次。

这是制作报告的简单方法 "switchable",例如用于将一份报告从 DEV 或 QA 切换到 PROD 环境,或者作为灾难恢复计划的一部分,自动将某些工作组中的所有报告切换到另一台 DR 服务器。在您的情况下,这将允许您(或您的客户)轻松切换报告的数据源。

我认为唯一正确的答案是不能做到,至少目前不能。 最接近实现这一点的方法是使用实​​时连接: https://docs.microsoft.com/en-us/power-bi/desktop-report-lifecycle-datasets

但是如果你已经设计了你的报告而不使用实时连接而是你自己的开发环境和相应的连接参数那么你就迷路了,你唯一的机会是用实时连接重做你的所有报告,或者最奇怪的一种解决方案, 在您的配置中使用与数据库服务器名称匹配的别名以及与目标生产环境中相同的数据库名称。