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 | 仅对于分支,分支中允许的最大快照存在时间。 分支中较旧的快照将过期。 |