湖仓一体

从割裂到统一,从单一到混合

实时数仓架构演进全景图解

灵活但无序

什么都往里扔,先存着以后再说

🗃️
MySQL
业务数据库
📝
日志
服务器 / 应用日志
📱
埋点
用户行为数据
🔗
API
三方数据接口
↓ ↓ ↓
🌊
数据湖(HDFS / S3)
原始数据堆积,灵活但无序
存各种格式:JSON / Parquet / 图片 / 视频
存储成本低,按需扩缩容
Schema-on-Read,读的时候才解析
没有事务保证,容易变"数据沼泽"

规范但昂贵

为分析而生,结构化、分层、可治理

🏢
数据仓库(ClickHouse / Hive)
结构化存储,查询快,治理成熟
严格 Schema,字段类型强制约束
分层治理:ODS → DWD → DWS → ADS
OLAP 查询快,跑报表做聚合
存储成本高,扩缩容困难

割裂的两套系统

数据先存进湖,再 ETL 搬到仓

数据源
MySQL / 日志 / 埋点
采集
🌊 数据湖
HDFS / S3
ETL
⚙️ ETL 搬运
定时任务
转换
🏢 数据仓库
ClickHouse / Hive
查询
📊 下游
报表 / 应用
🔄
数据双重存储
湖里存一份,仓里再存一份,成本翻倍
📋
两套元数据
湖和仓各自管理 Schema,数据血缘断裂
实时性差
ETL 搬运有延迟,湖到仓数据滞后数小时
💸
维护成本高
两套系统分别运维、优化、升级

一套系统,统一存储

以 Paimon 为代表,一份数据兼具湖和仓的能力

数据源
MySQL / 日志 / 埋点
Flink CDC
🏠 湖仓一体(Paimon on HDFS)
一份数据,流批一体
ODS
原始数据 · append · CDC 直写
Flink SQL 流式处理
DWD
清洗去重 · merge · 明细宽表
Flink SQL 窗口聚合
DWS
聚合汇总 · UV/PV · 窗口结果
批量读取 / 流式消费
ADS
业务报表 · ClickHouse / MySQL
查询
📊 下游
报表 / 应用
🌊 湖的能力
底层 HDFS / S3 低成本存储
Parquet 列式格式
灵活扩展,PB 级容量
🏢 仓的能力
ACID 事务保证
Schema 强制约束
流批一体读写
📦
数据零搬迁
ODS 到 ADS 在同一套存储内,无需 ETL
📋
统一元数据
一套 Catalog 管理所有层级,血缘完整
流批一体
同一份数据,Flink 流式 + Spark 批量
💰
成本减半
只存一份在 HDFS,存储和运维成本下降

Kafka + Paimon 双层 ODS

流消息队列 + 湖仓存储,大厂复杂数仓的主流落地形态

数据源
MySQL / Oracle
Flink CDC
📨
Kafka 流 ODS
实时缓冲层
Flink 转发
💎
Paimon 湖 ODS
统一持久层
Flink SQL
📊 下游
多类应用
📨 Kafka 流 ODS(实时缓冲层)
纯流式临时中转,面向秒级实时场景

核心价值:
· 高并发削峰,保护下游系统
· 多消费组同时分发(5-6 个消费者)
· 消息回溯排查(保留几天 offset)
· 实时事件触发(订单状态变更 → 通知)
💎 Paimon 湖 ODS(统一持久层)
批流一体永久存储,面向分析与回溯场景

核心价值:
· 数据永久保存,不会过期丢失
· 支持批量查询跑报表
· 数据对账:全量 vs 增量比对
· 流批一体:同一份数据两种读法
⚙️ 中间 Flink 转发作业
轻量 Flink 任务,从 Kafka 消费 CDC JSON → 清洗标准化 → 写入 Paimon。负责格式统一、字段映射、数据质量校验。
🎯 什么场景需要这种混合架构
适合混合架构
· 每秒几十万条写入,需要削峰
· 同一份数据要分发给 5+ 个消费组
· 业务系统需要实时消费变更事件
· 大型团队(几十人),多条产品线
Paimon 直写就够了
· 中小团队,几个人维护
· 数据量适中,无需削峰
· 消费者单一(只写 Paimon)
· 学习和原型阶段

三种架构一目了然

维度 🌊 数据湖 🏢 数据仓库 🏠 湖仓一体 📨+💎 Kafka+Paimon
存储介质 HDFS / S3 专用引擎 HDFS / S3 Kafka + HDFS
数据格式 任意格式 仅结构化 结构化 + 半结构化 结构化 + 半结构化
实时性 需额外组件 原生流式 秒级实时
事务支持 ACID ACID
多消费分发 一般 强(Kafka 多组)
削峰能力 有限 强(Kafka 缓冲)
运维复杂度
适用规模 中小 中大 中小 → 大 大型(几十人+)
代表技术 HDFS, S3 ClickHouse, Hive Paimon, Hudi, Iceberg Kafka + Paimon
数据湖 + 数据仓库 = 湖仓一体

低成本存储的灵活性 + 结构化治理的规范性
一份数据解决所有问题,不再需要"先存湖、再搬到仓"

湖仓一体 = 数据湖的存储灵活性 + 数据仓库的治理能力,合在一套系统里。
当团队规模和复杂度需要时,再叠加 Kafka 做实时缓冲和多路分发。