- カテゴリ:
システム関数 (システム情報)
SYSTEM$EXTERNAL_TABLE_PIPE_STATUS¶
外部テーブルに内部的に関連付けられている内部(非表示)パイプオブジェクトの、現在における更新ステータスの JSON 表現を取得します。
外部テーブルのメタデータを自動的に更新することは、モニター対象のクラウドストレージで変更が発生したときにイベント通知を受信するSnowpipeで、内部的に依存しています。詳細については、 外部テーブルの概要 をご参照ください。
構文¶
SYSTEM$EXTERNAL_TABLE_PIPE_STATUS( '<external_table_name>' )
引数¶
external_table_name
現在の自動更新ステータスを取得する外部テーブル。
使用上の注意¶
この関数は、外部テーブルの所有者(つまり、外部テーブルに対して OWNERSHIP 権限を持つロール)の結果のみを返します。
external_table_name
は文字列であるため、一重引用符で囲む必要があります。データベースとスキーマ(名前が完全修飾されている場合)を含む、名前全体を一重引用符で囲む必要があります。つまり、
'<データベース>.<スキーマ>.<外部テーブル名>'
。外部テーブル名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります。つまり、
'"<パイプ名>"'
。
出力¶
この関数は、次の名前/値のペアを含む JSON オブジェクトを返します(現在のパイプステータスに該当する場合)。
{"executionState":"<値>","oldestPendingFilePath":"<値>","oldestFileTimestamp":<値>,"pendingFileCount":<値>,"lastPipeFaultTimestamp":"<値>","notificationChannelName":"<値>","numOutstandingMessagesOnChannel":<値>,"lastReceivedMessageTimestamp":"<値>","lastForwardedMessageTimestamp":"<値>","error":<値>,"fault":<値>,"lastPulledFromChannelTimestamp":"<値>","lastForwardedFilePath":"<値>"}
条件:
executionState
パイプの現在の実行状態。値は次のいずれかになります。
RUNNING
(つまり、すべてが正常です。Snowflakeはこのパイプのイベントメッセージをアクティブに処理する場合としない場合があります)
STOPPED_CLONED
(つまり、パイプはデータベースまたはスキーマのクローンに含まれています)
STOPPED_FEATURE_DISABLED
STOPPED_STAGE_DROPPED
STOPPED_FILE_FORMAT_DROPPED
STOPPED_NOTIFICATION_INTEGRATION_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
oldestPendingFilePath
メタデータの更新操作のために、現在キューに入れられている最も古いデータファイルへのパス。ファイルがキューに追加されたときのタイムスタンプは、
oldestFileTimestamp
プロパティに返されます。oldestFileTimestamp
メタデータの更新操作のために、現在キューに入れられているデータファイルの中で最も早いタイムスタンプ(該当する場合)。ここでは、ファイルがキューに追加されるときにタイムスタンプが設定されます。
pendingFileCount
現在パイプによって処理されているファイルの数。この値は、外部テーブルのメタデータが更新されるにつれて減少します。この値が
0
の場合、このパイプのメタデータの更新はキューに入れられません。lastPipeFaultTimestamp
内部のSnowflakeプロセスエラーが最後に検出されたときのタイムスタンプ。
notificationChannelName
パイプに関連付けられたAmazon SQS キューまたはMicrosoft Azureストレージキュー。
numOutstandingMessagesOnChannel
キューに入れられたがまだ受信されていないキュー内のメッセージの数。
lastReceivedMessageTimestamp
キューから受信した最後のメッセージのタイムスタンプ。
lastForwardedMessageTimestamp
パイプに転送された一致するパス/プレフィックスを持つ、最後の該当するイベントメッセージのタイムスタンプ。
channelErrorMessage
関連するクラウドメッセージングサービスキューからメッセージを読み込もうとしたときに生成されるエラーメッセージ。
lastErrorRecordTimestamp
最後のチャンネルエラーメッセージのタイムスタンプ(つまり、
channelErrorMessage
値で報告されたエラーメッセージ)。error
パイプが実行のために最後にコンパイルされたときに生成されたエラーメッセージ(該当する場合)。多くの場合、権限の問題またはオブジェクトの削除により、必要なオブジェクト(テーブル、ステージ、ファイル形式)へのアクセスに問題が生じたことが原因です。
fault
最新の内部Snowflakeプロセスエラー(該当する場合)。主にSnowflakeがデバッグ目的で使用します。
lastPulledFromChannelTimestamp
Snowpipeがクラウドメッセージングサービスキューからパイプのイベント通知を最後にプルしたときのタイムスタンプ。
lastForwardedFilePath
パイプに転送された最後の該当するイベントメッセージで識別されたデータファイルのパス。
例¶
大文字と小文字を区別しない名前で外部テーブルの自動更新ステータスを取得します。
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} | +---------------------------------------------------------------+