Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$PIPE_STATUS

Ruft eine JSON-Darstellung des aktuellen Status einer Pipe ab.

Weitere Informationen dazu finden Sie unter Kontinuierliches Laden mit Snowpipe.

Syntax

SYSTEM$PIPE_STATUS( '<pipe_name>' )

Argumente

Pipe-Name

Pipe, für die Sie den aktuellen Status abrufen möchten.

Nutzungshinweise

  • 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 richtig verarbeiten lassen. Die doppelten Anführungszeichen müssen in einfache Anführungszeichen eingeschlossen werden, d. h. '"<Pipe-Name>"'.

Ausgabe

Die Funktion gibt ein JSON-Objekt zurück, das die folgenden Name/Wert-Paare enthält (falls auf den aktuellen Pipe-Status zutreffend):

{„executionState“:“<Wert>“,“oldestFileTimestamp“:<Wert>,“pendingFileCount“:<Wert>,“notificationChannelName“:“<Wert>“,“numOutstandingMessagesOnChannel“:<Wert>,“lastReceivedMessageTimestamp“:“<Wert>“,“lastForwardedMessageTimestamp“:“<Wert>“,“error“:<Wert>,“fault“:<Wert>}

Wobei:

executionState

Aktueller Ausführungsstatus der Pipe; kann einer der folgenden sein:

  • RUNNING (d. h. alles ist normal; Snowflake verarbeitet gerade aktiv Dateien für diese Pipe oder auch nicht).

  • STOPPED_FEATURE_DISABLED

  • STOPPED_STAGE_DROPPED

  • STOPPED_FILE_FORMAT_DROPPED

  • STOPPED_MISSING_PIPE

  • STOPPED_MISSING_TABLE

  • STALLED_COMPILATION_ERROR

  • STALLED_INITIALIZATION_ERROR

  • STALLED_EXECUTION_ERROR

  • STALLED_INTERNAL_ERROR

  • PAUSED

  • PAUSED_BY_SNOWFLAKE_ADMIN

  • PAUSED_BY_ACCOUNT_ADMIN

oldestFileTimestamp

Frühester Zeitstempel unter den derzeit in der Warteschlange befindlichen Datendateien (so zutreffend), wobei Zeitstempel beim Hinzufügen einer Datei zur Warteschlange festgelegt werden.

pendingFileCount

Anzahl der Dateien, die von der Pipe derzeit verarbeitet werden. Falls die Pipe angehalten wurde, verringert sich dieser Wert, sobald Dateien verarbeitet werden, die in die Warteschlange gestellt wurden, bevor die Pipe angehalten wurde. Wenn dieser Wert 0 lautet, befinden sich entweder keine Dateien in der Warteschlange für diese Pipe oder wurde die Pipe angehalten.

notificationChannelName

Azure-SQS-Warteschlange oder Microsoft Azure-Speicherwarteschlange, die der Pipe zugeordnet ist.

numOutstandingMessagesOnChannel

Anzahl der Nachrichten in der Warteschlange, die in die Warteschlange gestellt, aber noch nicht empfangen wurden.

lastReceivedMessageTimestamp

Zeitstempel der letzten Nachricht, die aus der Warteschlange empfangen wurde. Beachten Sie, dass diese Nachricht möglicherweise nicht für die bestimmte Pipe gilt, z. B. wenn der mit der Nachricht verknüpfte Pfad bzw. das verknüpfte Präfix nicht mit dem Pfad/Präfix in der Pipe-Definition übereinstimmen. Darüber hinaus werden von Pipes zur automatischen Erfassung nur solche Nachrichten verarbeitet, die von erstellten Datenobjekten ausgelöste wurden.

lastForwardedMessageTimestamp

Zeitstempel der letzten Ereignismeldung vom Typ „Objekt erstellen“ mit einem übereinstimmenden Pfad/Präfix, der bzw. das an die Pipe weitergeleitet wurde.

error

Fehlermeldung, die erzeugt wurde, als die Pipe für die Ausführung zuletzt kompiliert wurde (falls zutreffend). Ursache sind oft Schwierigkeiten beim Zugriff auf die erforderlichen Objekte (z. B. Tabelle, Stagingbereich, Dateiformat), ausgelöst durch Berechtigungsprobleme oder gelöschte Objekte.

fault

Letzter interner Snowflake-Verarbeitungsfehler (falls zutreffend). Wird von Snowflake hauptsächlich zum Debuggen verwendet.

Beispiele

Abrufen des Status für eine Pipe mit einem Namen, bei dem nicht zwischen Groß-/Kleinschreibung unterschieden wird:

SELECT SYSTEM$PIPE_STATUS('mydb.myschema.mypipe');

+---------------------------------------------------+
| SYSTEM$PIPE_STATUS('MYDB.MYSCHEMA.MYPIPE')        |
|---------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0} |
+---------------------------------------------------+

Abrufen des Status für eine Pipe mit einem Namen, bei dem zwischen Groß-/Kleinschreibung unterschieden wird:

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

+---------------------------------------------------+
| SYSTEM$PIPE_STATUS('MYDB.MYSCHEMA."MYPIPE"')      |
|---------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0} |
+---------------------------------------------------+