ALTER PIPE

既存のパイプオブジェクトに対するプロパティの制限されたセットを変更します。次の操作もサポートします。

  • パイプの一時停止。

  • パイプの更新(つまり、ターゲットテーブルにロードするために、指定されたステージングデータファイルをSnowpipeのインジェストキューにコピー)。

  • パイプのコメントの追加/上書き/削除。

  • パイプのタグの設定/設定解除。

こちらもご参照ください。

CREATE PIPEDROP PIPESHOW PIPESDESCRIBE PIPE

構文

ALTER PIPE [ IF EXISTS ] <name> SET { [ objectProperties ]
                                      [ COMMENT = '<string_literal>' ] }

ALTER PIPE <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER PIPE <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER PIPE [ IF EXISTS ] <name> UNSET { <property_name> | COMMENT } [ , ... ]

ALTER PIPE [ IF EXISTS ] <name> REFRESH { [ PREFIX = '<path>' ] [ MODIFIED_AFTER = <start_time> ] }
Copy

条件:

objectProperties ::=
  PIPE_EXECUTION_PAUSED = TRUE | FALSE
Copy

パラメーター

name

変更するパイプの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

SET ...

パイプに設定する1つ(または複数)のプロパティを指定します(空白、カンマ、または改行で区切られます):

ERROR_INTEGRATION = 'integration_name'

エラー通知をクラウドメッセージングサービスに送信するようにSnowpipeを設定する場合にのみ必要です。 メッセージングサービスとの通信に使用される通知統合の名前を指定します。詳細については、 Snowpipeのエラー通知 をご参照ください。

PIPE_EXECUTION_PAUSED = TRUE | FALSE

一般的にパイプの所有権を譲渡する準備として、実行中のパイプを一時停止するかどうかを指定します。

  • TRUE は、パイプを一時停止します。 SYSTEM$PIPE_STATUS によって報告された executionState は、 PAUSED です。パイプの所有者は、一時停止したパイプに引き続きファイルを送信できます。ただし、パイプが再開されるまでファイルは処理されません。

  • FALSE により、パイプを再開します。 SYSTEM$PIPE_STATUS によって報告された executionState は、 RUNNING です。

    注釈

    次のシナリオのいずれかにおいては、 SYSTEM$PIPE_FORCE_RESUME 関数を呼び出してパイプを 強制的に 再開する必要があります。

    • パイプの所有権を別のロールに譲渡する。この要件により、新しい所有者は SYSTEM$PIPE_STATUS 関数を呼び出してパイプステータスを評価し、ロードを待機しているファイルの数を判断できます。

    • データロードをトリガーするためにクラウドメッセージングを利用するパイプオブジェクト(つまり、パイプ定義が AUTO_INGEST = TRUE のもの)が古くなることを許可している。パイプで受信されたイベントメッセージの保持期間制限(デフォルトでは14日)より長く一時停止された場合、パイプは古くなっていると見なされます。

デフォルト: FALSE (デフォルトではパイプが実行されています)

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

タグ の名前とタグ文字列の値を指定します。

タグ値は常に文字列であり、タグ値の最大文字数は256です。

ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。

COMMENT = 'string'

パイプのコメントを追加するか、既存のコメントを上書きします。

UNSET ...

パイプの設定を解除する1つ(または複数)のプロパティを指定します。これにより、デフォルトにリセットされます。

  • PIPE_EXECUTION_PAUSED

  • TAG tag_name [ , tag_name ... ]

  • COMMENT

単一の ALTER ステートメントで複数のプロパティをリセットできます。ただし、各プロパティはカンマで区切る 必要があります。プロパティをリセットするときは、名前のみを指定します。プロパティの値を指定すると、エラーが返されます。

REFRESH

ステージングされたデータファイルのセットをSnowpipeの取り込みキューにコピーして、ターゲットテーブルにロードします。この句はオプションのパスを受け入れ、指定された開始時間に基づいてロードするファイルのリストをさらにフィルタリングできます。

注釈

  • この SQL コマンドでは、過去7日以内にステージングされたデータファイルのみをロードできます。

  • この SQL コマンドは、パイプとターゲットテーブルの両方のロード履歴をチェックします。その結果、コマンドは、次のいずれかを使用してロードされて いない ファイルのみをキューに入れます。

    • ファイルがロードされた後にパイプ所有者がパイプを再作成しなかった場合は、同じパイプ。

    • COPY INTO <テーブル> ステートメント。

重要

REFRESH 機能は、Snowpipeがファイルのサブセットのロードに失敗した場合の特定の問題を解決するための短期使用を目的としており、通常の使用を目的とするものではありません。

PREFIX = 'path'

パイプ定義のステージ参照に追加されるパス(または プレフィックス)。パスは、ロードするファイルのセットを制限します。指定されたパスで始まるファイルのみがデータロードに含まれます。

たとえば、パイプ定義が @mystage/path1/ を参照するとします。 path の値が d1/ の場合、 ALTER PIPE ステートメントは、 /path1/d1/ パスをともなう @mystage ステージにあるファイルへのロードを制限します。詳細については、例をご参照ください。

パスは一重引用符で囲む必要があることに注意してください。

MODIFIED_AFTER = 'start_time'

LAST_MODIFIED 日付(つまり、ファイルがステージングされた日付)に基づいてSnowpipe取り込みキューにコピーする、最も古いデータファイルのタイムスタンプ(ISO-8601形式)。

デフォルトの最大許容値は7日間です。

使用上の注意

  • パイプのプロパティを設定または設定解除できるのは、パイプの所有者(つまり、パイプの OWNERSHIP 権限を持つロール)のみです。

    次の最小権限を持つ非所有者のロールは、パイプを更新できます(ALTER PIPE ... REFRESH ...を使用)。

    権限

    オブジェクト

    メモ

    OPERATE

    パイプ

    USAGE

    パイプ定義のステージ

    外部ステージのみ

    READ

    パイプ定義のステージ

    内部ステージのみ

    SELECT, INSERT

    パイプ定義にあるテーブル

    パイプに対する OPERATE 権限を持つ非所有者のロールは、パイプを一時停止または再開できます(ALTER PIPE ... SET PIPE_EXECUTION_PAUSED = TRUE | FALSE を使用)。

    スキーマオブジェクトでの SQL 操作には、オブジェクトを含むデータベースとスキーマに対する USAGE 権限も必要です。

  • 現在、ALTER PIPE ステートメントを使用して、次のパイププロパティを変更することはできません。

    代わりに、 CREATE OR REPLACE PIPE ステートメントを使用して、パイプを再作成してください。

  • メタデータについて。

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

mypipe パイプを一時停止します。

alter pipe mypipe SET PIPE_EXECUTION_PAUSED = true;
Copy

パイプ mypipe のコメントを追加または変更します。

alter pipe mypipe SET COMMENT = "Pipe for North American sales data";
Copy

パイプのリフレッシュ

例のセットアップ:

CREATE PIPE mypipe AS COPY INTO mytable FROM @mystage/path1/;
Copy

mypipe パイプで定義されているように、データファイルを @mystage/path1/ ステージおよびパスから mytable テーブルにロードします。

ALTER PIPE mypipe REFRESH;
Copy

前の例と同様、パスに d1 を追加して、ロードするファイルのリストをさらに制限します。現在の例では、ステートメントは @mystage/path1/d1/ ステージおよびパスからファイルをロードします。

ALTER PIPE mypipe REFRESH PREFIX='d1/';
Copy

前の例と同様、指定されたタイムスタンプの後にステージングされたファイルのみをロードします。

ALTER PIPE mypipe REFRESH PREFIX='d1/' MODIFIED_AFTER='2018-07-30T13:56:46-07:00';
Copy