数据仓库建模和数据湖建模在目标、方法和适用场景上有显著差异,以下是它们的核心区别及常用建模理论:
一、核心区别
| 维度 | 数据仓库建模 | 数据湖建模 |
|---|---|---|
| 目标 | 支持结构化数据分析、BI、标准化报表 | 存储原始数据(结构化/半结构化/非结构化),支持探索性分析、机器学习 |
| 数据特征 | 高度结构化,Schema-on-Write(写入时定义模式) | Schema-on-Read(读取时定义模式),灵活适配原始数据 |
| 存储方式 | 清洗、转换后的数据(ETL后存储) | 原始数据直接存储(ELT模式,按需处理) |
| 设计原则 | 预先设计,强一致性,优化查询性能 | 按需建模,灵活性优先,逐步分层治理 |
| 技术栈 | 关系型数据库(如Redshift、Snowflake) | 分布式存储(如HDFS、S3) + 表格式(Delta Lake、Iceberg) |
二、数据仓库建模理论
-
维度建模(Kimball模型)
- 核心:以业务分析为中心,构建星型/雪花模型。
- 组成:
- 事实表:业务过程度量(如销售额)。
- 维度表:描述性属性(如时间、产品)。
- 特点:查询高效,适合BI场景。
-
范式建模(Inmon模型)
- 核心:基于第三范式(3NF)设计企业级数据模型。
- 特点:数据高度规范化,减少冗余,强调一致性,但查询复杂度高。
-
Data Vault
- 核心:面向敏捷性设计,分为Hub(业务实体)、Link(关系)、Satellite(属性)。
- 特点:易于扩展,支持历史追踪,常用于复杂企业数据集成。
三、数据湖建模理论
-
Medallion架构(青铜/白银/黄金层)
- 青铜层:原始数据(未经处理)。
- 白银层:清洗后的数据(基本结构化)。
- 黄金层:业务就绪数据(聚合或建模后)。
-
基于表格式的建模(Delta Lake/Iceberg/Hudi)
- 核心:通过事务性表格式管理数据湖,支持ACID、版本控制、Schema演化。
- 特点:在数据湖上实现类似数据仓库的治理能力。
-
数据网格(Data Mesh)
- 核心:去中心化治理,按业务域划分数据所有权。
- 特点:强调领域自治与跨域协作,弱化集中式建模。
四、关键差异总结
-
建模时机:
- 数据仓库:预先建模,强调整体一致性。
- 数据湖:按需建模,支持后期灵活处理(如ELT)。
-
数据治理:
- 数据仓库:严格的数据质量、Schema约束。
- 数据湖:轻量级治理(可通过表格式增强)。
-
适用场景:
- 数据仓库:固定分析需求(如财务报表)。
- 数据湖:探索性分析、机器学习、多源异构数据集成。
-
技术演进:
- 现代趋势:**湖仓一体(Lakehouse)**结合两者优势,在数据湖上实现仓库能力(如Databricks Lakehouse)。
五、选型建议
- 选择数据仓库建模:需求明确、结构化分析为主、强一致性要求。
- 选择数据湖建模:数据多样性高、需探索性分析或机器学习、追求灵活性与低成本存储。
- 混合架构:通过湖仓一体技术(如Delta Lake)兼顾灵活性与治理能力。
869

被折叠的 条评论
为什么被折叠?



