在Power BI Desktop中,可以对多个表格、多种来源的数据,根据不同的维度、不同的逻辑做聚合分析;而分析数据的前提是要将这些数据表建立关系,这个建立关系的过程就是建立数据分析模型,简称为数据建模。
在建模过程中,如果模型中已有的值、列或表不利于关系的建立或不符合分析需要,还可以通过DAX创建度量值、计算列及新表。
在数据建模前,如果想要在报表视图的报表画布上未创建视觉对象的情况下,查看表或列中的实际内容并开始管理数据关系,首先就需要熟悉数据视图和关系视图的界面,并对界面中的一些元素和内容有一个大概的认识。
数据视图有助于检查、浏览和了解Power BI Desktop模型中的数据,它与在Power Query编辑器中查看表、列和数据的方式不同。在数据视图中看到的数据是在将其加载到模型之后的效果。如图2.50所示为Power BI Desktop中的数据视图,图中标号对应元素的详细介绍见下。
图2.50
(1) 建模功能区,在此处可管理关系、新建度量值、创建计算列和表,并对列的格式进行设置。
(2) 公式栏,用于输入度量值、计算列和表的DAX公式。
(3) 数据视图图标,单击此图标可进入数据视图。
(4) 数据区域,用于显示选中表中的所有列和行内容。
(5) 字段窗格,显示导入数据源的表及表中的标题字段,还可以搜索表或标题字段。
关系视图用于显示模型中所有的表、列和关系,当模型中包含许多表且其关系十分复杂时尤其有用。如图2.51所示为Power BI Desktop中的关系视图,图中标号对应元素的详细介绍见下。
图2.471 关系视图界面
(1) 关系视图图标,单击此图标可以进入关系视图。
(2) 关系线,连接两个表,并展示它们之间的关系,在上图中有4条关系线。
(3) 数据块,每个表占据一个数据块,在数据块中显示了该表的名称及表中标题字段,在上图中有4个数据块。
在分析数据时,不可能总是对单个数据表进行分析,有时需要把多个数据表导入到Power BI Desktop中,利用多个表中的数据及其关系来执行一些复杂的数据分析任务。为得到准确的分析结果,需要在数据建模时创建数据表之间的关系。创建完成后,为了让表之间的关系更加符合实际的工作需求,还需对关系进行管理操作。
了解关系:
要进行关系的创建和管理,首先就需要了解关系的概念及相关的基本元素。在Power BI Desktop中,关系是指数据表之间的基数和交叉筛选方向。基数类似于关系表的外键引用,都是通过两个数据表之间的单个数据列进行关联,该数据列叫做查找列。两个数据表之间的基数关系主要有一对一(1∶1)、一对多(1:N)、多对一(N:1)三种,此外,还有一种存在但不可用的关系。如图2.52所示,在关系视图下展示了Power BI Desktop中的几种关系,各个关系的具体含义见下。
图2.482 关系
(1) 多对一(N:1)
多对一是常见的默认类型。它意味着一个表中的列可具有一个值的多个实例,而别一个相关表(常称为查找表)仅具有一个值的一个实例。例如:表A和表B之间的基数关系是N:1,那么表B是表A的查找表,表A叫做引用表。查找表中,查找列的值是唯一的,不允许存在重复值;而在引用表中,查找列的值不唯一。
(2) 一对多(1:N)
一个对多是多对一的反向。例如,表A和表B之间的基数关系是1:N,那么表A是表B的查找表,表B叫做引用表。在查找表中,查找列的值是唯一的,不允许存在重复值;而在引用表中,查找列的值不唯一。
(3) 一对一(1∶1)
一个表中的列仅具有特定值的一个实例,而别一个相关表也是如此。
(4) 其他,除了以上几种数据关系,Power BI Desktop中还存在一种配置为虚线的表示此关系不可用的数据关系。
在上图中的关系线上存在一个方向符号,该符号为交叉筛选方向,表示数据筛选的流向。筛选方向主要有双向和单向两种类型。
◇ 双向:是最常见的默认方向。当两个表之间的交叉筛选方向设置为双向时,表示两个表可以互相筛选。
◇ 单向:表示一个表只能对另外一个表进行筛选,而不能反向筛选。对于大多数关系,交叉筛选方向均设置为双向,但在某些不常见的情况下,或者从较旧版本的Power Pivot中导入模型,则会默认将所有关系设置为单向。
自动检测创建关系:
在Power BI Desktop中导入了数据后,如果想要快速地创建数据关系,可直接通过自动检测功能来实现。需要注意的是,自动检测并不一定能找出所有的数据关系,但是却能够帮助用户加快创建关系的速度。
步骤01管理关系。打开原始文件,①切换至数据视图中,可在右侧的“字段”窗格中看到导入Power BI Desktop中的表。②单击表名称,会在中间的区域显示该表中的数据内容。③切换至“建模”选项卡。④单击“关系”组中的“管理关系”按钮,如图2.53所示。
图2.493 管理关系
步骤02自动检测关系。打开“管理关系”对话框,在对话框中可看到尚未定义任何关系的说明内容,①单击“自动检测”按钮,等待一段时间,自动检测完成后会弹出一个对话框,提示自动检测到3个新关系。②单击“关闭”按钮。