tencent cloud

Data Lake Compute

Procedure

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-25 12:00:06

説明

サポートカーネル:SparkSQL。
適用テーブルタイプ:外部Icebergテーブル、ネイティブIcebergテーブル。

基本構文

CALL catalog_name.system.procedure_name(arg_name_2 => arg_2, arg_name_1 => arg_1);

CALL catalog_name.system.procedure_name(arg_1, arg_2, ... arg_n);

スナップショット管理

rollback_to_snapshot

スナップショットを指定バージョンにロールバック。 入力パラメータ:テーブル名とバージョン番号。
CALL `DataLakeCatalog`.`system`.rollback_to_snapshot('validation.dempts', 1);

rollback_to_timestamp

スナップショットを指定タイムスタンプにロールバック。 入力パラメータ:テーブル名とタイムスタンプ。
CALL `DataLakeCatalog`.`system`.rollback_to_timestamp('validation.dempts', TIMESTAMP '2022-08-11 19:49:43.224');

set_current_snapshot

スナップショットの現在のバージョンを設定。 入力パラメータ:テーブル名とバージョン番号。
CALL `DataLakeCatalog`.`system`.set_current_snapshot('validation.dempts', 1);

cherrypick_snapshot

指定されたスナップショットバージョンから現在のスナップショットにチェリーピックします。
CALL `DataLakeCatalog`.`system`.cherrypick_snapshot('validation.dempts', 1);
CALL `DataLakeCatalog`.`system`.cherrypick_snapshot(snapshot_id => 1, table => 'my_table' )

メタデータ管理

expire_snapshots

期限切れのスナップショットをクリーンアップし、小ファイルの数を削減します。
CALL `Catalog`.`system`.expire_snapshots(table_name, [older_than], [retain_last], [max_concurrent_deletes], [stream_results]);
例:
CALL `DataLakeCatalog`.`system`.expire_snapshots('validation.dempts', TIMESTAMP '2021-06-30 00:00:00.000', 100);

remove_orphan_files

参照されなくなったメタデータファイルを削除します。
CALL `Catalog`.`system`.remove_orphan_files(table_name, [older_than], [location], [dry_run], [max_concurrent_deletes]);
例:
CALL `DataLakeCatalog`.`system`.remove_orphan_files(`table`=>'validation.dempts', dry_run=>TRUE);
CALL `DataLakeCatalog`.`system`.remove_orphan_files(`table`=>'validation.dempts', `location`=>'cosn://channingdata-1305424723/example2/');
CALL `DataLakeCatalog`.`system`.remove_orphan_files('validation.dempts', TIMESTAMP '2022-07-10 17:25:19.000');

remove_orphan_files

参照されなくなったメタデータファイルを削除します。
CALL `Catalog`.`system`.remove_orphan_files(table_name, [older_than], [location], [dry_run], [max_concurrent_deletes]);
例:
CALL `DataLakeCatalog`.`system`.remove_orphan_files(`table`=>'validation.dempts', dry_run=>TRUE);
CALL `DataLakeCatalog`.`system`.remove_orphan_files(`table`=>'validation.dempts', `location`=>'cosn://channingdata-1305424723/example2/');
CALL `DataLakeCatalog`.`system`.remove_orphan_files('validation.dempts', TIMESTAMP '2022-07-10 17:25:19.000');

rewrite_data_files

データファイルのマージと書き換え、つまり小さなデータファイルのマージです。
CALL `Catalog`.`system`.rewrite_data_files(table_name, [strategy], [sort_order], [options], [where]);
例:
CALL `DataLakeCatalog`.`system`.rewrite_data_files('validation.dempts');
CALL `DataLakeCatalog`.`system`.rewrite_data_files(`table`=>'validation.dempts', `strategy`=>'sort', `sort_order`=>'id DESC NULLS LAST,data ASC NULLS FIRST');
CALL `DataLakeCatalog`.`system`.rewrite_data_files(`table`=>'validation.dempts', `options`=>map('min-input-files','2'));
CALL `DataLakeCatalog`.`system`.rewrite_data_files(`table`=>'validation.dempts', `where`=>'id = 3 and data = "foo"');

rewrite_manifests

マニフェストファイルのマージと書き換え。
CALL `Catalog`.`system`.rewrite_manifests(table_name, [using_caching]);
例:
CALL `DataLakeCatalog`.`system`.rewrite_manifests('validation.dempts');
CALL `DataLakeCatalog`.`system`.rewrite_manifests('validation.dempts', FALSE);

ancestors_of

スナップショットの血縁情報を取得します。
CALL `Catalog`.`system`.ancestors_of(table_name, [snapshot_id]);
例:
CALL `DataLakeCatalog`.`system`.ancestors_of('validation.dempts');
CALL `DataLakeCatalog`.`system`.ancestors_of('validation.dempts', 1);

データテーブル移行管理

注意
元テーブルはHiveテーブルまたはSparkテーブルでなければなりません。

snapshot

元のテーブルに基づいて軽量の一時テーブルを作成し、一時テーブルは直接元のテーブルのスナップショットを再利用します。
CALL `Catalog`.`system`.snapshot(source_table, table, [location], [properties]);
例:
CALL `DataLakeCatalog`.`system`.snapshot('validation.table_01', 'validation.snap');
CALL `DataLakeCatalog`.`system`.snapshot('validation.table_01', 'validation.snap2', 'cosn://channingdata-1305424723/example3/');

migrate

テーブル属性を更新して置き換えます。
CALL `Catalog`.`system`.migrate(table, [properties]);
例:
CALL `DataLakeCatalog`.`system`.migrate('validation.table_01');
CALL `DataLakeCatalog`.`system`.migrate('validation.table_01', map('data', 'name'));

add_files

hiveから直接データファイルをロードし、データファイルを指定したパーティションに指定できます。
CALL `Catalog`.`system`.add_files(table, source_table, [partition_filter]);
例:
CALL `DataLakeCatalog`.`system`.add_files(`table`=>'validation.table_02', `source_table`=>'validation.table_01');
CALL `DataLakeCatalog`.`system`.add_files(`table`=>'validation.table_02', `source_table`=>'validation.table_01', `partition_filter`=>map('part_col', 'A'));


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック