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

时间:2020-02-17 14:58:45

标签: powerbi report datasource

我已经使用Power BI Desktop开发了Power BI报表,它指向内部私有开发数据库作为数据源,因此我能够轻松地开发和测试它。然后,将其从Power BI Desktop pbix发布到客户的工作区域。

因此,工作区包含已发布的报告和数据集。后来,我的客户更改了数据集,以使其现在指向他们自己的正确的本地生产数据库。效果很好。

现在,我想使用先前发布和重新配置的数据集为我的客户发布新报告。问题在于,我无法在Power BI Desktop中看到任何选项来使报告指向已发布的数据集,也无法看到避免在每次发布报告时避免创建新数据集的任何选项,也无法通过任何方式从Web门户重新配置新发布的报告,使其指向与第一个报告相同的数据集。

在这种情况下,是否有任何方法可以解决此问题?我认为最合理的解决方案是能够更改任何报告的数据集,以便任何报告的数据集都可以互换。

更新: 我已经使用了特定于连接的参数,但是没有获得更改已发布数据集的权限,因此这是一个死胡同。

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

2 个答案:

答案 0 :(得分:1)

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

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

enter image description here

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

enter image description here

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

如果服务器为本地服务器,请也检查Gateway connection,以确保已正确配置它以使用正确的网关。您可能还需要检查Manage gateways中的可用网关:

enter image description here

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

这是使报告“可切换”的简单方法,例如用于将一个报告从DEV或QA切换到PROD环境,或作为灾难恢复计划的一部分,以自动将某个工作组中的所有报告切换到另一台DR服务器。就您而言,这将使您(或您的客户)轻松切换报告的数据源。

答案 1 :(得分:0)

我认为唯一正确的答案是至少在此刻无法完成。 实现此目的的最接近方法是使用实​​时连接: https://docs.microsoft.com/en-us/power-bi/desktop-report-lifecycle-datasets

但是,如果您已经在不使用Live连接的情况下设计了报表,但是您自己的开发环境和相应的连接参数就使您迷失了,那么唯一的机会就是使用Live Connection(或者最奇怪的一种解决方案)重做所有报表,在您的配置中使用一个别名,该别名与数据库服务器的名称和目标生产环境中的数据库名称相同。