数仓的一些详细知识点
一、数据流向
遵循模型开发时分层结构,数据从 ods -> dw -> dm ->app 这样正向流动,可以防止因数据引用不规范而造成数据链路混乱及SLA时效难保障等问题,同时保证血缘关系简洁化,能够轻易追踪数据流向。
在开发时应避免以下情况出现:
-
数据引用链路不正确,如 ods -> dm ->app ,出现这种情况说明明细层(DW)没有完全覆盖数据;如 ods -> dw -> app ,说明轻度汇总层(DM)主题划分未覆盖全 。减少跨层引用,才能提高中间表的复用度。理想的数仓模型设计应当具备:数据模型可复⽤,完善且规范。
-
尽量避免一层的表生成当前层的表,如dw层表生成dw层表,这样会影响ETL效率。
- 禁止出现反向依赖,如DW表依赖于DM表
-
规范
-
表命名规范
-
对于ods、dm、app层表名:类型_主题_表含义,如:dm_xxsh_user
-
对于dw层表名:类型_主题_维度_表含义,如:dw_xxsh_fact_users(事实表)、dw_xxsh_dim_city(维度表)
-
字段命名规范
构建词根,词根是维度和指标管理的基础,划分为普通词根与专有词根 -
普通词根:描述事物的最小单元体,如:sex-性别。
-
专有词根:具备行业专属或公司内部规定的描述体,如:xxsh-公司内部对某个产品的称呼。
-
脚本命名规范
脚本名称:脚本类型.脚本功用.[库名].脚本名称,如 hive.hive.dm.dm_xxsh_users
脚本类型主要分为以下三类: -
常规Hive sql:hive
-
自定义shell脚本:sh
-
自定义Python脚本:python

浙公网安备 33010602011771号