数仓建表规范

数仓建表规范

基本设计思路

ODS 数据原始层

概念: ODS层是从业务系统过渡到数据仓库核心层的操作数据的存储层,ODS层的数据结构与业务系统基本保持一致,同时不做长时间的数据存储。

说明:最原始的数据,存储格式txt。

DWD 数据明细层

概念: DWD层是维度和事实属性、度量信息融合所生成的明细宽表层,其设计目的是为后续的DWS层提供基础,也可以在DWS层无法支撑需求时直接为ADS层提供数据。DWD层作为数据模型架构的核心明细层,一般要考虑扩展性和兼容性,其核心逻辑的变动要对下游保持尽可能的透明

说明: 存储经过标准规范化处理(即数据清洗)后的运营数据

DWS 数据汇总层

概念:DWS层面向分析主题建模。DWS层的设计目的是为ADS层提供足够的灵活性和扩展性的基础。

说明:数据服务主题层或者宽表层,按数据、业务专题进行划分,支持OLAP分析、数据分发等,其信息主要来源于DWD 或TMP层汇总数据。实例:新激活用户表、日活表、历史激活用户表

ADS 数据服务层

概念:ADS层主要包括对数据结果的加工整合,以满足数据应用的最终使用需要

说明:应用数据层, 面向具体应用的表,要创建在这层,可导入hbase或mysql等使用。实例:按季、月、周、天、小时等粒度计算汇总的结果存入mysql、hbase的报表

DIM 维表

概念:维度数据层,主要包含一些业务维度数据。实例:地区表,渠道表,行为表。

说明:

命名:

TEST 测试表

说明: 测试用的表。

数据模型开发规范

1.数据要干净、有效

​ 要保证进入数据模型的数据是经过清洗和规范的。

2.模型可扩展

​ 核心模型要尽可能保持稳定,经常变化的业务可以通过扩展模型进行分离。

3.禁止逆向调用

​ 禁止逆向调用,例如不能出现ODS层调用CDM层和ADS层的数据。

4.数据可回滚

​ 数据模型多次重跑的结果数据必须保持一致。

5.成本控制

​ 在构建数据模型时,要充分考虑计算和存储资源间的平衡。

模型数据流向

即ODS->DWD->DW->DWS->ADS。

正常流向:ODS->DWD->DW->DWS->ADS,当出现ODS->DWD->DWS->ADS这种关系时,说明

主题域未覆盖全。应将DWD数据落到DW中,对于使用频度非常低的表允许DWD->DWS。

尽量避免出现DWS宽表中使用DWD又使用(该DWD所归属主题域)DW的表。

同一主题域内对于DW生成DW的表,原则上要尽量避免,否则会影响ETL的效率。

DW、DWS和ADS中禁止直接使用ODS的表, ODS的表只能被DWD引用。

禁止出现反向依赖,例如DW的表依赖DWS的表。

数据库表命名规范


业务规范层数据库名称数据库释义物理表命名规范数据存储格式
ODS ods 从公司各业务mysql表同步的快照信息和运营埋点数据 埋点日志:ods_log_{埋点说明}{更 新方式}{时间粒度} 运营数据库:ods_{业务数据库 表}{更新方式}{时间粒度} Text
DWD dwd 包含公司 各业务经 过ETL后 的基础事 实明细表 埋点日志:dwd_log_业务过程_更新 方式_时间粒度 运营数据库:dwd_{数据库类型 (mysql\hbase\wtable\redis)}{业 务过程}{更新方式}{时间粒度} 多数据源:dwd{业务过程}{更新方 式}{时间粒度} Parquet
DWS dws 按数据、 业务专题 进行划分 的轻度汇 总数据 dws_{业务主题域}{业务过程}{更新 方式}_{时间粒度} Parquet
DIM dim 业务维度 相关的字 典数据 dim_{维度类型 (cate\city\channel\group)}{更新 方式}{时间粒度} Text
TMP temp 存放数据 计算过程 中的临时 结果表 tmp_{数据层类型(dwd\dws\ads)_{业 务过程描述} Parquet
ADS ads 存放面向 各业务应 用分析的 通用结果 表 ads_{数据主题域}{业务过程描 述}{更新方式}_{时间粒度} Text\Parquet
   
posted @ 2022-03-21 02:12  愿无违  阅读(295)  评论(0编辑  收藏  举报