Overview
Apache Paimon is a streaming data lake storage system that provides ACID transactions, snapshot isolation, and unified batch/streaming processing across multiple compute engines including Flink, Spark, Hive, and Trino. It innovatively combines lake format capabilities with LSM-tree structures to enable real-time streaming updates within the lake architecture
Apache Paimon (incubating) 是一项流式数据湖存储技术,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。Paimon 采用开放的数据格式和技术理念,可以与 Flink / Spark / Trino 等诸多业界主流计算引擎进行对接,共同推进 Streaming Lakehouse 架构的普及和发展。

原理 & 功能
作为一种新型的可更新数据湖,Paimon具有以下特点
- 大吞吐量的更新数据摄取,同时提供良好的查询性能
- 具有主键过滤器的高性能查询,响应时间最快可达到百毫秒级别
- 流式读取在 Lake Storage 上可用,Lake Storage 还可以与 Kafka 集成,以提供毫秒级流式读取
文件布局
一个paimon标的全部文件存储在一个基础目录里,文件以分层的方式组织。如下图是paimon的文件部署,从Snapshot文件开始,Paimon文件读取器可以递归地访问表中的所有数记录

- Schema: 字段、主键定义、分区键定义和options
- Snapshot: 在某个特定时间点提交的所有数据的入口
- Manifest list: 包含若干个manifest文件
- Manifest: 包含若干data文件和changelog文件
- Data File: 包含增量记录
- Changelog File: 包含由changelog-producer生成的记录
- Global Index: bucket或partition的索引
- Data File Index: data文件的索引
Reference
- [Apache Paimon](https: //paimon.apache.org/)