为什么分层:
1.复杂问题简单化,容易定位问题
2.减少重复开发,利用中间层数据,大大减少重复计算,增加数据复用性
3.隔离原始数据,将统计数据和原始数据隔离开
如何分层:
Ods层:存放原始数据
Dwd层:数据清洗(去空,脏数据,不合理数据),维度退化,脱敏等
Dws层:以dwd为基础,按天进行轻度汇总
Dwt层:以dws为基础,按主题(维度)进行汇总
Ads层:以dwt,dws为基础,为报表提供数据
常用建模方式:
1.关系建模:三范式 -> 属性不可分割;不存在部分函数依赖;不存在传递依赖
好处:不会造成冗余数据,但常常需要进行多次join操作
2.维度建模:不遵循三范式,分为维度表,事实表
好处:join操作少,mr计算速度大大加快
维度表:主要是描述信息,比如对商品的描述。
事实表:用户做了什么,比如今天10点,用户买了一部手机。
特征:字段多为外键或可进行度量的值
数据仓库建模方式:维度建模
三大维度建模模型:
星型模型:事实表周围只有一层维度(join操作最少,冗余数最多)
雪花模型:两层维度以上
星座模型:多个事实表共用一个维度(星座模型和前两种模型不冲突)
一般采用星型模型,但呈现出来的是星座模型
如何维度建模:
原文:https://www.cnblogs.com/ldy233/p/14439983.html