PowerBI数据建模

数据分析流程

数据分析的一般流程包括数据获取、数据整理、数据建模、可视化分析。今天我们聊聊其中的数据建模。


什么是数据建模?

在Power BI中,可以对多个表格、多种来源的数据,根据不同的维度、不同的逻辑做聚合分析。而分析数据的前提是要将这些数据表建立关系,这个建立关系的过程就是建立数据分析模型,简称为数据建模。


如何建模?

数据建模包括两部分,即建立表之间的联系和编写度量值。

1
建立表之间的联系

表可以分为事实表维度表。

事实表,可以看成业务表,比如订单记录,销售记录,是用来聚合计算的表。

维度表,可以用来做筛选条件的表,是数据分析的角度,比如产品总表,客户总表,表中的内容不可以重复。

看个例子。下面3个表,分为订单信息,客户信息,产品信息。把其中订单信息作为事实表,客户信息和产品信息作为维度表。

事实表
订单信息



维度表
客户信息



维度表
产品信息



把各个表导入PowerBI后,进入建模视图,可以发现系统自动建立了一个简单数据模型。当表与表之间有相同字段名的,系统会自动建立关系。

产品信息_产品代码与订单信息_产品代码建立关系。

客户信息_客户代码与订单信息_客户代码建立关系。

连线的箭头表示了筛选方向。

关系中的1和*代表之间的对应关系。

*端表示数据有重复通常是事实表,比如同一个客户有多个订单,或者同一个产品有多个订单。

1端表示数据唯一没有重复,通常是维度表。


建立表之间的关系思路梳理下,区分维度表和事实表,寻找需要建立关系的字段,选择筛选方向。建立一个星型结构的数据模型。事实表在内,维度表在外,关系深度为1。


2
编写度量值

在建模过程中,如果模型中已有的值、列或表不利于关系的建立或不符合分析需要,还可以通过DAX创建度量值。度量值是一个只有名称显示在“字段”窗格而无实际数据的字段,它不改变源数据,也不改变数据模型,只有在使用度量值创建视觉对象时才会执行计算。此外,度量值还可以循环使用,即一个度量值可用于创建另一个度量值。

举例:

现在通过上面的表我们想获得客户平均单价。在表里没有这个指标,所以我们通过编写度量值来创建这个指标。

我们把客单价的计算方法定义成:客单价=销售金额/客户数。

这3个指标都是未知,所以要创建3个度量值。其中销售金额是对订单信息中金额的求和,客户数是对订单信息中非重复客户数的计数,两者比值就是客单价。

通过DAX公式编写度量值过程。三个度量值公式源码:

销售金额 = SUM('订单信息'[金额])
客户数 = DISTINCTCOUNT('订单信息'[客户代码])
客单价 = [销售金额]/[客户数]





通过上面2个步骤,我们完成了表之间关系的建立,以及度量值的创建。最后通过可视化来完成这个报告。

以下是可视化效果图。

可视化过程。


操作过程中我们创建了2个矩阵,第1个矩阵图是原始表信息的可视化,第2个矩阵图我们新增了客户数和客单价的信息。

通过这个操作我们也可以得出:在这个些可视化对象设置中,行列属性一般填写维度表的字段,起到筛选作用,属性填写事实表的字段或者度量值是一个计算的结果

以上是一个简单数据建模的过程。实际使用中,理清维度表、事实表,既便于数据建模,也便于可视化对象中的数据分析。

本次教程的源文件下载:

链接: https://pan.baidu.com/s/1l1rAUB5TBziiayUDOkfoDA 提取码: 3njw