数据仓库
一、第一性原理:数据仓库究竟解决什么问题
1. 问题本质
数据仓库的本质并不是“存更多数据”,而是系统性解决以下矛盾:
- **分析负载与交易负载的结构性冲突**
- **业务复杂性不断累积但分析需求要求稳定性**
- **数据口径在多人、多系统、多时间下的一致性问题**
数据仓库的核心使命:将变化隔离在系统边缘,把稳定沉淀在核心结构中。
2. 核心设计哲学
- 解耦优先:OLTP 与 OLAP 物理与逻辑隔离
- 稳定优先:先稳定模型,再优化性能
- 历史优先:默认一切数据都会被回溯分析
- 复用优先:计算一次,反复使用
二、能力模型:从“系统”而非“工具”理解数据仓库
1. 数据仓库能力全景
数据仓库能力体系├─ 数据采集能力├─ 数据建模能力├─ 数据计算能力├─ 数据存储能力├─ 数据治理能力│ ├─ 质量│ ├─ 元数据│ ├─ 血缘│ └─ 指标口径├─ 数据服务能力└─ 架构演进能力所有技术选型,本质上都是在为这些能力服务。
三、架构范式演进:为什么架构一定会这样发展
1. 架构演进路径
数据库 → 数据仓库 → 大数据平台 → 数据中台 → 实时数仓2. 每次演进解决的问题
| 阶段 | 核心矛盾 | 解决方式 |
|---|---|---|
| 数据库 | 分析拖慢业务 | 引入独立仓储 |
| 数据仓库 | 数据规模扩大 | 分布式存储 |
| 大数据平台 | 数据难以复用 | 统一建模 |
| 数据中台 | 数据交付效率 | 服务化 |
| 实时数仓 | 决策延迟 | 流式计算 |
四、分层模型:分层不是规范,而是复杂性控制手段
1. 分层的根本原因
- 隔离变化
- 降低心智负担
- 支持不同粒度的复用
2. 经典分层结构
ODS → DWD → DWM → DWS → ADS ↑ DIM3. 各层存在的“不可替代性”
| 层级 | 核心职责 | 不能省略的原因 |
|---|---|---|
| ODS | 历史留存 | 数据不可再生 |
| DWD | 业务事实 | 稳定粒度基准 |
| DWM | 公共中间结果 | 成本控制 |
| DWS | 主题服务 | 消费友好 |
| ADS | 产品交付 | 面向用户 |
五、建模方法论:为什么维度建模最适合分析系统
1. 建模目标
- 面向分析而非事务
- 面向变化而非当前状态
2. 核心抽象
- **事实(Fact)**:业务过程中可度量的事件
- **维度(Dimension)**:观察事实的视角
一切分析,本质上是:在某个维度下,对事实进行聚合。
3. 事实表设计哲学
- 粒度优先于性能
- 最细粒度优先于提前聚合
事实类型:
- 事务事实表
- 周期快照事实表
- 累积快照事实表
4. 维度设计哲学
- 描述环境,而非过程
- 允许冗余,拒绝复杂 Join
- 必须支持历史回溯
缓慢变化维解决方案:
- 全量快照
- 拉链表(SCD)
六、指标体系:从“算数”到“共识”的演进
1. 为什么指标必须标准化
- 指标即语言
- 指标即决策依据
2. 指标分层模型
- 原子指标:定义“怎么算”
- 派生指标:定义“看什么”
- 衍生指标:定义“怎么比较”
七、实时数仓:另一种架构哲学
1. 实时 vs 离线的根本差异
| 维度 | 离线数仓 | 实时数仓 |
|---|---|---|
| 优先级 | 准确性 | 时效性 |
| 模型稳定性 | 高 | 相对较低 |
| 容错方式 | 重算 | 状态恢复 |
2. 实时数仓的核心挑战
- 状态管理
- 维度关联
- 一致性与延迟权衡
八、数据治理:决定数据仓库能活多久
1. 治理不是附加项
- 无治理的数据仓库一定会崩
2. 核心治理能力
- 数据质量规则
- 指标口径管理
- 元数据与血缘
- 权限与安全
九、云数据仓库:架构范式的再一次跃迁
1. 核心变化
- 存算分离
- 弹性扩展
- 托管化治理
2. 本质变化
从“自建系统”到“消费能力”。
十、数据集市:组织协作视角下的必然产物
- 数据集市不是小数仓
- 而是**组织边界的技术映射**
结语
- 技术会过时
- 架构会演进
- **抽象能力与建模能力不会**
关联内容(自动生成)
- [/数据技术/数据架构.html](/数据技术/数据架构.html) 数据仓库是数据架构的重要组成部分,两者在企业数据体系建设中相互关联,共同构成完整的数据管理体系
- [/数据技术/数据治理.html](/数据技术/数据治理.html) 数据治理为数据仓库提供质量保障、元数据管理和指标口径统一等关键能力,是数据仓库发挥价值的基础
- [/数据技术/数据建模.html](/数据技术/数据建模.html) 数据建模是数据仓库设计的核心环节,维度建模等方法论直接影响数据仓库的结构和易用性
- [/数据技术/大数据.html](/数据技术/大数据.html) 大数据技术为现代数据仓库提供了更强大的存储和计算能力,支撑海量数据的处理和分析需求
- [/数据技术/数据分层.html](/数据技术/数据分层.html) 数据分层是数据仓库架构设计的关键理念,通过分层实现复杂性控制和变更隔离
- [/数据技术/数据质量.html](/数据技术/数据质量.html) 数据质量是数据仓库的生命线,直接影响分析结果的准确性和业务决策的有效性
- [/数据技术/元数据管理.html](/数据技术/元数据管理.html) 元数据管理为数据仓库提供数据血缘、影响分析等能力,提升数据仓库的可维护性和透明度
- [/数据技术/数据中台.html](/数据技术/数据中台.html) 数据中台是在数据仓库基础上的进一步演进,强调数据的服务化和能力复用
- [/数据技术/数据分析.html](/数据技术/数据分析.html) 数据分析是数据仓库的主要应用场景之一,数据仓库为分析提供稳定、一致的数据服务
- [/数据技术/数据血缘.html](/数据技术/数据血缘.html) 数据血缘追踪数据仓库中数据的流转过程,对于理解数据来源和影响范围至关重要