一、为什么要分层?

  1. 将复杂的系统拆分成多层,每一层负责单一的步骤,方便定位问题。
  2. 每一层数据都有它的作用域,在使用表的时候能方便地查找和理解。
  3. 中间层的数据能够为下游任务复用,减少计算量。
  4. 数据血缘的追踪,如果一张表出问题了,借助血缘关系能快速定位问题,并清楚问题的范围。

二、分为哪些层呢?

  1. ods(Operational Data Store)

原始数据层,存放原始数据,尽量保持原样,不做处理。

  1. dwd(Data Warehouse Detail)

数据明细层,对ods层清洗,列式存储(去除空值,脏数据)等。

  1. dws(Data Warehouse Summary)

宽表,如用户行为拼接服务/行为/订单信息,生成字段比较多的宽表,用于后续业务的查询,olap分析,算法模型等。

  1. ads(Application Data Service)

数据应用层,直接可使用的数据,如数据分析结果/商业报表/app或网站可直接使用的数据,一般存放在es,mysql,redis,也可存放到hive供供数据分析/数据挖掘使用。

  1. dim(Dimension)

维度表层,一般是用户资料,商品资料,属性等信息。

  1. dwm(Data Warehouse Middle)

该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。


瑾明达
1 声望0 粉丝