数仓建模
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时, 同一含义的字段定义一定要相容, 这样再以后实施数据仓库时才不会造成大麻烦。
- DW (Data Warehouse)
基于以下两套经典理论:
范式模型
- 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 各种报表的输出。
- 存放数据产品个性化的统计指标数据, 主要面向前段展现
以上是关于数仓建模的主要内容,如果未能解决你的问题,请参考以下文章