为何分层

空间换时间

通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;

简化清洗

通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。

避免传递

如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。

怎样分层

原始数据层(备份) ODS / ODL

也叫

  • ODL(Operational Data Layer,操作数据层)
  • ODS(Operation Data Store)
常见处理:
  • 直接 JSON 保存

数据清洗层(解析) DWI

  • DWD(data warehouse detail)
  • DWI()
常见处理:
  • 去除脏数据: 传送门
    • 格式不正确
    • 值超过有效区间
    • 空值
  • 数据去重
    • 取最新值: 所有值里时间最大的值
    • 会话最新值:所有值按时间间隔拆分会话,取每个会话中时间最大的值

数据主题层(快照)

多种叫法:

  • DWS(宽表-用户行为,轻度聚合) data warehouse service ——->有多少个宽表?多少个字段
  • IDL层 (Interface Data Layer):接口层
  • 主题表
  • 宽表
常见处理
  • 字典翻译
  • 关联JOIN
  • 由BDL层经过去重、去噪、字典翻译、空值转化,日期格式化、关联JOIN、维度分析等清洗后的数据
    如:用户、产品、绑卡、订单、用户行为等明细数据。

数据集市层(中间)

  • ADL(Application Data Layer):应用层 ,也称数据集市
  • ADS(Application Data Store)
  • APP()
  • DAL()
  • DF()
常见处理

参考:

https://www.jianshu.com/p/f941967aeee8

文档更新时间: 2019-09-03 09:03   作者:admin