カテゴリ:

システム関数 (システム情報)

SYSTEM$GET_ICEBERG_TABLE_INFORMATION

Icebergテーブル のルートメタデータファイルの場所と最新のスナップショットのステータスを返します。

SYSTEM$GET_ICEBERG_TABLE_INFORMATION 関数は、テーブルの種類によって動作が異なります。

  • カタログとしてSnowflakeを使用しているIcebergテーブルの場合、この関数を呼び出すと、Snowflakeが最後にテーブルのメタデータを生成した後に発生したデータ操作言語(DML)操作やその他のテーブル更新のメタデータが生成されます。

    更新がない場合、この関数は最新のメタデータファイルの場所を返しますが、新しいメタデータは生成しません。

  • Snowflakeで管理されていないIcebergテーブルの場合、この関数は最新の更新されたスナップショットに関する情報を返します。

構文

SYSTEM$GET_ICEBERG_TABLE_INFORMATION('<iceberg_table_name>')
Copy

引数

'iceberg_table_name'

情報を取得したいIcebergテーブルの名前。テーブル名は文字列であるため、一重引用符で囲む必要があります。

  • '<db>.<schema>.<iceberg_table_name>' など、Icebergテーブルが完全修飾されている場合、データベースとスキーマも含め、名前全体を一重引用符で囲む必要があります。

  • Icebergテーブル名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります。例えば、 '"<case_sensitive_iceberg_table_name>"' です。

戻り値

この関数は、次の名前/値のペアを含む JSON オブジェクトを返します。

{"metadataLocation":"<値>","status":"<値>"}

条件:

metadataLocation

この関数によって更新または取得されたルートメタデータファイルの場所。

status

操作のステータス。このフィールドは成功または失敗のメッセージを返します。

使用上の注意

この関数を呼び出すには、Icebergテーブルに対して OWNERSHIP 権限を持つロールが必要です。

スキーマ db1.schema1 のIcebergテーブル it1 のスナップショットを生成します。

SELECT SYSTEM$GET_ICEBERG_TABLE_INFORMATION('db1.schema1.it1');
Copy

出力:

+-----------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_ICEBERG_TABLE_INFORMATION('DB1.SCHEMA1.IT1')                                                   |
|-----------------------------------------------------------------------------------------------------------|
| {"metadataLocation":"s3://mybucket/metadata/v1.metadata.json","status":"success"}                         |
+-----------------------------------------------------------------------------------------------------------+