カテゴリ:

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

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS

外部テーブルに内部的に関連付けられている内部(非表示)パイプオブジェクトの、現在における更新ステータスの JSON 表現を取得します。

外部テーブルのメタデータを自動的に更新することは、モニター対象のクラウドストレージで変更が発生したときにイベント通知を受信するSnowpipeで、内部的に依存しています。詳細については、 外部テーブルの概要 をご参照ください。

構文

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS( '<external_table_name>' )

引数

外部テーブル名

現在の自動更新ステータスを取得する外部テーブル。

使用上の注意

  • この関数は、外部テーブルの所有者(つまり、外部テーブルに対して OWNERSHIP 権限を持つロール)の結果のみを返します。

  • 外部テーブル名 は文字列であるため、一重引用符で囲む必要があります。

    • データベースとスキーマ(名前が完全修飾されている場合)を含む、名前全体を一重引用符で囲む必要があります。つまり、 '<データベース>.<スキーマ>.<外部テーブル名>'

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

出力

この関数は、次の名前/値のペアを含む JSON オブジェクトを返します(現在のパイプステータスに該当する場合)。

{"executionState":"<値>","oldestFileTimestamp":<値>,"pendingFileCount":<値>,"notificationChannelName":"<値>","numOutstandingMessagesOnChannel":<値値>,"lastReceivedMessageTimestamp":"<値>","lastForwardedMessageTimestamp":"<値>","error":<値>,"fault":<値>}

条件:

executionState

パイプの現在の実行状態は、次のいずれかです。

  • RUNNING (つまり、すべてが正常です。Snowflakeはこのパイプのファイルをアクティブに処理する場合としない場合があります)

  • STOPPED_FEATURE_DISABLED

  • STOPPED_STAGE_DROPPED

  • STOPPED_FILE_FORMAT_DROPPED

  • STOPPED_MISSING_PIPE

  • STOPPED_MISSING_TABLE

  • STALLED_COMPILATION_ERROR

  • STALLED_INITIALIZATION_ERROR

  • STALLED_EXECUTION_ERROR

  • STALLED_INTERNAL_ERROR

  • PAUSED

  • PAUSED_BY_SNOWFLAKE_ADMIN

  • PAUSED_BY_ACCOUNT_ADMIN

oldestFileTimestamp

現在キューに入れられているデータファイルの中で最も早いタイムスタンプ(該当する場合)。ファイルがキューに追加されるときにタイムスタンプが設定されます。

pendingFileCount

現在パイプによって処理されているファイルの数。パイプが一時停止されている場合、パイプが一時停止される 前に キューに入れられたファイルが処理されるため、この値は減少します。この値が 0 の場合、このパイプのキューに入れられているファイルがないか、パイプが事実上一時停止しています。

notificationChannelName

パイプに関連付けられたAmazon SQS キューまたはMicrosoft Azureストレージキュー。

numOutstandingMessagesOnChannel

キューに入れられたがまだ受信されていないキュー内のメッセージの数。

lastReceivedMessageTimestamp

キューから受信した最後のメッセージのタイムスタンプ。

lastForwardedMessageTimestamp

パイプに転送された最後のイベントメッセージのタイムスタンプ。

error

実行のためにパイプが最後にコンパイルされたときに生成されたエラーメッセージ(該当する場合)。

fault

最新の内部Snowflakeプロセスエラー(該当する場合)。主にSnowflakeがデバッグ目的で使用します。

大文字と小文字を区別しない名前で外部テーブルの自動更新ステータスを取得します。

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema.exttable');

+---------------------------------------------------------------+
| SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA.EXTTABLE')   |
|---------------------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0}             |
+---------------------------------------------------------------+

大文字と小文字を区別する名前でパイプのステータスを取得します。

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema."extTable"');

+---------------------------------------------------------------+
| SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA."extTable"') |
|---------------------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0}             |
+---------------------------------------------------------------+