Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS

Ruft eine JSON-Darstellung des aktuellen Aktualisierungsstatus für das interne (versteckte) Pipeobjekt ab, das mit einer externen Tabelle verbundene ist.

Das automatische Aktualisieren der Metadaten einer externen Tabelle beruht intern auf Snowpipe, das die Ereignisbenachrichtigungen empfängt, wenn Änderungen im überwachten Cloudspeicher auftreten. Weitere Informationen dazu finden Sie unter Einführung in externe Tabellen.

Syntax

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS( '<external_table_name>' )

Argumente

Name_der_externen_Tabelle

Externe Tabelle, für die Sie den aktuellen Status der automatischen Aktualisierung abrufen möchten.

Nutzungshinweise

  • Diese Funktion gibt die Ergebnisse nur für den Eigentümer der externen Tabelle zurück (d. h. für die Rolle mit der Berechtigung OWNERSHIP für die externe Tabelle).

  • Name_der_externen_Tabelle 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>.<Name_der_externen_Tabelle>'.

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

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.

lastForwardedMessageTimestamp

Zeitstempel der letzten Ereignismeldung, die an die Pipe weitergeleitet wurde.

error

Fehlermeldung, die erzeugt wurde, als die Pipe für die Ausführung zuletzt kompiliert wurde (falls zutreffend).

fault

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

Beispiele

Abrufen des Status der automatischen Aktualisierung für eine externe Tabelle mit einem Namen, bei dem nicht zwischen Groß-/Kleinschreibung unterschieden wird:

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema.exttable');

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

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

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema."extTable"');

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