一、数仓建模–维度建模
事实表:面向事实的,如一次交易,订单表
维度表:用户维度,商品维度,时间维度等
1、星型模型:
星型模型主要是维表和事实表,以事实表为中心,所有维度直接关联在事实表上,呈星型分布。
一般采用降维的操作,反规范化,不符合3NF,利用冗余来避免模型过于复杂,提高易用性和分析效率,效率相对较高。
2、雪花模型:
在星型模型的基础上,维度表上又关联了其他维度表。
这种模型维护成本高,性能方面也较差,所以一般不建议使用。尤其是基于hadoop体系构建数仓,减少join就是减少shuffle,性能差距会很大。
维度表的涉及更加规范,一般符合3NF,有效降低数据冗余,维度表之间不会相互关联。
3、星座模型
是对星型模型的扩展延伸,多张事实表共享维度表。数仓模型建设后期,大部分维度建模都是星座模型。
注意:星型模型和雪花模型主要区别就是对维度表的拆分。
二、数仓建模-范式建模(ER模型)
E-R模型建模的步骤(满足3NF)如下:
抽象出主体 (教师,课程)
梳理主体之间的关系 (一个老师可以教多门课,一门课可以被多个老师教)
梳理主体的属性 (教师:教师名称,性别,学历等)
画出E-R关系图