kimball建模:
- 分析业务流程:客户产生消费
- 确定最小粒度:每天每个账户
- 确定维度表:账户信息表
- 确定事实表:账户消费表
维度建模:星型模型、雪花模型!!
- 星型模型:一张事实表(横表),关联多张维度表
- 雪花模型:将维度表拆分为符合范式的多张维度表
范式建模:各表完全拆分,符合三范式
维度建模、范式建模对比:维度建模(宽表)方便查询,减少关联,但是占空间,不利于更新,适用于面向下游用户的数据集市;范式建模省空间,利于更新维护,但关联较多,不利于查询,适用于底层数据仓库。
常用星型模型,反范式设计以空间换时间,存在数据冗余但便于查询。
三范式:
- 1NF:原子性,每一列属性都是不可再分的属性值(一个字段不可拆分为多个不相关字段)。
- 2NF:非主键字段由主键完全确定(且不是由主键的某一部分确定)。
- 3NF:非主键不能由其他非主键完全确定。
数据仓库层次结构
- ods库:明细数据层(从上游获取的原始数据)
- dim库:维度数据层
- adm库:汇总数据层
- vdm库:视图数据层
维度表的历史保存:昨日切片表+历史拉链表