power bi 建模(PowerBI数据建模)

power bi 建模(PowerBI数据建模)(1)

在学习数据建模技术之前我们先来简单了解一下何为数据模型?

简单的讲数据模型就是由一组表和关系构成的结构,表和表之间由关系链接。如下图所示的销售数据模型:

power bi 建模(PowerBI数据建模)(2)

在了解了数据模型概念的基础上,看看什么是数据建模?

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

很多人读完这段,内心开始犯起了嘀咕,“维度” 是个啥?“聚合” 又是一个什么鬼东西?

维度通俗的讲,就是人们对所分析的目标对象所采用的分析角度,应该是一种“属性、范围、承受能力”意思的包含。这里的聚合实际是聚合运算的简称,就是指将多个值聚合在一起进行某种运算,比如求和,求平均数,求乘积等等。

根据补充解释,再返回头认真读一遍数据建模的概念,现在是不是很容易理解了? 是不是超级简单?

如果你还纠缠小编问,那为何要做求和、求平均数的运算呀? 这……, 请给小编一块82年的老豆腐,让我自戕,可否?

下面来看个例子,将上面的知识做一个串联和巩固。

例如某连锁奶茶店于某天一共销售N笔订单,在这些订单中又包含N多的产品信息,销售价格和销售人员信息等等。这些数据被记录到表中,当然还有商品的进价和库存信息,也同样被记录在表中的且这些数据均会被导入到数据库中。在数据库里这些销售表,库存表,产品信息表,门店信息表会按照设定好的关系进行连接,此时财务人员只需要通过查询数据库就可以掌握该店铺当天的销售额、盈利额、销售最佳店长,等等运营情况。

好像读完这个例子,你可能彻底懵逼了,这是哪跟哪呀?根本就没有看到小编上文讲到的啥维度呀,聚合呀,建模呀! 小编这是逗我玩腻吧?

不敢!不敢!小编自打小就谨记师言,“人活一世,童叟无欺!” 下面我们一起来看看这个案例中究竟哪里讲了维度,哪里讲了聚合以及如何建模?

首先,回顾一下维度是什么? 上文中讲到维度是一种“属性、范围、承受能力”意思的包含。那案例中的产品信息表、顾客信息表、门店信息表所包含信息不是正好与维度这个概念相吻合吗?所以这些表叫产品信息维度表、顾客信息维度表和门店信息维度表是不是更准确一些呢?

那销售数据表也是维度表吗?不! 不! 不! 我们再来观察一下,销售数据表中记录的是某日某个时间发生的某件事件。如: 下图中订单编号 DD80000047 是某顾客(GK902717-顾客维度表中的列)于 2017年1月1日在南京市的某奶茶店里购买了柳橙奶茶(NC1001-产品信息维度表中的列) 其数量为5杯之多。这一条记录是记录的销售发生的事实数据,故销售数据表是事实表而非维度表。

power bi 建模(PowerBI数据建模)(3)

来总结一下:事实数据表存储观察或事件,它包含与维度表和数值列相关的维度键列。

其次,回顾一下聚合,所谓聚合就是多个值聚合在一起进行某种运行,比如求和,求平均数等等。显而易见,案例中通过数据库查询当天的销售额、盈利额及最佳销售员等等这些结果均需进行聚合运算后才能得出。

另外,该案例中还讲到了一个数据库,那建立数据库系统的目的是什么?是为了实现对现实世界中各种信息的计算机处理。换言之,要实现计算机对现实世界中各种信息的自动化、高效化的处理,首先必须建立能够存储和管理现实世界中的信息的数据库系统。数据模型是数据库系统的核心和基础。任何一种数据库系统,都必须建立在一定的数据模型之上。由于现实世界的复杂性,不可能直接从现实世界中建立数据模型。

再来总结一下:现实世界 →(抽象)→ 信息世界 →(转化)→ 数据世界。可浓缩为:数据模型是现实世界的抽象。

此时你可能又要问我,那案例中哪里讲到建模了呢?别急,别急!怀抱琵琶半遮面,千呼万唤始出来了!既然数据库里面存放的数据模型是现实世界的抽象,那该案例中的产品信息、销售信息、人员信息等等这些现实世界的信息被抽象、转化成相应的数据存放到了数据库里,然后依据建模技术把维度表和事实表之间的主键和外键建立关系连接,便可轻松实现多表之间互相查询数据。如:可以根据产品信息表中的产品ID 可以查询到销售数据表中的该产品当日的销售量,销售总金额及哪个店铺销量最高等等信息。

最后我们用所学的知识,将该案例中的现实数据转换成多张数据表,并进行关系链接实现表和表之间的关联,最终如下图所示:

power bi 建模(PowerBI数据建模)(4)

Next, 我们来学习一下最简单的Power BI数据建模技术。

在数据建模中会使用到苏州近10年的职工薪资数据,小编已事先对这些数据进行了清洗并追加到一张表中了,对于数据简单的清洗和追加可参考数据清洗篇。为了给大家演示数据建模,我们需要额外两张表,年份维度表和职位维度表。

power bi 建模(PowerBI数据建模)(5)

以及近10年职位薪资合并后的总表。

power bi 建模(PowerBI数据建模)(6)

上文中小编讲过,建模技术说白了就是在表与表之间建立关系。我们通过观察,这三张表要是建立关系,应该是年份维度表中的“年份”列 近10年职位薪资表“年份”列 相关联,职位维度表 中的“职位代码”列近10年职位薪资表“代码”列相关联。

接下来小编带你进入Power BI Desktop 中看看如何做简单建模。进入模型视图中我们发现年份维度表中的“年份”列 已与10年职位薪资事实表中的“年份”列 自动连接了,为何会这样呢?因为年份维度表中的“年份”列 虽只有1列数据,但它也是一张表,且这列数据具有唯一性,故该列为该表的主键;而10年职位薪资事实表 中的“年份”列年份表 中的“年份”列 标题和列值一致,并且有大量的重复值,我们称这列为年份维度表 外键,所以Power BI Desktop 软件在后台经过精确计算和判断,这两张表之间存在1对多的关系,如下图的黄线将它们相连了起来。

power bi 建模(PowerBI数据建模)(7)

再来看一下职位维度表近10年职位薪资事实表 之间没有建立任何连接,这又是为何呢?通过观察,我们发现虽然职位维度表 中的“职位代码”列 虽然与10年薪资事实表 中的“代码”列 虽然存在主键和外键的关系,但是标题不一致,故Power BI Desktop 无法自行判断并将这两列相关联。那我们只好使用手动拖拽的方式将这两列相关联。

power bi 建模(PowerBI数据建模)(8)

就这样一个简单的数据模型建好了,看似简单,拖拖拽拽就能实现,其实数据模型是数据分析的核心,远比这复杂的多,涉及到第三范式、星型架构、四种基数类型、关系的方向性、传递性及关系的设计原则等等。这里不一一详述,未来还有更多专题文章等你来捧场!

往期回顾,点击即可阅读:

1.什么是Power BI?

2.Power BI Desktop 下载与安装

3.Power BI 之获取数据源

4.Power BI 之数据清洗

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页