数仓建模
关系建模和维度建模是两种数据仓库的建模技术。关系建模由Bill Inmon所倡导,维度建模由Ralph Kimball所倡导。目前主流为维度建模。
https://zhuanlan.zhihu.com/p/362991213
1.关系建模(范式建模)
1.1 范式
1 目的
降低数据的冗余性
2 目前业界范式
第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。逐个遵循,一般要求遵循第一,第二,第三范式,也就是三范式。
https://blog.csdn.net/Dream_angel_Z/article/details/45175621
1.2 建模
1 建模
关系建模将复杂的数据抽象为两个概念——实体和关系(实体表,关系表),并使用规范化(三范式)的方式表示出来
2 特点
关系模型严格遵循第三范式(3NF),数据冗余程度低,数据的一致性容易得到保证。
由于数据分布于众多的表中,查询会相对复杂,在大数据的场景下,查询效率相对较低。
2.维度建模
https://www.jianshu.com/p/daab50a23c56
https://cloud.tencent.com/developer/article/1772027
2.1 事实表和维度表
1 事实表
存储业务事实,事实表中的每行数据代表一个业务事件(下单、支付、退款、评价等)。
事实表的特征:
内容相对的窄:列数较少(主要是外键id和度量值)
非常的大
经常发生变化,每天会新增加很多。
分类:事务型事实表,周期型快照事实表,累积型快照事实表
2 维度表
维度表:一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如:用户、商品、日期、地区等。
维表的特征:
维表的范围很宽(具有多个属性、列比较多)
跟事实表相比,行数相对较小:通常< 10万条
内容相对固定:编码表
2.2 维度模型分类
在维度建模的基础上又分为三种模型:星型模型、雪花模型、星座模型。
星座模型是多个星型模型交织
2.3 建模
1 建模
维度模型面向业务,将业务用事实表和维度表呈现出来。
步骤:
https://www.cnblogs.com/suheng01/p/13522677.html
选择业务过程→声明粒度→确认维度→确认事实
2 特点
维度模型以数据分析作为出发点,不遵循三范式,故数据存在一定的冗余。
表结构简单,故查询简单,查询效率较高。