PowerBI数据建模
数据分析的一般流程包括数据获取、数据整理、数据建模、可视化分析。今天我们聊聊其中的数据建模。
在Power BI中,可以对多个表格、多种来源的数据,根据不同的维度、不同的逻辑做聚合分析。而分析数据的前提是要将这些数据表建立关系,这个建立关系的过程就是建立数据分析模型,简称为数据建模。
数据建模包括两部分,即建立表之间的联系和编写度量值。
表可以分为事实表和维度表。
事实表,可以看成业务表,比如订单记录,销售记录,是用来聚合计算的表。
维度表,可以用来做筛选条件的表,是数据分析的角度,比如产品总表,客户总表,表中的内容不可以重复。
看个例子。下面3个表,分为订单信息,客户信息,产品信息。把其中订单信息作为事实表,客户信息和产品信息作为维度表。
![](https://gjzs.sjtu.edu.cn/uploads/blog/thumbnail/cse5xyTejlCTX6pk4igl3Q/0.png)
![](https://gjzs.sjtu.edu.cn/uploads/blog/thumbnail/cse5xyTejlCTX6pk4igl3Q/1.png)
![](https://gjzs.sjtu.edu.cn/uploads/blog/thumbnail/cse5xyTejlCTX6pk4igl3Q/2.png)
把各个表导入PowerBI后,进入建模视图,可以发现系统自动建立了一个简单数据模型。当表与表之间有相同字段名的,系统会自动建立关系。
产品信息_产品代码与订单信息_产品代码建立关系。
客户信息_客户代码与订单信息_客户代码建立关系。
连线的箭头表示了筛选方向。
关系中的1和*代表之间的对应关系。
*端表示数据有重复通常是事实表,比如同一个客户有多个订单,或者同一个产品有多个订单。
1端表示数据唯一没有重复,通常是维度表。
建立表之间的关系思路梳理下,区分维度表和事实表,寻找需要建立关系的字段,选择筛选方向。建立一个星型结构的数据模型。事实表在内,维度表在外,关系深度为1。
在建模过程中,如果模型中已有的值、列或表不利于关系的建立或不符合分析需要,还可以通过DAX创建度量值。度量值是一个只有名称显示在“字段”窗格而无实际数据的字段,它不改变源数据,也不改变数据模型,只有在使用度量值创建视觉对象时才会执行计算。此外,度量值还可以循环使用,即一个度量值可用于创建另一个度量值。
举例:
现在通过上面的表我们想获得客户平均单价。在表里没有这个指标,所以我们通过编写度量值来创建这个指标。
我们把客单价的计算方法定义成:客单价=销售金额/客户数。
这3个指标都是未知,所以要创建3个度量值。其中销售金额是对订单信息中金额的求和,客户数是对订单信息中非重复客户数的计数,两者比值就是客单价。
通过DAX公式编写度量值过程。三个度量值公式源码:
![](https://gjzs.sjtu.edu.cn/uploads/blog/thumbnail/cse5xyTejlCTX6pk4igl3Q/4.gif)
通过上面2个步骤,我们完成了表之间关系的建立,以及度量值的创建。最后通过可视化来完成这个报告。
以下是可视化效果图。
可视化过程。
操作过程中我们创建了2个矩阵,第1个矩阵图是原始表信息的可视化,第2个矩阵图我们新增了客户数和客单价的信息。
通过这个操作我们也可以得出:在这个些可视化对象设置中,行列属性一般填写维度表的字段,起到筛选作用,值属性填写事实表的字段或者度量值是一个计算的结果。
以上是一个简单数据建模的过程。实际使用中,理清维度表、事实表,既便于数据建模,也便于可视化对象中的数据分析。
本次教程的源文件下载:
链接: https://pan.baidu.com/s/1l1rAUB5TBziiayUDOkfoDA 提取码: 3njw
Write a public review