Kategorien:

Systemfunktionen (Systemsteuerung)

SYSTEM$PIPE_FORCE_RESUME

Erzwingt die Fortsetzung einer mit ALTER PIPE angehaltenen Pipe. Dies ist in einem der folgenden Szenarien erforderlich:

  • Der Eigentümer der Pipe überträgt die Eigentümerschaft an eine andere Rolle, während die Pipe angehalten ist.

  • Die angehaltene Pipe darf veralten.

    Eine Pipe gilt als veraltet, wenn sie länger als die begrenzte Aufbewahrungsfrist für Ereignismeldungen, die für die Pipe empfangen werden, angehalten ist (standardmäßig 14 Tage). Wenn eine Benachrichtigung das Ende der Aufbewahrungsfrist erreicht, plant Snowflake ein, dass sie aus den internen Metadaten gelöscht wird. Wenn die Pipe später fortgesetzt wird, kann Snowpipe Benachrichtigungen, die älter als 14 Tage sind, nur nach dem Best-Effort-Prinzip verarbeiten. Snowflake kann nicht garantieren, dass diese älteren Benachrichtigungen verarbeitet werden.

    Dieses Szenario betrifft nur Pipeobjekte, die Cloudmessaging nutzen, um das Laden von Daten auszulösen (d. h. mit AUTO_INGEST = TRUE in der Pipedefinition).

Durch Ausführen dieser Funktion wird die angegebene Pipe fortgesetzt.

Um zu ermitteln, wie viele Dateien sich in der Warteschlange befinden, fragen Sie SYSTEM$PIPE_STATUS ab.

Weitere Informationen dazu finden Sie unter Snowpipe.

Syntax

SYSTEM$PIPE_FORCE_RESUME( '<pipe_name>' , '[ STALENESS_CHECK_OVERRIDE ] [ , OWNERSHIP_TRANSFER_CHECK_OVERRIDE ]')
Copy

Argumente

pipe_name

Pipe, deren Ausführung fortgesetzt werden soll.

STALENESS_CHECK_OVERRIDE

Gibt an, dass eine veraltete Pipe fortgesetzt werden soll. Eine Pipe gilt als veraltet, wenn sie länger als die begrenzte Aufbewahrungsfrist für Ereignismeldungen, die für die Pipe empfangen werden, angehalten ist (standardmäßig 14 Tage).

Bemerkung

Dieses Argument betrifft nur Pipeobjekte, die Cloudmessaging nutzen, um das Laden von Daten auszulösen.

OWNERSHIP_TRANSFER_CHECK_OVERRIDE

Gibt an, dass eine Pipe fortgesetzt werden soll, nachdem die Eigentümerschaft der Pipe auf eine andere Rolle übertragen wurde.

Bemerkung

Um die Abwärtskompatibilität sicherzustellen, ist die Übergabe des Pipe-Namens in pipe_name als einzige Eingabe syntaktisch äquivalent zur Übergabe von sowohl pipe_name als auch OWNERSHIP_TRANSFER_CHECK_OVERRIDE.

Wenn sowohl STALENESS_CHECK_OVERRIDE als auch OWNERSHIP_TRANSFER_CHECK_OVERRIDE erforderlich sind, können diese Argumente in beliebiger Reihenfolge eingegeben werden.

Nutzungshinweise

  • Nur der Pipe-Eigentümer (d. h. die Rolle mit der OWNERSHIP-Berechtigung für die Pipe) oder eine Rolle mit OPERATE-Berechtigung für die Pipe kann diese SQL-Funktion aufrufen:

    SQL-Operationen auf Schemaobjekten erfordern ebenfalls die USAGE-Berechtigung für die Datenbank und das Schema, die das Objekt enthalten.

  • pipe_name ist eine Zeichenfolge und muss daher in einfache Anführungszeichen gesetzt werden:

    • Beachten Sie, dass der gesamte Name in einfache Anführungszeichen eingeschlossen werden muss, einschließlich Datenbank und Schema (wenn der Name vollqualifiziert ist), d. h. '<Datenbank>.<Schema>.<Pipe-Name>'.

    • Wenn der Pipename zwischen Groß- und Kleinschreibung unterscheidet bzw. Sonderzeichen oder Leerzeichen enthält, sind doppelte Anführungszeichen erforderlich, damit sich Groß- und Kleinschreibung/Zeichen korrekt verarbeiten lassen. Die doppelten Anführungszeichen müssen in einfache Anführungszeichen eingeschlossen werden, d. h. '"<Pipe-Name>"'.

Beispiele

Erzwingen der Fortsetzung einer Pipe mit einem Namen, bei dem nicht zwischen Groß-/Kleinschreibung unterschieden wird:

SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema.mypipe');
Copy

Erzwingen der Fortsetzung einer Pipe mit einem Namen, bei dem zwischen Groß-/Kleinschreibung unterschieden wird:

SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema."myPipe"');
Copy

Erzwingen der Fortsetzung einer veralteten Pipe, nachdem ihre Eigentümerschaft auf eine andere Rolle übertragen wurde:

SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema.stalepipe','staleness_check_override, ownership_transfer_check_override');
Copy