数据仓库各层到底在做什么?(ODS,DWD,DWM,DWS,ADS)

Posted 一只楠喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库各层到底在做什么?(ODS,DWD,DWM,DWS,ADS)相关的知识,希望对你有一定的参考价值。

源数据层(ODS)

此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
(不需要修改的数据)

数据仓库层(DW)

DW 层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。

DWD明细层

存储明细数据,此数据是最细粒度的事实数据。该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。我们在做这一步时可以先确定我们的业务主题,根据主题搭建这一层的表。

DWM 中间层

存储中间数据,为数据统计需要创建的中间表数据,此数据一般是对多个维度的聚合数据,此层数据通常来源于DWD层的数据。

DWS 业务层

存储宽表数据,此层数据是针对某个业务领域的聚合数据,应用层的数据通常来源与此层,为什么叫宽表,主要是为了应用层的需要在这一层将业务相关的所有数据统一汇集起来进行存储,方便业务层获取。此层数据通常来源与DWD和DWM层的数据。

在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。

数据应用层(ADS或DA或APP)

前端应用直接读取的数据源;根据报表、专题分析的需求而计算生成的数据。

维表层(DIM)

维表层,维表层主要包含两部分数据:

  1. 高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。
  2. 低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。

以上是关于数据仓库各层到底在做什么?(ODS,DWD,DWM,DWS,ADS)的主要内容,如果未能解决你的问题,请参考以下文章

Python工业项目实战03:ODS层及DWD层构建

数据仓库 DWD数据明细层操作示例

万字详解数仓分层设计架构 ODS-DWD-DWS-ADS

万字详解数仓分层设计架构 ODS-DWD-DWS-ADS

数据科学家之路: 数据仓库开发教程 (DW)- 数据模型架构&编码规范 & 分层 ODS / DWD / DWS / ADS...

数据科学家之路: 数据仓库开发教程 (DW)- 数据模型架构&编码规范 & 分层 ODS / DWD / DWS / ADS...