前面我们给出了:基于 Hudi 的湖仓一体架构图,我看很多伙伴挺感兴趣,今天我们一起来看看:基于 Apache Paimon 的湖仓一体架构图 是怎么样的?以及它和hudi之间的区别。
前言: Paimon 与 Hudi 最大的不同在于:Paimon 更强调与 Flink 的深度集成,天然支持流式读写和 Changelog 数据流,因此在架构上可以进一步简化"批流分离"的写入路径,实现真正的统一写入引擎。
基于 Apache Paimon 的电商湖仓一体架构图
1+-----------------------------------------------------+
2 | 数据源层 |
3 | MySQL Binlog, MongoDB, 应用日志, 第三方平台API |
4 +--------------------------+--------------------------+
5 |
6 v
7 +-----------------------------------------------------+
8 | 采集层 |
9 | Canal / Maxwell (Binlog采集) |
10 | Flume / Logtail (日志采集) |
11 | DataX / Sqoop (离线批量同步 - 可选) |
12 | Kafka (消息队列, 统一数据管道) |
13 +--------------------------+--------------------------+
14 |
15 v
16 +-------------------+
17 | 统一计算引擎 |
18 | Apache |
19 | Flink |
20 | (Stream & Batch) |
21 +---------+---------+
22 |
23 +----------------------------+----------------------------+
24 | |
25 (实时流写入) | (离线批处理/回填) |
26 Flink Job | Flink Batch / Spark |
27 (Continuous) (Periodic Backfill) |
28 | |
29 +----------------------------+----------------------------+
30 |
31 v
32 +------------------------------------------------------------------------------+
33| 统一数据湖存储 (Paimon on HDFS/OSS/S3) |
34| +-------------------+ +-------------------+ +---------------------------+ |
35| | ODS 层 (原始数据) | | DWD 层 (清洗明细) | | DWS/ADS 层 (汇总/应用) | |
36| | - 订单 Binlog | | - 订单明细事实 | | - 实时 GMV 统计 | |
37| | - 用户行为日志 | | - 用户画像宽表 | | - 商品实时销量 | |
38| | - 库存快照 | | - 支付流水 | | - 人群标签圈选 | |
39| | Paimon PK 表 | | Paimon PK 表 | | Paimon Aggregate 表 | |
40| +-------------------+ +-------------------+ +---------------------------+ |
41| |
42| • 核心能力: |
43| • LSM 树结构:高吞吐 Upsert/Delete,自动 Compaction |
44| • Changelog 支持:直接产出带 Op (Insert/Update/Delete) 的流数据 |
45| • 流批一体:同一张表同时支持流式写入和批量查询 |
46| • 时间旅行 (Time Travel):支持查询历史任意版本数据 |
47| • 分区演化:支持动态分区添加,无需重写全表 |
48 +----------------------------------------+-------------------------------------+
49 |
50 v
51 +------------------------------------------------------------------------------+
52| 统一元数据服务 (Hive Metastore / DLF) |
53| 管理所有 Paimon 表的 Schema、分区、Manifest 文件 |
54 +----------------------------------------+-------------------------------------+
55 |
56 +--------------------+--------------------+
57 | |
58 v v
59 +-----------------------------------+ +-----------------------------------+
60| 查询与分析引擎 | | 实时服务加速层 (可选) |
61| • Flink SQL (流式查询) | | • StarRocks / Doris / ClickHouse |
62| • Spark SQL (批量分析) | | • 通过 Flink CDC 将 Paimon 变更 |
63| • Trino / Presto (交互式即席) | | 数据实时同步至 MPP |
64| • Hive (传统兼容) | | • 提供毫秒级高并发点查/API 服务 |
65 +------------------+----------------+ +----------------+------------------+
66 | |
67 +------------------+----------------------+
68 |
69 v
70 +------------------------------------------------------------------------------+
71| 应用层 / 数据服务 |
72| • 实时大屏 (Flink + Paimon Streaming Read) |
73| • BI 报表 (Superset, QuickBI 对接 Spark/Trino) |
74| • 数据 API (标签查询, 人群圈选, 推荐特征) |
75| • 数据科学 (机器学习特征存储 Feature Store) |
76 +------------------------------------------------------------------------------+
77
78 +------------------------------------------------------------------------------+
79| 治理与运维 |
80| • 调度系统 (DolphinScheduler / Airflow) 管理 Flink Job 和补数据任务 |
81| • 数据质量监控 (Flink Metrics + 自定义规则) |
82| • 数据血缘 (DataHub / Atlas 解析 Paimon Manifest) |
83| • 生命周期管理 (Paimon TTL 自动过期冷数据) |
84 +------------------------------------------------------------------------------+
架构核心差异与 Paimon 优势解读
相较于前面的 Hudi 架构,基于 Paimon 的架构在以下方面进行了优化和简化:
1. 写入层:真正的"流批一体"
- Hudi 架构痛点:通常需要维护两套写入逻辑,实时用 Flink 写 MOR 表,离线用 Spark 写 COW 表,或者需要复杂的配置来兼容两者。
- Paimon 方案 :Flink 是首选且统一的写入引擎 。
- Paimon 基于 LSM 树结构,天生适合高并发的流式 Upsert。
- 无论是实时流入的数据,还是离线的历史数据回填(Backfill),都可以使用相同的 Flink Job 逻辑(只需切换执行模式为 Stream 或 Batch),写入同一张 Paimon 表,无需区分表类型(MOR/COW)。
2. 数据消费:原生 Changelog 支持
- Hudi 架构痛点:增量消费通常需要依赖 Hudi 的 Timeline 机制或配合 Delta Streamer,配置相对复杂。
- Paimon 方案 :Paimon 表天然是一个有状态的流 。
- Flink 可以直接读取 Paimon 表的 Changelog Stream (包含
+I,-U,+U,-D操作符)。 - 这意味着下游的实时 ETL(如 DWD -> DWS)可以直接由 Flink 串联,实现端到端的低延迟链路,无需额外的增量识别逻辑。
- Flink 可以直接读取 Paimon 表的 Changelog Stream (包含
3. 查询性能与场景适配
- OLAP 加速 :虽然 Paimon 自身查询性能不错(尤其是主键点查),但在超大规模多维分析场景下,架构图中依然保留了 StarRocks/Doris 作为加速层。
- 新玩法 :利用 Paimon 的 Changelog 能力,通过 Flink 将数据实时同步到 StarRocks 的 Unique Key 模型中,实现秒级可见的实时数仓,比传统的 T+1 或分钟级同步更高效。
- 流式查询 :对于实时大屏场景,Flink 可以直接 Streaming Read Paimon 表,无需等待文件合并完成,极大降低了数据可见延迟。
4. 存储与管理
- 小文件问题:Paimon 内部自动处理 LSM Compaction(合并),对 NameNode 压力较小,运维复杂度低于 Hudi 的手动调优。
- Time Travel :Paimon 原生支持通过
snapshot-id或timestamp查询历史数据,便于电商场景下的"数据订正"和"状态回溯"(例如:还原昨天某个时刻的库存状态)。
电商场景落地建议
- ODS/DWD 层 :直接使用 Paimon Primary Key 表。利用其强大的 Upsert 能力处理订单状态变更(创建->支付->发货->完成/退款)。
- DWS/ADS 层 :
- 若需极速聚合(如实时 GMV),可使用 Paimon Aggregate 表(在写入时预聚合)。
- 若需灵活多维分析,建议通过 Flink 实时同步至 StarRocks/Doris。
- 特征存储 (Feature Store):Paimon 非常适合做在线特征存储,支持高并发的主键查询,可直接服务于推荐系统和风控模型。
这个架构在保留湖仓一体"统一存储、统一元数据"优势的同时,利用 Paimon 的特性进一步简化了技术栈,特别适合以 Flink 为核心计算引擎的电商团队。