混迹江湖,岂能不知数据流和数据集之间的区别
在本文中,你将了解这两个组件之间的区别,何时何地使用它们以及与Power BI的其他组件是如何一起工作的。
Power BI Dataflow是Power BI中的数据转换组件。它是一个Power Query流程,独立于Power BI报表和数据集在云中运行,并将数据存储到Azure Data Lake存储内的CDM。(通用数据模型)
Power BI数据集是包含与数据源,数据表,数据本身,表与表之间的关系以及DAX计算的连接的对象。通常,Power BI数据集在Power BI Desktop视图中是隐藏的,但可以在Power BI Pro上就可以轻松看到。
相信刚刚的阐述,现在的你应该很清楚两者之间的定义,接下来我们来讨论它们之间的区别。
数据流正在将Power Query逻辑和代码与Power BI文件分离,以便可以在多个文件中使用。
使用共享数据集,你可以重复使用为其他Power BI文件中的一个模型创建的DAX计算和关系。
数据流是Power BI实施中的数据转换层。该层的术语是ETL(提取,转换,加载)。这将从数据源提取数据,转换数据,然后将其加载到CDM中。
数据集是所有计算和建模的基础。它将从数据流(或从其他来源)获取数据,并使用Power BI(Analysis Services)引擎构建内存数据模型。
数据流的结果将被馈送到数据集中以进行进一步建模;数据流本身不是可用于可视化的组件。
由于数据集是已构建并准备进行可视化的内存中模型,因此其结果通常直接用于构建可视化。
除非你使用链接的实体或计算的实体,否则数据流通常直接从数据源获取数据。
尽管数据集可以直接从数据源获取数据,但是,最佳实践是共享数据集从数据流获取数据。
使用数据流和共享数据集的原因之一是使各层分离,因此你需要多个开发人员同时构建Power BI解决方案。在这样的环境中,Dataflow开发人员所需的技能集全部与Power Query。Dataflow开发人员不需要DAX或可视化技能。
另一方面,数据集开发人员需要了解有关Power BI中关系的所有知识以及使用DAX进行Power BI中的计算。数据集开发人员虽然可以了解Power Query和可视化,但这不是他/她的主要技能。
数据流的结果可用于数据建模者。将数据流的输出提供给报表可视化工具不是一个好方法。因为仍然需要将数据流加载到具有适当关系和计算的模型中。
数据集的结果可供报表可视化工具使用。他们可以简单地与共享数据集建立实时连接,并从中建立可视化。
使用数据流,你可以减少将Power Query脚本复制并粘贴到其他文件中的需求。你可以在多个文件中重复使用一个表。
使用共享数据集,你可以使用相同的计算和数据模型创建多个报告,而无需重复执行代码。
看到这,估计你可能有点懵懵的状态,那我们现在稍稍整理下我们这长篇幅所述的主要内容,归纳起来如下(您肯定很快就理解了):
数据流 |
数据集 |
替换Power查询层 |
替换你的建模、关系、dax表达式 |
ETL层 |
建模层 |
将数据馈送到数据集 |
提供可视化层 |
直接访问数据源(通常) |
从数据流访问数据(最佳实践) |
数据流开发人员需要具备强大的查询技能 |
数据集开发人员需要dax和建模技能 |
数据流的用户是数据建模者 |
数据集的用户是报表可视化工具 |
dataflow解决了在不同的pbix文件中拥有同一表的多个版本的问题 |
dataset解决了在不同的pbix文件中有相同dax代码的多个版本的问题 |