一、核心定义
湖仓一体是融合数据湖 + 数据仓库优势的新一代统一大数据架构,底层共用一套低成本对象存储,上层同时具备湖的灵活存储、仓的高性能治理与 SQL 分析能力,一套数据同时支撑实时计算、离线报表、BI 可视化、AI 建模,消除传统 "湖仓分离双架构" 的数据孤岛、重复存储、口径不一致痛点。
三者核心差异
| 对比维度 | 传统数据仓库 DW | 数据湖 DL | 湖仓一体 Lakehouse |
|---|---|---|---|
| 存储数据 | 仅结构化,写入前清洗建模(Schema-on-Write) | 结构化 / 半结构化 / 非结构化原始数据,先存后处理(Schema-on-Read) | 全类型数据统一存储,读写模式灵活切换 |
| 事务能力 | 强 ACID、强数据一致性 | 无原生事务,易出现脏数据、数据沼泽 | Delta/Iceberg/Hudi 提供 ACID、Upsert、时间旅行 |
| 查询性能 | 列式优化、预聚合,报表速度快 | 原始文件查询慢,缺少索引统计 | 自带索引 / 统计,查询性能接近数仓 |
| 存储成本 | 专用存储,成本高 | 对象存储,海量冷数据极低成本 | 统一对象存储,兼顾冷热分层成本 |
| 适用场景 | 固定经营报表、财务多维分析 | 日志存储、算法探索、原始数据归档 | 实时大屏、离线报表、AI 训练、自助 BI 一站式 |
| 核心痛点 | 只能存结构化、实时能力弱、扩容贵 | 治理差、无事务、不适合标准 SQL 报表 | 几乎无短板,平衡灵活与规范 |
二、为什么要做湖仓一体(解决传统架构痛点)
- 湖仓分离双架构问题 原始数据存湖,清洗后同步一份到数仓;两份存储、两份开发链路,数据重复、同步延迟、指标口径经常对不齐、维护成本翻倍。
- 数据湖短板 不支持更新删除、无事务并发、缺少统一元数据治理,海量文件查询性能差,很难直接给业务做 BI 报表。
- 传统数仓短板 只能结构化数据、无法存日志 / 图片 / 视频、存储昂贵、实时流式数据接入困难,不适合机器学习原始样本训练。
三、标准五层分层架构
1. 数据接入层
统一采集所有数据源,实时 + 离线双通道:
离线:DataX、Sqoop、Flink CDC、同步业务库
实时:Kafka + Flink,采集埋点、订单流、设备数据
非结构化:图片、音频、文档直接入湖
2. 统一存储基座(湖的底座)
底层统一使用对象存储,一份物理存储承载全生命周期数据:
ODS 原始层:完整保留原始未加工数据,用于问题回溯
DWD 明细层:清洗、脱敏、标准化明细数据
DWS 汇总层:聚合宽表、衍生指标
ADS 应用层:直接供 BI、大屏、算法使用的结果表
3. 核心:湖仓表格式(湖转仓的关键技术)
三大开源开放格式,给原始文件增加数仓级能力:
- Apache Hudi:实时更新 Upsert 能力最强,适合 CDC 实时数仓、增量同步
- Delta Lake:Databricks 生态完善,事务稳定,批流一体友好
- Apache Iceberg:兼容性最强,可被 Spark/Flink/Presto/StarRocks 多引擎直读,无厂商绑定
统一能力:ACID 事务、数据版本(Time Travel 时间旅行,可查询历史快照)、Schema 演进、行级更新删除、分区索引优化。
4. 统一计算引擎层(存算分离)
存储与计算完全解耦,弹性扩缩容,一套存储对接多引擎:
- 批处理:Spark、Hive(日度月度离线指标计算)
- 实时流:Flink(实时差额量、实时扫描件数大屏)
- 极速 OLAP:StarRocks、Doris、ClickHouse(业务 BI 秒级查询)
- 查询引擎:Trino/Presto(跨湖表统一 SQL 查询)
5. 元数据与治理服务层(仓的能力)
统一元数据中心(Hive Metastore、Glue):
- 表结构、分区、统计信息统一管理
- 数据血缘、数据质量校验、行 / 列级权限、脱敏审计
- 统一数据目录,业务分析师自助查数,避免数据沼泽
四、湖仓一体核心优势
- 一份数据多场景复用 原始明细、汇总指标、AI 特征全部存在同一套存储,无需多份同步,指标口径天然统一。
- 存算分离,大幅降本 冷数据低成本对象存储归档,计算资源按需弹性启停,相比独立数仓存储成本下降 50% 以上。
- 批流一体统一开发 离线 T+1 指标、实时分钟级大屏共用同一套表格式与 SQL 逻辑,不用维护两套代码,实时离线数据结果一致。
- 兼顾灵活与规范 既保留数据湖 "原始数据全留存、探索分析自由",又具备数仓强治理、强事务、高性能 SQL 报表能力。
- 原生支持 AI 链路 算法可直接读取湖内原始日志、结构化指标做训练,无需额外导出数据。