数仓分层及命名规范

1,540 阅读4分钟

「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战」。

结合生产进行总结。

一 数仓分层

1.数据引入层(ODS,Operational Data Store,又称数据基础层)

将原始数据几乎无处理地存放在数据仓库系统中,结构上与源系统基本保持一致,是数据仓库的数据准备区。

1)埋点数据
2)mysql静态同步数据
3)mysql离线同步数据
2.数据公共层(CDM,Common Dimenions Model)

存放明细事实数据、维表数据及公共指标汇总数据。

其中,明细事实数据、维表数据一般根据ODS层数据加工生成。公共指标汇总数据一般根据维表数据和明细事实数据加工生成。

CDM层又细分为维度层(DIM)、明细数据层(DWD)和汇总数据层(DWS),采用维度模型方法作为理论基础, 可以定义维度模型主键与事实模型中外键关系,减少数据冗余,也提高明细数据表的易用性。

在汇总数据层同样可以关联复用统计粒度中的维度,采取更多的宽表化手段构建公共指标数据层,提升公共指标的复用性,减少重复加工。

1)维度层(DIM,Dimension)    
以维度作为建模驱动,基于每个维度的业务含义,通过添加维度属性、关联维度等定义计算逻辑,完成属性定义的过程并建立一致的数据分析维表。为了避免在维度模型中冗余关联维度的属性,基于雪花模型构建维度表。
2)明细数据层(DWD,Data Warehouse Detail)    
由ODS层数据接入,增量或全量导入,将明细事实表的某些重要属性字段做适当冗余,也即宽表化处理。   
3)汇总数据层(DWS,Data Warehouse Summary)    
以分析的主题对象作为建模驱动,基于上层的应用和产品的指标需求,构建公共粒度的汇总指标表。以宽表化手段物理化模型,构建命名规范、口径一致的统计指标,为上层提供公共指标,建立汇总宽表、明细事实表。
4)数据中间层(MID,Data Middle Conversion)    
数据中间层,部分复杂指标计算中间层,一般体现在行转列,多维度中间存储等。
3.数据应用层(ADS,Application Data Store)

存放数据产品个性化的统计指标数据,根据CDM层与ODS层加工生成。

1)BI指标: 基础指标 + 自定义指标 + 漏斗模型 + 月报
2)离线标签: 平台行为 + 点击行为 + 付费 + 基础属性

二 命名规范

1.ods: 平台名/库名 或 事件名/表名
 例: 埋点 [xxx]_[xxxx]     mysql [xxx]_[xxxx]
2.dim: 维度类型
 例: [dim]_[xxxx]
3.dwd: dwd_平台名/库名_事件名/表名_..
 例: dwd_[x]_[xxxx]
4.dws: dws_平台名_主题名
 例: dws_[x]_[xxxx]
5.ads: ads_平台名_应用名_指标名/模型名 ,平台拆开
 例: bi应用    ads_[x]_[bi]_[xxx]_[xxxx]      
     画像应用  ads_[x]_[portrayal]_[xxx]_[xxxx]

三 分层意义

1.清晰数据结构

每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解;

2.数据血缘追踪

最终计算好呈现给业务的数据来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围;

3.减少重复开发

规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算;

4.把复杂问题简单化

将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解,而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。屏蔽原始数据的异常,屏蔽业务的影响,不必改一次业务就需要重新接入数据。