Apache Paimon 2.1.0 介绍与选型指南

基于官方发行目录与 2.1 文档梳理 Apache Paimon 2.1.0 的 LSM 湖格式架构、流批一体与多模态特性、Flink 快速上手与 Iceberg/Delta Lake/Hudi 量化选型对比,查询日期 2026-10-18

Apache PaimonApache Paimon数据湖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流式数据湖表格式核心
pypaimon2.1.0Python SDK
paimon-rust0.4.0Rust 实现
paimon-cpp0.3.0C++ 实现
paimon-vector-index0.5.0向量索引
paimon-mosaic0.2.0多模态相关工件
paimon-full-text0.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 Centralhttps://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.0Apache Iceberg 1.12.0Delta 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-12stars 官方未公布;Maven Central 元数据更新 2026-09-30stars 官方未公布;Maven Central 元数据更新 2026-08-12stars 官方未公布;Maven Central 元数据更新 2026-10-17
版本节奏2026 年内 1.x → 2.0 → 2.1 快速演进1.x 稳定演进,月度级 patch3.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。

八、参考链接