为把Bill Inmon和Kimball 两种不同的思路统一起来,Bill Inmon提出了CIF(Corporation Information Factory)架构,核心是把数据仓库分为不同的层次以满足不同场景的需求;每层根据不同的场景采用不同的方案。

传统数据仓库1.0的分层:

数据源->数据集成平台->数据交换平台->数据集市(数据应用、数据汇总、数据明细)

传统数据仓库2.0的分层:

ODS->DWD->DWS->DM

  1. ODS(Operation Data Service):操作型数据服务,不做建模,和业务数据库保持一致
  2. DWD(Data WareHouse Detail):数据仓库明细层,采用ER 建模,一般到3NF ;对来源于多个业务系统的数据进行合并;如需要,在该层另外开辟一个区域作为公共维度层(DIM),把通用的主数据抽取出来按3NF建模。
  3. DWS(Data WareHouse Service):数据仓库服务层,采用维度建模,对DWD的数据进行按维度建模,可根据需要进行通用的轻微轻汇总,减少重复计算。
  4. DM(Data Market):数据集市层,采用维度建模、多维建模,根据业务需求对DWS层进行重度汇总,方便业务使用。

基于大数据的数据仓库:

Data Lake->DWD->DWS->DM->ADS(BI、推荐系统、用户画像、广告系统)

Data Lake:数据湖,采集企业的所有数据,包括结构化数据、半结构化数据、非结构化数据、媒体数据(音频、视频、图片);可以保留源数据格式或用Data Vault建模。

其他层和传统数仓几乎差不多。

ODS层的作用:

  1. 尽可能减少对源系统的影响
  2. 方便作业重新开始以及Debug
  3. 数据备份、方便数据审计
  4. 数据格式的统一
  5. 实时性要求高就不必ODS
  6. 必要时添加派生审计字段、去掉Clob、Blob字段、增加checkSum code

DW&DM层的区别:

 

DW

DM

需求

侧重于整合,下游为系统;侧重于共享性和权威性

侧重于分析,下游是报表;侧重于灵活性和多变性

模型

侧重于模型的稳定性,兼顾成本和效率

侧重访问的方便性

团队和管理

总部CIO主导,主数据、参照数据等核心数据由总部CIO审核

确保数据来源于DW,数据的Owner是数据使用部门

变更管理

谨慎面对变化,充分考虑对下游的影响

主动迎接变化,方便下游使用

访问

ETL、各系统的接口、低频次

高频次、最终用户

审计

数据变化的审计

报表的访问审计