数仓建模

Posted ronnieyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数仓建模相关的知识,希望对你有一定的参考价值。

  • 基本概念:
    • DW (Data Warehouse)
      • 是一个面向主题的(Subject Oriented), 集成的(Integrated), 相对稳定的(Non-Volatile), 反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
    • ODS (Operational Data Store)
      • 是一个面向主题的, 集成的, 可变的, 当前细节数据集合。
      • 用于支持企业对于即时性的, 操作性的, 集成的全体信息的需求。
      • 与数据仓库(DW)的区别:
        • ODS 是短期的实时的数据, 供产品或者运营人员日常使用, 而数据仓库是供战略决策使用的数据
        • ODS是可以更新的数据, 数据仓库是基本不更新的反应历史变化的数据
        • ODS 作为数据库到数据仓库的一种过渡形式, 与数据仓库在物理结构上不同, 能提供高性能的响应是见, ODS设计采用混合设计方式。
        • ODS中的数据是"实时值", 而数据仓库的数据却是"历史值", 一般ODS中储存的数据不超过一个月, 而数据仓库为10年或更多。
    • DM (Data Mart)
      • 为了特定的应用目的或应用范围, 而从数据仓库中独立出来的一部分数据, 也可称为部门数据或主题数据(subjectarea)。
      • 在数据仓库的实时过程中往往可以从一个部门的数据集着手, 以后再用几个数据集市组成一个完整的数据仓库。
      • 需要注意的是在实施不同的Data Mart时, 同一含义的字段定义一定要相容, 这样再以后实施数据仓库时才不会造成大麻烦。
  • 基于以下两套经典理论:

    • 范式模型

      • lnmon 提出的集线器的自上而下 (EDW-DW) 的数据仓库架构。
    • 维度模型

      • Kumball 提出的总线式的自下而上 (DM-DW) 的数据仓库架构。
      • 星型模型(便于OLAP分析), 雪花模型
    • 其他模型

      • Data Vault 模型

      • Anchor 模型

数仓分层

  • 为何要对数仓分层?

    • 简化复杂问题
      • 把一个复杂的人物分解成多个步骤来完成, 每一层只处理单一的步骤, 比较容易理解。
    • 使数据结构清晰
      • 每一个数据分层都有它的作用域, 这样我们在使用表的时候能更方便地定位和理解。
    • 提高数据的复用性
      • 规范数据分层, 通过中间层数据, 能够减少极大的重复计算, 增加一次计算结果的复用性。
    • 隔离原始数据
      • 不论是数据的异常还是数据的敏感性, 使真实数据与统计数据解耦。
  • 分层结构

    技术图片

    • Staging 层

      • 预处理层, 存储每天的增量数据, 表和ODS层一致
    • ODS (Operational Data Store) 层

      • 操作数据层, 存储所有基础数据, 做简单的数据清洗
    • DWD (Data Warehouse Detail) 层

      • 数据明细层, 主要是一些宽表, 存储明细数据。

      • 采用维度退化的方法, 将维度退化到事实表中, 减少事实表和维度表的关联, 提高明细表的易用性。

    • DWS (Data Warehouse Summary) 层

      • 采用更多的宽表化
      • 针对不同的维度进行数据聚合, 按主题进行划分, 属于维度建模的范畴。
    • ADS(Application Data Store) 层

      • 偏应用层m 各种报表的输出。
      • 存放数据产品个性化的统计指标数据, 主要面向前段展现

以上是关于数仓建模的主要内容,如果未能解决你的问题,请参考以下文章

数仓建模理论——高质量数据建模

数仓建模理论——高质量数据建模

数仓建模理论——高质量数据建模

数仓建模理论——高质量数据建模

万字详解ETL和数仓建模

数仓第二篇: 数据模型(维度建模)