Kategorien:

DDL zum Laden/Entladen von Daten

ALTER PIPE

Ändert einen begrenzten Satz von Eigenschaften für ein vorhandenes Pipeobjekt. Unterstützt auch die folgenden Operationen:

  • Pausieren der Pipe.

  • Aktualisieren einer Pipe, d. h. kopieren Sie die angegebenen Staging-Datendateien in die Erfassungswarteschlange von Snowpipe zum Laden in die Zieltabelle.

  • Hinzufügen/Überschreiben/Entfernen eines Kommentars zu einer Pipe.

Siehe auch:

CREATE PIPE, DESCRIBE PIPE, DROP PIPE, SHOW PIPES

Syntax

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> ] }

Wobei:

objectProperties ::=
  PIPE_EXECUTION_PAUSED = TRUE | FALSE

Parameter

Name

Gibt den Bezeichner für die zu ändernde Pipe an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

SET ...

Gibt eine (oder mehrere) Eigenschaften an, die für die Pipe festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder neue Zeilen):

PIPE_EXECUTION_PAUSED = TRUE | FALSE

Gibt an, ob eine laufende Pipe angehalten werden soll, typischerweise in Vorbereitung auf die Übertragung der Eigentümerschaft der Pipe:

  • TRUE hält die Pipe an. Der von SYSTEM$PIPE_STATUS berichtete executionState ist PAUSED. Beachten Sie, dass der Pipe-Eigentümer weiterhin Dateien an eine angehaltene Pipe senden kann, diese jedoch erst nach Fortsetzen der Pipe verarbeitet werden.

  • FALSE setzt die Pipe fort. Der von SYSTEM$PIPE_STATUS berichtete executionState ist RUNNING.

    Bemerkung

    Wenn die Eigentümerschaft der Pipe nach dem Anhalten der Pipe auf eine andere Rolle übertragen wird, muss ein Fortsetzen der Pipe mithilfe von SYSTEM$PIPE_FORCE_RESUME erzwungen werden. Dadurch kann der neue Eigentümer den Pipestatus bewerten und feststellen, wie viele Dateien darauf warten, mit SYSTEM$PIPE_STATUS geladen zu werden.

Standard: FALSE (die Pipe wird standardmäßig ausgeführt)

COMMENT = 'Zeichenfolge'

Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für die Pipe.

UNSET ...

Gibt eine (oder mehrere) Eigenschaften an, die für die Pipe deaktiviert werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden:

  • PIPE_EXECUTION_PAUSED

  • COMMENT

Sie können mehrere Eigenschaften mit einer einzigen ALTER-Anweisung zurücksetzen; jede Eigenschaft muss jedoch durch ein Komma getrennt werden. Wenn Sie eine Eigenschaft zurücksetzen, geben Sie nur den Namen an. Die Angabe eines Wertes für die Eigenschaft gibt einen Fehler zurück.

REFRESH

Kopiert einen Satz von Staging-Datendateien in die Erfassungswarteschlange von Snowpipe, um sie in die Zieltabelle zu laden. Diese Klausel akzeptiert einen optionalen Pfad und kann die Liste der zu ladenden Dateien basierend auf einer bestimmten Startzeit weiter filtern.

Bemerkung

  • Eine ALTER PIPE … REFRESH-Anweisung kann nur Datendateien laden, die innerhalb der letzten 7 Tage bereitgestellt wurden.

  • Mit diesem Parameter werden nur die Dateien in die Warteschlange gestellt, die nicht bereits mit derselben Pipe geladen wurden, sofern die Pipe in der Zwischenzeit nicht neu erstellt wurde.

Wichtig

Die REFRESH-Funktionalität ist für den kurzfristigen Gebrauch gedacht, um bestimmte Probleme zu beheben, wenn Snowpipe eine Teilmenge von Dateien nicht lädt. Sie ist nicht für den regelmäßigen Gebrauch bestimmt.

PREFIX = 'Pfad'

Pfad (oder Präfix), der an die Stagingbereichsreferenz in der Pipedefinition angehängt wird. Der Pfad begrenzt die Anzahl der zu ladenden Dateien. Nur Dateien, die mit dem angegebenen Pfad beginnen, werden in das Laden von Daten einbezogen.

Angenommen, die Pipedefinition verweist auf @mystage/path1/. Wenn der Pfad-Wert d1/ ist, begrenzt die ALTER PIPE-Anweisung das Laden von Dateien in den @mystage-Stagingbereich mit dem Pfad /path1/d1/. Weitere Informationen dazu finden Sie in den Beispielen.

Beachten Sie, dass der Pfad in einfache Anführungszeichen gesetzt werden muss.

MODIFIED_AFTER = 'Startzeit'

Zeitstempel (im Format ISO-8601) der ältesten Datendateien, die basierend auf dem Datum LAST_MODIFIED (d. h. Staging-Datum der Datei) in die Erfassungswarteschlange von Snowpipe kopiert werden sollen.

Der Standardwert ist 7 Tage.

Nutzungshinweise

Derzeit können die folgenden Eigenschaften von Pipes nicht mit einer ALTER PIPE-Anweisung geändert werden:

Erstellen Sie die Pipe stattdessen mit einer CREATE OR REPLACE PIPE-Anweisung neu.

Beispiele

Anhalten der Pipe mypipe:

alter pipe mypipe SET PIPE_EXECUTION_PAUSED = true;

Hinzufügen oder Ändern des Kommentars für die Pipe mypipe:

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

Aktualisieren einer Pipe

Nehmen Sie die folgenden Beispiele:

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

Laden Sie Datendateien aus dem Stagingbereich und Pfad @mystage/path1/ in die Tabelle mytable, wie in der mypipe-Pipedefinition definiert:

ALTER PIPE mypipe REFRESH;

Wie im vorherigen Beispiel, aber fügen Sie d1 an den Pfad an, um die Liste der zu ladenden Dateien weiter einzuschränken. Im aktuellen Beispiel werden mit der Anweisung Dateien aus dem Stagingbereich und Pfad @mystage/path1/d1/ geladen:

ALTER PIPE mypipe REFRESH PREFIX='d1/';

Wie im vorherigen Beispiel, aber es werden nur Dateien geladen, die nach einem bestimmten Zeitstempel bereitgestellt wurden:

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