一、为什么要分层?
- 将复杂的系统拆分成多层,每一层负责单一的步骤,方便定位问题。
- 每一层数据都有它的作用域,在使用表的时候能方便地查找和理解。
- 中间层的数据能够为下游任务复用,减少计算量。
- 数据血缘的追踪,如果一张表出问题了,借助血缘关系能快速定位问题,并清楚问题的范围。
二、分为哪些层呢?
- ods(Operational Data Store)
原始数据层,存放原始数据,尽量保持原样,不做处理。
- dwd(Data Warehouse Detail)
数据明细层,对ods层清洗,列式存储(去除空值,脏数据)等。
- dws(Data Warehouse Summary)
宽表,如用户行为拼接服务/行为/订单信息,生成字段比较多的宽表,用于后续业务的查询,olap分析,算法模型等。
- ads(Application Data Service)
数据应用层,直接可使用的数据,如数据分析结果/商业报表/app或网站可直接使用的数据,一般存放在es,mysql,redis,也可存放到hive供供数据分析/数据挖掘使用。
- dim(Dimension)
维度表层,一般是用户资料,商品资料,属性等信息。
- dwm(Data Warehouse Middle)
该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。