跳到主要内容
版本:Latest-3.4

Iceberg 元数据表

本文描述了如何查看 StarRocks 中 Iceberg 表的元数据信息。

概述

从 v3.4.1 开始,StarRocks 支持 Iceberg 元数据表。这些元数据表包含了有关 Iceberg 表的各种信息,如表变更历史、快照和 Manifest。您可以通过将元数据表的名称附加到原始表名后来查询每个元数据表。

目前,StarRocks 支持以下 Iceberg 元数据表:

元数据表描述
history显示对表进行的元数据更改日志。
metadata_log_entries显示表的元数据日志条目。
snapshots显示表快照的详细信息。
manifests显示与表日志中快照相关联的 Manifest 概览。
partitions显示表中分区的详细信息。
files显示当前快照中数据文件(Data File)和删除文件(Delete File)的详细信息。
refs显示关于 Iceberg 引用(Reference)的详细信息,包括分支和标签。

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元数据更新时最新 Schema 的 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_list包含快照更改详细信息的 Avro Manifest 文件列表。
summary从上一个快照到当前快照的变更摘要。

manifests

用法:

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

输出:

字段描述
pathManifest 文件的位置。
lengthManifest 文件的长度。
partition_spec_id用于写入 Manifest 文件的分区规范 ID。
added_snapshot_id添加此 Manifest 条目的快照 ID。
added_data_files_countManifest 文件中状态为 ADDED 的数据文件数量。
added_rows_countManifest 文件中所有状态为 ADDED 数据文件的总行数。
existing_data_files_countManifest 文件中状态为 EXISTING 的数据文件数量。
existing_rows_countManifest 文件中所有状态为 EXISTING 数据文件的总行数。
deleted_data_files_countManifest 文件中状态为 DELETED 的数据文件数量。
deleted_rows_countManifest 文件中所有状态为 DELETED 数据文件的总行数。
partition_summaries分区范围元数据。

partitions

用法:

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

输出:

字段描述
partition_value分区列名称与分区列值的映射。
spec_id文件的分区规范 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分区中 Equality Delete 文件数量。
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用于在相等删除文件(Equality Delete File)中进行相等比较的字段 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仅适用于分支,分支中允许的最长保留时间。过期的快照将被删除。