- カテゴリ:
システム関数 (システム情報)
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>')
引数¶
'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');
出力:
+-----------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_ICEBERG_TABLE_INFORMATION('DB1.SCHEMA1.IT1') |
|-----------------------------------------------------------------------------------------------------------|
| {"metadataLocation":"s3://mybucket/metadata/v1.metadata.json","status":"success"} |
+-----------------------------------------------------------------------------------------------------------+