跳到主要内容
版本: 最新版本-3.5

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 表执行的操作类型。 有效值
  • append:追加新数据。
  • replace:删除并替换文件,而不更改表中的数据。
  • overwrite:旧数据被新数据覆盖。
  • delete:从表中删除数据。
manifest_listAvro 清单文件的列表,其中包含有关快照更改的详细信息。
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_sizesIceberg 列 ID 与文件中相应大小之间的映射。
value_countsIceberg 列 ID 与文件中相应条目计数之间的映射。
null_value_countsIceberg 列 ID 与文件中相应的 NULL 值计数之间的映射。
nan_value_countsIceberg 列 ID 与文件中相应的非数值计数之间的映射。
lower_boundsIceberg 列 ID 与文件中相应的下限之间的映射。
upper_boundsIceberg 列 ID 与文件中相应的上限之间的映射。
split_offsets建议的拆分位置列表。
sort_id表示此文件排序顺序的 ID。
equality_ids用于相等删除文件中相等比较的字段 ID 集。
key_metadata有关用于加密此文件的加密密钥的元数据(如果适用)。

refs

用法

SELECT * FROM [<catalog>.][<database>.]table$refs;

输出

字段描述
name引用的名称。
type引用的类型。 有效值:BRANCHTAG
snapshot_id引用的快照 ID。
max_reference_age_in_ms引用过期前的最大存在时间。
min_snapshots_to_keep仅对于分支,分支中要保留的最小快照数。
max_snapshot_age_in_ms仅对于分支,分支中允许的最大快照存在时间。 分支中较旧的快照将过期。