Power BI共享数据集的优点是:只要数据集刷新,那么引用该数据集的报表都会自动刷新,节省了报表数据刷新的时间和算力,缺点是:使用共享数据集的报表,虽然可以新增Measure(Measure仅存在于本地报表中,不会同步到共享dataset),但是无法修改数据模型,比如,无法修改关系,不能创建计算列,不能查看共享Measure的定义等,这导致报表开发的自由度受到限制。
一,什么是共享数据集?
在Power BI Service中,任何一个Report都由两部分构成:Report (可视化图表)和Dataset(数据集),两者的关系是:可视化图表引用数据集的数据,并以一定的UI显示数据。
当使用Power BI Desktop IDE进行报表开发时,可能会误以为报表和数据是一体的。虽然不会轻易的看到分开的Report和数据集,但是,只需要你打开Task Manager,在PowerBI Desktop进程下面存在Microsoft SQL Server Analysis Service,这就是报表的数据集部分,而Microsoft Power BI Desktop就是报表的可视化设计部分。
当把报表(PBIX文件)发布到Power BI Service之后,我们就能很容易看到报表是由report和dataset两部分构成的:
- report 是报表的可视化实现,主要是由图表及其布局构成
- dataset 主要包括数据表,数据字段的格式,关系(relationships),度量(Measure),计算列(calculated column)和连接(connection to the data source)等构成
例如,Alignment Report报表,在Workspaces中查看到两个同名的Name,但是Type不同:
如果多个Report共用一个Dataset,那么这个Dataset就是共享数据集。每当Dataset刷新后,任何引用这个Dataset的Report都会自动刷新,这也是共享数据集的优点。
共享数据集的一个重要作用,是把后端(建立数据集)的任务从整个报表开发流程中分离出来,后端只需要把精力集中在数据查询,模型关联等跟数据处理有关的工作上,而前端只需要把精力集中在DAX表达式和可视化的设计上,这对于BI团队的分工协作有重要意义。
二,如何创建共享数据集
任何Power BI dataset都可以是共享数据集,创建共享数据集的方法非常简单,只需要把PBIX文件发布到Power BI Service中,当发布成功之后,这个Dataset就可以作为共享数据集。
三,如何连接共享数据集
连接共享数据集的操作也是十分简单,在Power BI Desktop中新建一个报表,从Data hub中点击 Power BI datasets,并从datasets列表中选择合适的dataset,点击"Connect",开始连接共享数据集。
当连接到共享数据集之后,就可以使用dataset来进行可视化设计。报表和数据集之间的连接是Live Connection,Online 报表(已经发布到Power BI Service的report)的查询性能跟数据集是否共享没有关系,如果共享数据集使用Import方式连接数据源,那么引用共享数据集的报表的查询性能是非常快的。报表可以创建报表级别的Measure,但是建模会受到限制,数据模型只能在原始数据集中进行修改。
在Power BI Desktop中开发report时,report UI是local的,而共享dataset是online的,查询性能受到网络的影响,这也是Live Connection的特点。
参考文档:
Power BI Shared Datasets: What is it? How does it work? and Why should you care?