Iceberg 元数据表
本主题介绍如何在 StarRocks 中检查 Iceberg 表的元数据信息。
概述
从 V3.4.1 版本开始,StarRocks 支持 Iceberg 元数据表。这些元数据表包含有关 Iceberg 表的各种信息,例如表更改历史记录、快照和清单。 您可以通过将元数据表名称附加到原始表名称来查询每个元数据表。
目前,StarRocks 支持以下 Iceberg 元数据表
元数据表 | 描述 |
---|---|
history | 显示对表进行的元数据更改的日志。 |
metadata_log_entries | 显示表的元数据日志条目。 |
snapshots | 显示有关表快照的详细信息。 |
manifests | 显示与表日志中的快照关联的清单的概述。 |
partitions | 显示有关表中分区的详细信息。 |
files | 显示有关表的当前快照中的数据文件和删除文件的详细信息。 |
refs | 显示有关 Iceberg 引用的详细信息,包括分支和标签。 |
history
表
用法
SELECT * FROM [<catalog>.][<database>.]table$history;
输出
字段 | 描述 |
---|---|
made_current_at | 快照成为当前快照的时间。 |
snapshot_id | 快照的 ID。 |
parent_id | 父快照的 ID。 |
is_current_ancestor | 此快照是否为当前快照的祖先。 |
metadata_log_entries
表
用法
SELECT * FROM [<catalog>.][<database>.]table$metadata_log_entries;
输出
字段 | 描述 |
---|---|
timestamp | 记录元数据的时间。 |
file | 元数据文件的位置。 |
latest_snapshot_id | 更新元数据时最新快照的 ID。 |
latest_schema_id | 更新元数据时最新架构的 ID。 |
latest_sequence_number | 元数据文件的数据序列号。 |
snapshots
表
用法
SELECT * FROM [<catalog>.][<database>.]table$snapshots;
输出
字段 | 描述 |
---|---|
committed_at | 提交快照的时间。 |
snapshot_id | 快照的 ID。 |
parent_id | 父快照的 ID。 |
operation | 对 Iceberg 表执行的操作类型。 有效值
|
manifest_list | Avro 清单文件的列表,其中包含有关快照更改的详细信息。 |
summary | 从上一个快照到当前快照所做更改的摘要。 |
manifests
表
用法
SELECT * FROM [<catalog>.][<database>.]table$manifests;
输出
字段 | 描述 |
---|---|
path | 清单文件的位置。 |
length | 清单文件的长度。 |
partition_spec_id | 用于写入清单文件的分区规范的 ID。 |
added_snapshot_id | 添加此清单条目的快照的 ID。 |
added_data_files_count | 清单文件中状态为 ADDED 的数据文件数。 |
added_rows_count | 清单文件中状态为 ADDED 的所有数据文件中的总行数。 |
existing_data_files_count | 清单文件中状态为 EXISTING 的数据文件数。 |
existing_rows_count | 清单文件中状态为 EXISTING 的所有数据文件中的总行数。 |
deleted_data_files_count | 清单文件中状态为 DELETED 的数据文件数。 |
deleted_rows_count | 清单文件中状态为 DELETED 的所有数据文件中的总行数。 |
partition_summaries | 分区范围元数据。 |
partitions
表
用法
SELECT * FROM [<catalog>.][<database>.]table$partitions;
输出
字段 | 描述 |
---|---|
partition_value | 分区列名称到分区列值的映射。 |
spec_id | 文件的分区 Spec ID。 |
record_count | 分区中的记录数。 |
file_count | 分区中映射的文件数。 |
total_data_file_size_in_bytes | 分区中所有数据文件的大小。 |
position_delete_record_count | 分区中 Position Delete 文件的总行数。 |
position_delete_file_count | 分区中 Position Delete 文件的数量。 |
equality_delete_record_count | 分区中 Equality Delete 文件的总行数。 |
equality_delete_file_count | 分区中 Position Equality 文件的数量。 |
last_updated_at | 最近一次更新分区的时间。 |
files
表
用法
SELECT * FROM [<catalog>.][<database>.]table$files;
输出
字段 | 描述 |
---|---|
content | 文件中存储的内容类型。 有效值:DATA(0) 、POSITION_DELETES(1) 和 EQUALITY_DELETES(2) 。 |
file_path | 数据文件的位置。 |
file_format | 数据文件的格式。 |
spec_id | 用于跟踪包含行的文件的 Spec ID。 |
record_count | 数据文件中包含的条目数。 |
file_size_in_bytes | 数据文件的大小。 |
column_sizes | Iceberg 列 ID 与文件中相应大小之间的映射。 |
value_counts | Iceberg 列 ID 与文件中相应条目计数之间的映射。 |
null_value_counts | Iceberg 列 ID 与文件中相应的 NULL 值计数之间的映射。 |
nan_value_counts | Iceberg 列 ID 与文件中相应的非数值计数之间的映射。 |
lower_bounds | Iceberg 列 ID 与文件中相应的下限之间的映射。 |
upper_bounds | Iceberg 列 ID 与文件中相应的上限之间的映射。 |
split_offsets | 建议的拆分位置列表。 |
sort_id | 表示此文件排序顺序的 ID。 |
equality_ids | 用于相等删除文件中相等比较的字段 ID 集。 |
key_metadata | 有关用于加密此文件的加密密钥的元数据(如果适用)。 |
refs
表
用法
SELECT * FROM [<catalog>.][<database>.]table$refs;
输出
字段 | 描述 |
---|---|
name | 引用的名称。 |
type | 引用的类型。 有效值:BRANCH 或 TAG 。 |
snapshot_id | 引用的快照 ID。 |
max_reference_age_in_ms | 引用过期前的最大存在时间。 |
min_snapshots_to_keep | 仅对于分支,分支中要保留的最小快照数。 |
max_snapshot_age_in_ms | 仅对于分支,分支中允许的最大快照存在时间。 分支中较旧的快照将过期。 |