大数据分析工具Power BI(五):数据模型介绍

举报
Lansonli 发表于 2023/03/27 18:45:18 2023/03/27
【摘要】 数据模型介绍一、模型关系在数据分析过程中,我们会将数据表分为事实表和维度表两种类型的表。事实表发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中,事实表也叫明细表。例如,一个按照地区、产品、月份划分的销售量和销售额的事实表如下:在以上事实表的示例中,"地区ID"、"产品ID"、"月份ID"为键值列,"销售量"、"销售额"为度量列,所谓度量列就是列的数据可度量,度量列一般为可统...

数据模型介绍

一、模型关系

在数据分析过程中,我们会将数据表分为事实表和维度表两种类型的表。

  • 事实表

发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中,事实表也叫明细表。例如,一个按照地区、产品、月份划分的销售量和销售额的事实表如下:

  • 在以上事实表的示例中,"地区ID"、"产品ID"、"月份ID"为键值列,"销售量"、"销售额"为度量列,所谓度量列就是列的数据可度量,度量列一般为可统计的数值列。事实表中每个列通常要么是键值列,要么是度量列。
  • 事实表中一般会使用一个代号或者整数来代表维度成员,而不使用描述性的名称,例如:ID代号。上表中的"地区ID"、"产品ID"、"月份ID"就是维度列,就是观察数据的角度。使用代号或整数来代表维度成员的原因是事实表往往包含很多数据行,使用代号或整数这种键值方式可以有效减少事实表的大小。
  • 在事实表中使用代号或者整数键值时,维度成员的名称需要放在另一种表中,也就是维度表。通常事实表中的每个维度都对应一个维度表。

在企业中采购记录表、订单表、库存明细表、商品流水表等都是事实表。

  • 维度表

维度表包含了维度的每个成员的特定名称。维度成员的名称称为"属性"(Attribute),假设"产品ID"维度表中有3种产品,例如:

  • 如上图,"产品名称"是产品维度表中的一个属性,维度表中可以包含很多属性列。
  • 产品维度表中的"产品ID"与事实表中的"产品ID"相匹配,称为"键属性",在当前产品维度表中一个"产品ID"只有一个"产品名称",显示时使用"产品名称"来代替,所以"产品名称"也被认为是"键属性"的一部分。维度表中"键属性"唯一不重复。
  • 每个维度表中的键值属性都与事实表中对应的维度相匹配,在维度表中"产品ID"类似关系型数据库中的主键,在事实表中"产品ID"类似关系型数据库中的外键,维度表和事实表就是按照键值属性"产品ID"进行关联的。在维度表中出现一次的每个键值都会在事实表中出现多次。例如上图中,产品ID 中 1111在事实表中对应多行。

在企业中客户信息表、人员信息表、区域信息表等都是维度表,Power BI中我们可以通过模型视图来创建两表或者多表之间的关系,这里建立的关系就是创建的事实表与维度表之间的关系。例如在资料中有"销售订单表A.xlsx"和"商品信息表.xlsx"两个excel表,销售订单表就是事实表,商品信息表就是维度表,通过前面学习的知识导入两表数据,分别命名为"销售订单表"和"商品信息表"如下:

当我们在新的Power BI中导入数据后,Power BI会自动根据表中的相同字段简历关联模型,点击"模型"视图,可以看到Power BI自动根据两表相同的字段检测并建立的数据关系模型:

Power BI会根据多表中相同的字段构建关系,如果两表中有关联的字段列名不同,也可以手动点击一张表中的列拖动到其他表中的关系列上构建关联关系,如下:

构建好关联关系后,可以在对应的报表中画图,图形中的列就可以来自于多个表,Power BI会根据两表之间的关联关系自动来绘制图形:

注意:如果两表没有关系,以上图形不能正常显示。

如果在Power BI中导入数据不希望自动构架关系,可以通过设置关闭自动构建关系,操作如下,将"加载数据后自动检测新关系"勾选掉即可,建议保留。

二、管理模型关系

Power BI中导入的数据表之间的关系也有可能不是以上维度表对应事实表一对一的关系,两表之间的关系有如下几种:

  • 一对一关系:例如:"学生"是实体,"身份证"是实体,一个学生只能有一个身份证,一个身份证也只能对应一个学生。
  • 一对多关系:一对多关系反过来也就成了多对一的关系。例如:"学生"是实体,"账号"是实体,一个学生有多个账号,反过来就是多个账号对应一个学生。
  • 多对多关系:例如:"学生"是实体,"课程"是实体,一个学生可以学习多个课程,一个课程可以被多个学生学习,整体来看,学生学习课程就成了多对多的关系。

通过Power BI导入的数据可能会有不完全符合需求的关系或者多余的关系。例如在资料中有"省份信息.xlsx"、"城市信息.xlsx"、"区县信息.xlsx"、"门店信息.xlsx"四个excel表,按照之前方式导入到PowerBI中,可以在"关系视图中"看到自动构建的关系:

以上关系中有一些不是我们想要的关系,例如:"省份信息"与"城市信息"关系,"城市信息"与"区县编号"关系。我们可以在"主页"的"管理关系"功能中进行维护关系,也可以在对应的关系线上右键删除对应的关系。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。