Apache Paimon 数据湖表格式
Apache Paimon(前身是 Flink Table Store)是一个流式数据湖存储格式,主打「统一存储」(Unified Storage),为流批一体的数据处理提供一套统一的湖存储方案。
本文整理自 Apache Paimon 官方文档 Overview 及个人学习笔记。
一、架构概览
Paimon 的架构可以从读写、生态、底层存储三个维度理解。
读 / 写(Read / Write)
Paimon 支持灵活多样的读写方式,并能直接承接 OLAP 查询:
- 读:
- 从历史快照消费数据(批模式)
- 从最新 offset 消费数据(流模式)
- 以混合方式读取增量快照(Incremental Snapshot)
- 写:
- 从数据库 changelog 做流式同步(CDC)
- 从离线数据做批量 insert / overwrite
生态(Ecosystem)
除了 Apache Flink,Paimon 也支持被 Apache Hive、Apache Spark、Trino 等其他计算引擎读取。
内部存储(Internal)
- 底层将列式文件存储在文件系统 / 对象存储上(HDFS / OSS / S3)。
- 主键表采用 LSM Tree 结构,支撑大规模数据更新与高性能查询。
- 元数据保存在 manifest 文件中,提供大规模存储与 data skipping(数据跳跃裁剪)能力。
二、统一存储(Unified Storage)
对于 Apache Flink 这类流式引擎,通常会用到三类连接器:
| 类型 | 代表 | 作用 |
|---|---|---|
| 消息队列 | Apache Kafka | 作为 pipeline 的 source 与中间阶段,保证秒级延迟 |
| OLAP 系统 | ClickHouse | 以流式方式接收处理后的数据,服务用户的即席查询 |
| 批存储 | Apache Hive | 支持传统批处理的各种操作,如 INSERT OVERWRITE |
三、核心概念速览
从 Paimon 官方文档的概念目录可看到其核心能力,主要包括:
- Table Types:分为「带主键表」(Table with PK)与「不带主键表」(Table without PK)
- 增量快照(Incremental Snapshot)
- CDC 整库同步(Entire Database Sync)
- Schema Evolution 同步、Partial Update(部分更新)
- Lookup Join
- 并发控制(Concurrency Control)、Batch Overwrite
- Catalog:支持文件系统 Catalog 与 REST Catalog
四、学习资源
- 尚硅谷《Apache Paimon 教程(流式数据湖平台)》
- 哔哩哔哩《Paimon 数据湖 & 入门到源码精通(真实案例 + 源码分析)》