カテゴリ:

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

SYSTEM$AUTO_REFRESH_STATUS

外部で管理されている Iceberg テーブル の自動リフレッシュステータスを返します。

注釈

アクセス権限を持っている、該当するすべての外部管理 Apache Iceberg™ テーブルについてこの更新ステータスを返すには、 SHOW ICEBERG TABLES コマンドを実行し、出力の auto_refresh_status 列を参照します。

構文

SYSTEM$AUTO_REFRESH_STATUS('<table_name>')
Copy

引数

'table_name'

現在の自動化された更新ステータスを取得したいIcebergテーブルの名前。

完全修飾名を使用する場合は、データベースとスキーマを含め、名前全体を一重引用符で囲みます。テーブル名に大文字と小文字が区別される場合、または特殊文字やスペースが含まれる場合は、二重引用符を使用する必要があります。二重引用符は、一重引用符で囲む必要があります。例えば、 '"Table_Name"' です。

戻り値

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

{
  "executionState":"<value>",
  "invalidExecutionStateReason":"<value>",
  "pendingSnapshotCount":"<value>",
  "oldestSnapshotTime":"<value>",
  "currentSnapshotId":"<value>",
  "currentSnapshotSummary":"<value>",
  "lastSnapshotTime":"<value>",
  "lastUpdatedTime":"<value>",
  "currentMetadataFile":"<value>",
  "currentSchemaId":"<value>"
}
Copy

条件:

executionState

Snowflakeがテーブルのメタデータ更新を自動化するために使用するパイプの現在の実行状態。

値:

  • RUNNING: 自動更新は期待通りに実行しています。このステータスは、Snowflakeがパイプのイベントメッセージをアクティブに処理しているかどうかを示すものではありません。

  • STALLED: 自動更新でエラーが発生し、回復しようとしています。

  • STOPPED: 自動更新で回復不可能なエラーが発生し、さらにアクションを取らない限り停止されます。詳細については、 エラーの回復 をご参照ください。

invalidExecutionStateReason

STALLED または STOPPED 実行状態に関連するエラーメッセージ。

pendingSnapshotCount

自動更新のためにキューに入れられたスナップショットの数。

oldestSnapshotTime

キューに入れられたスナップショットの中で最も古いタイムスタンプ。Snowflakeは、スナップショットがキューに追加されたときに、スナップショットのタイムスタンプを設定します。

currentSnapshotId

Snowflakeが追跡している現在のスナップショットの ID。これは、現在のテーブルデータが対応するスナップショットを表しています。

currentSnapshotSummary

metadata.json ファイルからのIcebergスナップショットの概要。メタデータファイルに存在しない場合は NULL。

lastSnapshotTime

Icebergメタデータに応じた、現在のスナップショットの作成タイムスタンプ。このタイムスタンプは、現在のスナップショットが外部カタログで生成されたときに対応します。

lastUpdatedTime

Snowflakeが現在のスナップショットを正常に処理したタイミングを示すタイムスタンプ。この値と lastSnapshotTime の差は、スナップショットが外部カタログに作成されてから、Snowflakeがテーブルのメタデータを正常に更新するまでの待ち時間示します。

待ち時間を減らすには、テーブルに関連するカタログ統合の REFRESH_INTERVAL_SECONDS パラメーターを調整します。

currentMetadataFile

現在のメタデータファイルのフルパス。

currentSchemaId

現在のスキーマの ID。

使用上の注意

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

  • デルタベースのテーブルについては、以下の点に注意してください。

    • この関数とSnowflakeの自動リフレッシュのコンテキストでは、「スナップショット」という用語はデルタコミットを指します。

    • 関数は lastSnapshotTime の値を返しません。

スキーマ db1.schema1 内のテーブル my_iceberg_table の自動更新ステータスを取得します。

SELECT SYSTEM$AUTO_REFRESH_STATUS('db1.schema1.my_iceberg_table');
Copy