Apache Paimon 2.1.0 介绍与选型指南
基于官方发行目录与 2.1 文档梳理 Apache Paimon 2.1.0 的 LSM 湖格式架构、流批一体与多模态特性、Flink 快速上手与 Iceberg/Delta Lake/Hudi 量化选型对比,查询日期 2026-10-18
Apache Paimon 2.1.0 介绍与选型指南
一、信息基准
1.1 基本信息
- 查询日期:2026-10-18
- 本文基准版本:Apache Paimon 2.1.0(官方最新稳定版)
- 维护方:Apache Software Foundation(顶级项目,已从孵化器毕业;Maven Central 版本列表显示自 0.8.0 起发行工件不再带 incubating 后缀)
- 开源许可:Apache License 2.0
- 计算引擎:以 Flink 与 Spark 为主引擎承载流批读写(官方文档与仓库说明)
1.2 版本依据
- downloads.apache.org/paimon/ 发行目录下 paimon-2.1.0/ 目录时间戳为 2026-10-12,为当前最新的主项目版本目录。
- Maven Central
org.apache.paimon:paimon-core元数据 release 与 latest 均为 2.1.0,元数据最近更新时间 2026-10-12,交叉一致。 - 官方文档站 docs 目录下 2.1/ 为最新版本文档(目录时间 2026-10-13)。
1.3 组件-版本基准表
Paimon 项目下含多个发行工件,均以 2026-10-18 查询 downloads.apache.org/paimon/ 与 Maven Central 为准:
| 组件 | 最新稳定版 | 说明 |
|---|---|---|
| paimon-core(主项目) | 2.1.0 | 流式数据湖表格式核心 |
| pypaimon | 2.1.0 | Python SDK |
| paimon-rust | 0.4.0 | Rust 实现 |
| paimon-cpp | 0.3.0 | C++ 实现 |
| paimon-vector-index | 0.5.0 | 向量索引 |
| paimon-mosaic | 0.2.0 | 多模态相关工件 |
| paimon-full-text | 0.1.0 | 全文检索 |
1.4 官方来源清单
| 来源 | 地址 | 用途 |
|---|---|---|
| ASF 发行目录 | https://downloads.apache.org/paimon/ | 版本目录与签名校验 |
| 官方文档站 | https://paimon.apache.org/docs/2.1/ | 2.1 版本文档 |
| Flink 快速上手 | https://paimon.apache.org/docs/2.1/flink/quick-start/ | 最小示例 |
| 项目仓库 | https://github.com/apache/paimon | 项目描述与社区入口 |
| Maven Central | https://repo1.maven.org/maven2/org/apache/paimon/paimon-core/ | 版本交叉核验 |
二、软件概述
2.1 软件定位
本文介绍 Apache Paimon 2.1.0。按官方仓库描述:Apache Paimon 是一种数据湖表格式(lake format),用于支撑以 Flink 和 Spark 构建流批一体的实时湖仓架构;其创新点在于将湖格式与 LSM 树结构结合,把实时流式更新带入湖仓体系。Paimon 前身为 Flink 社区的 Flink Table Store,架构上参考了 Iceberg 的部分设计理念。
2.2 官方文档的三大场景划分
2.1 版官方文档将能力划分为三类场景:大规模分析(PB 级表、时间旅行、快速扫描规划、schema 演进与增量聚簇)、实时流式(LSM 驱动的流式更新、多种 merge engine 与 changelog producer)、多模态 AI(向量检索、全文检索、blob 表与 Python SDK 打通 ML 生态)。
三、核心概念
3.1 表类型
- 主键表(Primary Key Table):以主键支持行级更新,LSM 结构承载数据,官方提供多种 merge engine 与 changelog producer 供选择,决定变更消息的产生方式。
- 追加表(Append Table):仅追加写入,支持增量聚簇(incremental clustering),面向日志与事实流水类数据。
3.2 快照与时间旅行
每次提交生成快照(snapshot),批读即读取某个快照;官方文档强调"streaming writes become visible through committed Paimon snapshots",并支持标签(tags)与时间旅行查询。
3.3 CDC 入库
官方提供 CDC Ingestion 指南,覆盖 MySQL、PostgreSQL、Kafka、MongoDB、Pulsar 等来源的变更数据入湖。
3.4 Catalog 与元数据
通过 Catalog 抽象接入 Flink/Spark SQL(如 'type' = 'paimon' 的 Flink Catalog),warehouse 指向文件系统或对象存储路径。
四、功能特性
4.1 流批一体
同一张表既支持流式读写(跟随变更的无界查询),也支持批式读写(按快照的有界查询),官方快速上手以同一张 word_count 表演示两种模式。
4.2 实时更新
主键表借助 LSM 结构实现高吞吐流式更新,配合 compaction 与多种 merge engine 平衡读放大与写放大。
4.3 Schema 演进与聚簇
官方文档列出 schema evolution、fast scan planning、incremental clustering、快照/标签/统计与 compaction 运维等能力。
4.4 多模态与多语言
2.1 文档新增多模态表(向量存储、blob 存储、全局索引)、pypaimon 与 Ray/PyTorch/Pandas 集成,另有 paimon-rust、paimon-cpp 等多语言实现工件。
4.5 生态互通
官方生态页列出 StarRocks、Doris、Hive、Trino、Presto 等查询引擎集成。
五、快速上手
以下为官方 2.1 文档 Flink 快速上手教程的核心 SQL 步骤摘录(本教程在本地 Flink 集群上运行流式 word count,结果存入 Paimon,并分别以批、流两种模式读取;本文未做本地实测,示例均引自官方页面):
5.1 创建 Catalog 与表
CREATE CATALOG my_catalog WITH (
'type' = 'paimon',
'warehouse' = 'file:/tmp/paimon'
);
USE CATALOG my_catalog;
CREATE TABLE word_count (
word STRING PRIMARY KEY NOT ENFORCED,
cnt BIGINT
);
5.2 流式写入
CREATE TEMPORARY TABLE word_table (
word STRING
) WITH (
'connector' = 'datagen',
'fields.word.length' = '1',
'rows-per-second' = '100'
);
SET 'execution.runtime-mode' = 'streaming';
SET 'execution.checkpointing.interval' = '10 s';
SET 'table.dml-sync' = 'false';
INSERT INTO word_count
SELECT word, COUNT(*) FROM word_table GROUP BY word;
官方说明:主键使 Paimon 可以对每个词更新计数;流式写入需等待第一个成功的 checkpoint 后才通过快照可见。
5.3 批读与流读
SET 'execution.runtime-mode' = 'batch';
SELECT * FROM word_count; -- 每次批查询读取一个快照
SET 'execution.runtime-mode' = 'streaming';
SELECT * FROM word_count; -- 流式查询持续跟随变更
来源:https://paimon.apache.org/docs/2.1/flink/quick-start/
六、适用场景与限制
6.1 适用场景
- 高频更新的实时湖仓:CDC 入湖、主键表行级更新、流批一体消费;
- 日志/事件流水的大规模追加存储与增量聚簇分析;
- 需要时间旅行、快照回溯与标签管理的数据资产治理;
- 面向 AI 的向量/全文/blob 多模态数据底座(配合 pypaimon)。
6.2 限制
- Paimon 本身是表格式与引擎插件,不是查询引擎,读写需依赖 Flink/Spark 等计算引擎;
- 引擎版本兼容关系以官方各引擎文档为准,升级时需同步核对;
- 多语言实现(rust/cpp/vector-index 等)版本线相对年轻(0.x),生产采用前需按官方文档评估;
- 查询侧依赖生态集成(StarRocks、Trino 等),点查与交互式分析性能取决于查询引擎。
七、同类选型对比
7.1 候选说明
同类候选选取 Apache Iceberg、Delta Lake 与 Apache Hudi 三个主流开放表格式,版本数据于 2026-10-18 实查 Maven Central。
7.2 量化对比
| 维度 | Apache Paimon 2.1.0 | Apache Iceberg 1.12.0 | Delta Lake(delta-spark 3.3.3) | Apache Hudi 1.2.1 |
|---|---|---|---|---|
| 开源许可 | Apache-2.0(ASF 顶级项目) | Apache-2.0(ASF 顶级项目) | Apache-2.0(POM 声明,LF 基金会项目) | Apache-2.0(ASF 顶级项目) |
| GitHub stars 与最近发版 | stars 官方未公布;发行目录 2026-10-12 | stars 官方未公布;Maven Central 元数据更新 2026-09-30 | stars 官方未公布;Maven Central 元数据更新 2026-08-12 | stars 官方未公布;Maven Central 元数据更新 2026-10-17 |
| 版本节奏 | 2026 年内 1.x → 2.0 → 2.1 快速演进 | 1.x 稳定演进,月度级 patch | 3.x 线稳定维护 | 1.x 线稳定演进,补丁活跃 |
| 兼容矩阵 | Flink/Spark 为主引擎,StarRocks/Doris/Hive/Trino/Presto 查询集成;LSM 行级更新是核心差异点 | 多引擎中立(Spark/Flink/Trino/Hive 等),生态面最广 | 以 Spark 为中心,另有 Flink 与多语言连接器 | Spark/Flink 为主,强调记录级索引与增量查询 |
数据来源:downloads.apache.org/paimon/、repo1.maven.org(org.apache.iceberg:iceberg-core、io.delta:delta-spark_2.12、org.apache.hudi:hudi-common),查询日期 2026-10-18。
7.3 选型建议
若核心诉求是高频流式更新与 CDC 入湖且主引擎为 Flink,Paimon 的 LSM 主键表最为契合;若追求多引擎中立与最广泛查询生态,选 Iceberg;若团队以 Spark 生态为中心并需要成熟商业支持,选 Delta Lake;若强调记录级索引与增量管道治理,选 Hudi。
八、参考链接
- ASF 发行目录:https://downloads.apache.org/paimon/
- 官方文档站(2.1):https://paimon.apache.org/docs/2.1/
- Flink 快速上手:https://paimon.apache.org/docs/2.1/flink/quick-start/
- 项目仓库:https://github.com/apache/paimon
- Maven Central:https://repo1.maven.org/maven2/org/apache/paimon/paimon-core/
- CDC 入库指南:https://paimon.apache.org/docs/2.1/cdc-ingestion/