概念 - 基本概念

基本概念

文件布局

一个表的所有文件都存储在一个基础目录下。Paimon 文件采用分层方式组织。以下图片展示了文件布局。从快照文件开始,Paimon 读取器可以递归地访问表中的所有记录。


image.png

快照

所有快照文件都存储在快照目录中。

快照文件是一个 JSON 格式的文件,其中包含了关于此快照的相关信息,包括

  • 正在使用的schema文件
  • 包含此快照所有变更内容的清单 manifest list

快照能够捕捉到某个时间点上表的状况。用户可以通过最新的快照访问表的最新数据。通过时间旅行,用户还可以通过较早的快照访问表的先前状态。

清单文件

所有清单列表和清单文件都存储在清单目录中。

清单列表意为清单文件名列表。

一个清单文件是一个包含有关 LSM 数据文件和变更日志文件变更信息的文件。例如,在相应的快照中创建了哪个 LSM 数据文件以及删除了哪个文件。

数据文件

数据文件是按照分区进行分组的。目前,Paimon 支持使用 parquet(默认格式)、orc 和 avro 作为数据文件的格式。

分区

Paimon 采用了与 Apache Hive 相同的数据分区概念来对数据进行划分。

分区是一种可选的方式,用于根据特定列(如日期、城市和部门)的值将表划分为相关部分。每个表可以有一个或多个分区键来标识特定的分区。

通过分区操作,用户能够高效地对表中的某一部分记录进行处理。

一致性保证

Paimon 写入器使用两阶段提交协议来原子性地将一批记录提交到表中。每次提交最多会产生两个快照,快照是在提交时生成的。这取决于增量写入和压缩策略。如果仅执行增量写入而未触发压缩操作,则只会创建一个增量快照。如果触发了压缩操作,则会创建一个增量快照和一个压缩快照。

对于任何同时修改同一张表的两个写入者而言,只要他们不修改相同的分区,他们的提交就可以并行进行。如果他们修改了相同的分区,那么仅能保证实现快照隔离。也就是说,最终的表状态可能会是两个提交的混合体,但不会丢失任何更改。有关更多信息,请参阅专门的合并任务

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容