- カテゴリ:
システム関数 (システム情報)
SYSTEM$PIPE_STATUS¶
パイプの現在のステータスの JSON 表現を取得します。
詳細については、 Snowpipe をご参照ください。
構文¶
SYSTEM$PIPE_STATUS( '<pipe_name>' )
引数¶
pipe_name
現在のステータスを取得するパイプです。
使用上の注意¶
パイプの所有者(つまり、パイプの OWNERSHIP 権限を持つロール)、またはパイプの MONITOR 権限を持つロールの結果のみを返します。
pipe_name
は文字列であるため、一重引用符で囲む必要があります。データベースとスキーマ(名前が完全修飾されている場合)を含む、名前全体を一重引用符で囲む必要があります。つまり、
'<データベース>.<スキーマ>.<パイプ名>'
。パイプ名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります。つまり、
'"<パイプ名>"'
。
出力¶
この関数は、次の名前/値のペアを含む JSON オブジェクトを返します(現在のパイプステータスに該当する場合)。
{"executionState":"<値>","oldestPendingFilePath":"<値>","oldestFileTimestamp":<値>,"pendingFileCount":<値>,"lastPipeErrorTimestamp":"<値>","lastPipeFaultTimestamp":"<値>","lastIngestedTimestamp":"<値>","lastIngestedFilePath":"<値>","notificationChannelName":"<値>","numOutstandingMessagesOnChannel":<値>,"lastReceivedMessageTimestamp":"<値>","lastForwardedMessageTimestamp":"<値>","error":<値>,"fault":<値>,"lastPulledFromChannelTimestamp":"<値>","lastForwardedFilePath":"<値>"}
条件:
executionState
パイプの現在の実行状態。値は次のいずれかになります。
FAILING_OVER
(パイプは、プライマリアカウントからセカンダリアカウントへのフェールオーバー中です)
PAUSED
READ_ONLY
(パイプまたはターゲットテーブルは、セカンダリの読み取り専用データベースにあります。)
RUNNING
(すべてが正常です。Snowflakeはこのパイプのファイルをアクティブに処理する場合としない場合があります)
STOPPED_BY_SNOWFLAKE_ADMIN
(パイプは Snowflakeサポート によって停止されます。パイプは新しいファイルのインジェスチョンを受け付けません。)
STOPPED_CLONED
(パイプはデータベースまたはスキーマのクローンに含まれています)
STOPPED_FEATURE_DISABLED
STOPPED_STAGE_ALTERED
(基になるステージの場所が変更されたため、パイプは停止しています。)
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
STALLED_STAGE_PERMISSION_ERROR
(外部ステージ権限エラーが検出されました。)oldestPendingFilePath
現在処理のためにキューに入れられている最も古いデータファイルへのパス。ファイルがキューに追加されたときのタイムスタンプは、既存の oldestFileTimestamp プロパティに返されます。
oldestFileTimestamp
現在キューに入れられているデータファイルの中で最も早いタイムスタンプ(該当する場合)。ファイルがキューに追加されるときにタイムスタンプが設定されます。
pendingFileCount
パイプによるロードのためにキューに入れられたファイルの数。
この数は、パイプが一時停止している場合でも増加する可能性があります。パイプの
AUTO_INGEST
設定に応じて、キューに入れられるファイルの数は次のように増える可能性があります。
AUTO_INGEST = TRUE
クラウドストレージバケットまたはコンテナーに追加されたファイルは、パイプの新しいファイルイベント通知をトリガーします。
一時停止したパイプが 古くなった 場合、
pendingFileCount
カウントは制限された保持期間より古いイベント通知を無視することに注意してください。AUTO_INGEST = FALSE
insertFiles
REST エンドポイントへの呼び出しは、パイプによるロードのためにキューに入れられるファイルをトリガーします。lastPipeErrorTimestamp
実行のためにパイプ定義の COPY INTO <テーブル> ステートメントをコンパイルするときのタイムスタンプは、最後にエラーを生成しました。
lastPipeFaultTimestamp
内部のSnowflakeプロセスエラーが最後に検出されたときのタイムスタンプ。
lastIngestedTimestamp
最新のファイルが、Snowpipeによって宛先テーブルに正常にロードされたときのタイムスタンプ。
lastIngestedFilePath
lastIngestedTimestamp にある指定のタイムスタンプでロードされたファイルのパス。
notificationChannelName
パイプに関連付けられたAmazon SQS キューまたはMicrosoft Azureストレージキュー。
numOutstandingMessagesOnChannel
キューに入れられたがまだ受信されていないキュー内のメッセージの数。
lastReceivedMessageTimestamp
キューから受信した最後のメッセージのタイムスタンプ。このメッセージが特定のパイプに適用されない場合があります(例: メッセージに関連付けられたパス/プレフィックスが、パイプ定義のパス/プレフィックスと一致しない場合)。また、作成されたデータオブジェクトによってトリガーされたメッセージのみが、自動インジェストパイプによって消費されます。
lastForwardedMessageTimestamp
パイプに転送された一致するパス/プレフィックスを持つ最後の「オブジェクトの作成」イベントメッセージのタイムスタンプ。
channelErrorMessage
関連するGoogle Cloud Pub/Subキュー、またはMicrosoft Azure Event Gridストレージキューから、メッセージを読み込もうとしたときに生成されるエラーメッセージ。
lastErrorRecordTimestamp
最後のチャンネルエラーメッセージのタイムスタンプ(つまり、
channelErrorMessage
値で報告されたエラーメッセージ)。error
パイプが実行のために最後にコンパイルされたときに生成されたエラーメッセージ(該当する場合)。多くの場合、権限の問題またはオブジェクトの削除により、必要なオブジェクト(テーブル、ステージ、ファイル形式)へのアクセスに問題が生じたことが原因です。
fault
最新の内部Snowflakeプロセスエラー(該当する場合)。主にSnowflakeがデバッグ目的で使用します。
lastPulledFromChannelTimestamp
SnowpipeがAmazon Simple Queue Service(SQS)キュー、Google Pub/Subキュー、またはMicrosoft Azureストレージキューからパイプの「オブジェクトの作成」イベント通知を最後にプルしたときのタイムスタンプ。
この値は、自動インジェストSnowpipeロードにのみ適用されます。
lastForwardedFilePath
パイプに転送された最後の「オブジェクトの作成」イベントメッセージで識別されたデータファイルのパス。
例¶
大文字と小文字を区別しない名前でパイプのステータスを取得します。
SELECT SYSTEM$PIPE_STATUS('mydb.myschema.mypipe'); +---------------------------------------------------+ | SYSTEM$PIPE_STATUS('MYDB.MYSCHEMA.MYPIPE') | |---------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------+
大文字と小文字を区別する名前でパイプのステータスを取得します。
SELECT SYSTEM$PIPE_STATUS('mydb.myschema."myPipe"'); +---------------------------------------------------+ | SYSTEM$PIPE_STATUS('MYDB.MYSCHEMA."MYPIPE"') | |---------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------+