数仓的一些详细知识点

一、数据流向

遵循模型开发时分层结构,数据从 ods -> dw -> dm ->app 这样正向流动,可以防止因数据引用不规范而造成数据链路混乱及SLA时效难保障等问题,同时保证血缘关系简洁化,能够轻易追踪数据流向。

在开发时应避免以下情况出现:

  1. 数据引用链路不正确,如 ods -> dm ->app ,出现这种情况说明明细层(DW)没有完全覆盖数据;如 ods -> dw -> app ,说明轻度汇总层(DM)主题划分未覆盖全 。减少跨层引用,才能提高中间表的复用度。理想的数仓模型设计应当具备:数据模型可复⽤,完善且规范

  2. 尽量避免一层的表生成当前层的表,如dw层表生成dw层表,这样会影响ETL效率。

  3. 禁止出现反向依赖,如DW表依赖于DM表
    • 规范

    • 表命名规范

      1. 对于ods、dm、app层表名:类型_主题_表含义,如:dm_xxsh_user

      2. 对于dw层表名:类型_主题_维度_表含义,如:dw_xxsh_fact_users(事实表)、dw_xxsh_dim_city(维度表)

    • 字段命名规范  
      构建词根,词根是维度和指标管理的基础,划分为普通词根与专有词根

      1. 普通词根:描述事物的最小单元体,如:sex-性别。 

      2. 专有词根:具备行业专属或公司内部规定的描述体,如:xxsh-公司内部对某个产品的称呼。

    • 脚本命名规范  
      脚本名称:脚本类型.脚本功用.[库名].脚本名称,如 hive.hive.dm.dm_xxsh_users  
      脚本类型主要分为以下三类:

      1. 常规Hive sql:hive

      2. 自定义shell脚本:sh

      3. 自定义Python脚本:python 

二、业务总线矩阵

业务总线矩阵是一种数据仓库建模的方法,它可以将企业的数据需求分解为不同的业务过程和公共维度,从而实现数据的一致性和可复用性。业务总线矩阵的行是业务过程列是公共维度交叉点上的标记表示该业务过程与该维度有关联关系,也就是外键。业务总线矩阵可以帮助设计数据仓库的数据模型,规范数据的抽取、转换和加载过程,提高数据仓库的质量和效率

posted @ 2023-03-07 10:47  Coko_QY  阅读(149)  评论(0)    收藏  举报