为什么要分层
- 减少重复开发:可以开发一些通用的中间层数据,大大减小开发量
- 清晰的数据结构:每一个数据分层都有它的作用域,使用的时候方便我们更好地定位和理解
- 数据血缘追踪:如果说出了问题,可以更快地知道是哪里出了问题,并且知道其危害的范围
- 把复杂任务简单化:把复杂任务拆分成多个简单任务来执行,每一步只干一个事儿。降低难度且易于追踪问题。
- 使仓库更加稳健,屏蔽脏数据或者是数据的缺失等问题对后续任务的影响
常见分层方法
- ods
- dw
- dm
ods
ODS(Operational Data Store)操作数据存储。
和源数据基本同构,不过是经过我们ETL处理的,是干净的数据,粒度最细。
dw
DW(Data Warehouse)是数据仓库最核心的一层。
在这一层按照各种主题建立数据模型,比如说星型,或者雪花模型。
dm
Dm(Data Market)存放的是轻度聚合的数据。
根据业务需求,生成面向业务人员可以直接使用的表,最典型的应用就是报表。报表应用时,为了响应速度更快,一般都会存至MySQL里面。
- tmp层 : 用于计算中的临时表,可以抽象为一个临时层
- dim层 : 维度表,是对事实表中事件的要素的描述信息