に最終更新
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 以降でサポートされており、すべての query_type について iceberg_meta() と同じメタデータを取得できるほか、さらに多くの種類のメタデータを公開します。Iceberg Catalog のシステムテーブルを参照してください。
4.1.4 より前のバージョンでは引き続き iceberg_meta() を使用できるため、参考としてこのドキュメントに使用方法を残しています。
説明
iceberg_meta テーブル値関数(TVF)は、Iceberg のメタデータ、操作履歴、テーブルのスナップショット、ファイルのメタデータなどを読み取るために使用します。
代替手段:Iceberg システムテーブル
システムテーブルには、テーブル名の末尾に $ とシステムテーブル名を付けてアクセスします。
SELECT * FROM <catalog>.<database>.<table>$<system_table_name>;
各 query_type について、iceberg_meta() に対応するシステムテーブルは次のとおりです。
query_type(iceberg_meta()) | 対応するシステムテーブル |
|---|---|
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 |
書き換え例:
-- Before 4.1.4
SELECT * FROM iceberg_meta("table" = "iceberg_ctl.test_db.test_tbl", "query_type" = "snapshots");
-- 4.1.4 and later
SELECT * FROM iceberg_ctl.test_db.test_tbl$snapshots;
-- Before 4.1.4: filtered by the snapshot_id column
SELECT * FROM iceberg_meta("table" = "iceberg_ctl.test_db.test_tbl", "query_type" = "snapshots")
WHERE snapshot_id = 98865735822;
-- 4.1.4 and later
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" のペアです。
| フィールド | 説明 |
|---|---|
<table> | 参照する Iceberg テーブルの完全なテーブル名です。database_name.table_name の形式で指定する必要があります。 |
<query_type> | 参照するメタデータの種類です。サポートされる種類:snapshots:スナップショット情報manifests:現在のスナップショットのマニフェストファイルall_manifests:すべての有効なスナップショットのマニフェストファイル(バージョン 4.0.4 以降でサポート)files:現在のスナップショットのファイル情報data_files:現在のスナップショットのデータファイルdelete_files:現在のスナップショットの削除ファイルpartitions:パーティション情報refs:参照情報(ブランチとタグ)history:履歴レコードmetadata_log_entries:メタデータログのエントリ |
例
-
Iceberg テーブルのスナップショットのメタデータを読み取ります。
select * from iceberg_ctl.db.tbl$snapshots; -
Iceberg テーブルのスナップショットを確認します。
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 のシステムテーブルを参照してください。