为什么分层
数仓分层目的是使用空间换时间,通过大量预处理,提升用户数据加工效率等,故而存在大量数据冗余。如果不分层,源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。
- ODS层:原始数据层,主要存放原始数据,
- DWD层:主要是对ODS层数据进行数据清洗(去空值,脏数据),维度退化。
- DWS层:以DWD为基础,按每天进行轻度汇总
- DWT层:以DWS为基础,按主题进行汇总
- ADS层:以各种统计报表提供数据
分层好处
- 1)把复杂的问题简单化:将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便问题定位。
- 2)减少重复开发:规范数据分层,通过中间层数据,能够减少极大的重复计算。
- 3)统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径
数据仓库建模
ODS层
- 保持数据的原貌不变,起到数据可以备份的作用。
- 数据压缩,减少磁盘利用
- 创建分区表,防止后续全表扫描