跳到主要内容
最后 更新

ICEBERG_META

版本行为变更(4.1.4)

iceberg_meta() 表函数自 4.1.4 版本起已移除。执行该表函数会报错:

ERROR 1105 (HY000): errCode = 2, detailMessage = Could not find table function iceberg_meta

请改用 Iceberg 系统表查询同样的元数据信息。系统表自 3.1.0 版本开始支持,功能覆盖 iceberg_meta() 的全部 query_type,并且支持更完整的元数据类型。详见 Iceberg Catalog 系统表

4.1.4 之前的版本仍可以使用 iceberg_meta(),本文保留其用法说明以供参考。

描述

iceberg_meta 表函数(table-valued-function,tvf),可以用于读取 iceberg 表的各类元数据信息,如操作历史、生成的快照、文件元数据等。

替代用法:Iceberg 系统表

系统表的访问方式是在表名后添加 $ 符号,后跟系统表名称:

SELECT * FROM <catalog>.<database>.<table>$<system_table_name>;

iceberg_meta()query_type 与系统表的对应关系如下:

iceberg_meta()query_type等价的系统表
snapshots<table>$snapshots
manifests<table>$manifests
all_manifests<table>$all_manifests
files<table>$files
data_files<table>$data_files
delete_files<table>$delete_files
partitions<table>$partitions
refs<table>$refs
history<table>$history
metadata_log_entries<table>$metadata_log_entries

改写示例:

-- 4.1.4 之前
SELECT * FROM iceberg_meta("table" = "iceberg_ctl.test_db.test_tbl", "query_type" = "snapshots");

-- 4.1.4 及之后
SELECT * FROM iceberg_ctl.test_db.test_tbl$snapshots;
-- 4.1.4 之前:根据 snapshot_id 字段筛选
SELECT * FROM iceberg_meta("table" = "iceberg_ctl.test_db.test_tbl", "query_type" = "snapshots")
WHERE snapshot_id = 98865735822;

-- 4.1.4 及之后
SELECT * FROM iceberg_ctl.test_db.test_tbl$snapshots WHERE snapshot_id = 98865735822;

语法(4.1.4 之前)

ICEBERG_META(
"table" = "<table>",
"query_type" = "<query_type>"
);

必填参数(4.1.4 之前)

iceberg_meta 表函数 tvf 中的每一个参数都是一个 "key"="value"

FieldDescription
<table>完整的表名,需要按照目录名。库名.表名的格式,填写需要查看的 iceberg 表名。
<query_type>元数据类型,支持以下类型:
snapshots:快照信息
manifests:当前快照的清单文件
all_manifests:所有有效快照的清单文件(从 4.0.4 版本开始支持)
files:当前快照的文件信息
data_files:当前快照的数据文件
delete_files:当前快照的删除文件
partitions:分区信息
refs:引用信息(分支和标签)
history:历史记录
metadata_log_entries:元数据日志条目

示例(Examples)

  • 读取并访问 iceberg 表格式的 snapshots 元数据。

    select * from iceberg_ctl.db.tbl$snapshots;
  • 查看 iceberg 表的 snapshots

    select * from iceberg_ctl.test_db.test_tbl$snapshots;
    +------------------------+----------------+---------------+-----------+-------------------+------------------------------+
    | committed_at | snapshot_id | parent_id | operation | manifest_list | summary |
    +------------------------+----------------+---------------+-----------+-------------------+------------------------------+
    | 2022-09-20 11:14:29 | 64123452344 | -1 | append | hdfs:/path/to/m1 | {"flink.job-id":"xxm1", ...} |
    | 2022-09-21 10:36:35 | 98865735822 | 64123452344 | overwrite | hdfs:/path/to/m2 | {"flink.job-id":"xxm2", ...} |
    | 2022-09-21 21:44:11 | 51232845315 | 98865735822 | overwrite | hdfs:/path/to/m3 | {"flink.job-id":"xxm3", ...} |
    +------------------------+----------------+---------------+-----------+-------------------+------------------------------+
  • 根据 snapshot_id 字段筛选

    select * from iceberg_ctl.test_db.test_tbl$snapshots where snapshot_id = 98865735822;
    +------------------------+----------------+---------------+-----------+-------------------+------------------------------+
    | committed_at | snapshot_id | parent_id | operation | manifest_list | summary |
    +------------------------+----------------+---------------+-----------+-------------------+------------------------------+
    | 2022-09-21 10:36:35 | 98865735822 | 64123452344 | overwrite | hdfs:/path/to/m2 | {"flink.job-id":"xxm2", ...} |
    +------------------------+----------------+---------------+-----------+-------------------+------------------------------+
  • 查看 iceberg 表的其他元数据

    select * from iceberg_ctl.test_db.test_tbl$manifests;
    select * from iceberg_ctl.test_db.test_tbl$all_manifests;
    select * from iceberg_ctl.test_db.test_tbl$files;
    select * from iceberg_ctl.test_db.test_tbl$data_files;
    select * from iceberg_ctl.test_db.test_tbl$delete_files;
    select * from iceberg_ctl.test_db.test_tbl$partitions;
    select * from iceberg_ctl.test_db.test_tbl$refs;
    select * from iceberg_ctl.test_db.test_tbl$history;
    select * from iceberg_ctl.test_db.test_tbl$metadata_log_entries;

相关说明

更多关于 Iceberg 系统表的详细信息,请参阅 Iceberg Catalog 系统表