カテゴリ:

DDLデータのロード/アンロード

ALTER PIPE

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

  • パイプの一時停止。

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

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

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

CREATE PIPE , DESCRIBE PIPE , DROP PIPE , SHOW PIPES

構文

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

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

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

条件:

objectProperties ::=
  PIPE_EXECUTION_PAUSED = TRUE | FALSE

パラメーター

名前

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

SET ...

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

PIPE_EXECUTION_PAUSED = TRUE | FALSE

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

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

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

    注釈

    パイプが一時停止された後にパイプの所有権が別のロールに譲渡された場合は、 SYSTEM$PIPE_FORCE_RESUME を使用して、パイプの再開を 強制 する必要があります。これにより新しい所有者は、 SYSTEM$PIPE_STATUS を使用してパイプステータスを評価し、ロードを待機しているファイルの数を判断できます。

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

COMMENT = '文字列'

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

UNSET ...

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

  • PIPE_EXECUTION_PAUSED

  • COMMENT

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

REFRESH

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

注釈

  • ALTER PIPE ... REFRESH ステートメントは、過去7日以内にステージングされたデータファイルのみをロードします。

  • このパラメーターは、パイプが暫定的に再作成されない限り、同じパイプを使用して既にロード されていない ファイルのみをキューに入れます。

重要

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

PREFIX = 'パス'

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

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

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

MODIFIED_AFTER = '開始時刻'

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

デフォルト値は7日です。

使用上の注意

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

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

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

alter pipe mypipe SET PIPE_EXECUTION_PAUSED = true;

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

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

パイプの更新

例のセットアップ:

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

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

ALTER PIPE mypipe REFRESH;

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

ALTER PIPE mypipe REFRESH PREFIX='d1/';

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

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