Table Metadata

Table Metadata

表元数据存储为JSON。每个表元数据更改都会创建一个由原子操作提交的新表元数据文件。此操作用于确保表元数据的新版本替换它所基于的版本。这将生成表版本的线性历史记录,并确保并发写操作不会丢失。

用于提交元数据的原子操作取决于如何跟踪表,该规范没有对其进行标准化。

Table Metadata Fields

表元数据由以下字段组成:

v1 v2 字段 描述
required required format-version 格式的整数版本号。目前,它总是1。如果表的版本高于支持的版本,则会抛出异常
optional required table-uuid 标识表的UUID,在创建表时生成。如果刷新元数据后,表的UUID与预期的UUID不匹配,则会抛出异常。
required required location 表的基本位置。writers使用它来确定在何处存储datafile(数据文件)、manifest(清单文件)和metadata(表元数据文件)
required last-sequence-number 表中分配的最大序号,单调递增的long型变量,用于跟踪表中快照的顺序。
required required last-updated-ms 从上一次更新表的unix时间戳(以毫秒为单位)。每个表元数据文件应该在写入之前更新这个字段
required required last-column-id 一个整数;为表分配的最大列ID
required schema 表的当前schema。(已弃用:使用schema和current-schema-id代替)
optional required schemas schema列表,存储格式为带有schema id的对象
optional required current-schema-id 表的当前schema ID
required partition-spec 表的当前分区字段。请注意,writer使用它对数据进行分区,但在读取时不使用,因为读取使用存储在清单文件中的字段。(废弃的:使用partition-spec和default-spec-id代替)
optional required partition-specs 分区字段列表
optional required default-spec-id writer默认使用的当前分区字段ID
optional required last-partition-id An integer; the highest assigned partition field ID across all partition specs for the table. This is used to ensure partition fields are always assigned an unused ID when evolving specs.
optional optional properties 表属性的字符串到字符串的映射。这些属性用于控制读写,而不是用于任意元数据。例如,commit.retry.Num-retries用于控制提交重试次数。
optional optional current-snapshot-id long ID of the current table snapshot
optional optional snapshots 有效快照的列表。有效快照是指其数据文件都真实存在于文件系统中,不能有被删除的
optional optional snapshot-log A list (optional) of timestamp and snapshot ID pairs that encodes changes to the current snapshot for the table. Each time the current-snapshot-id is changed, a new entry should be added with the last-updated-ms and the new current-snapshot-id. When snapshots are expired from the list of valid snapshots, all entries before a snapshot that has expired should be removed.
optional optional metadata-log A list (optional) of timestamp and metadata file location pairs that encodes changes to the previous metadata files for the table. Each time a new metadata file is created, a new entry of the previous metadata file location should be added to the list. Tables can be configured to remove oldest metadata log entries and keep a fixed-size log of the most recent entries after a commit.
optional required sort-orders A list of sort orders, stored as full sort order objects.
optional required default-sort-order-id Default sort order id of the table. Note that this could be used by writers, but is not used when reading because reads use the specs stored in manifest files.
上一篇:JAVA 开发常用工具汇总


下一篇:SpringBoot集成jasperreport实现打印功能