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>' )
Copy

Argumente

external_table_name

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).

  • external_table_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>.<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>“,“oldestPendingFilePath“:“<Wert>“,“oldestFileTimestamp“:<Wert>,“pendingFileCount“:<Wert>,“lastPipeFaultTimestamp“:“<Wert>“,“notificationChannelName“:“<Wert>“,“numOutstandingMessagesOnChannel“:<Wert>,“lastReceivedMessageTimestamp“:“<Wert>“,“lastForwardedMessageTimestamp“:“<Wert>“,“error“:<Wert>,“fault“:<Wert>,“lastPulledFromChannelTimestamp“:“<Wert>“,“lastForwardedFilePath“:“<Wert>“}

Wobei:

executionState

Aktueller Ausführungsstatus der Pipe. Folgende Werte sind möglich:

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

  • STOPPED_CLONED (d. h. die Pipe ist in einem Datenbank- oder Schema-Klon enthalten)

  • STOPPED_FEATURE_DISABLED

  • STOPPED_STAGE_DROPPED

  • STOPPED_FILE_FORMAT_DROPPED

  • STOPPED_NOTIFICATION_INTEGRATION_DROPPED

  • STOPPED_MISSING_PIPE

  • STOPPED_MISSING_TABLE (die in der Pipedefinition definierte Zieltabelle wurde gelöscht)

  • STALLED_COMPILATION_ERROR

  • STALLED_INITIALIZATION_ERROR

  • STALLED_EXECUTION_ERROR

  • STALLED_INTERNAL_ERROR

  • PAUSED

  • PAUSED_BY_SNOWFLAKE_ADMIN

  • PAUSED_BY_ACCOUNT_ADMIN

oldestPendingFilePath

Pfad zur ältesten Datendatei, die derzeit in der Warteschlange für eine Aktualisierungsoperation der Metadaten bereitsteht. Der Zeitstempel für das Hinzufügen der Datei zur Warteschlange wird über die Eigenschaft oldestFileTimestamp zurückgegeben.

oldestFileTimestamp

Frühester Zeitstempel unter den Datendateien, die derzeit in der Warteschlange auf eine Aktualisierungsoperation ihrer Metadaten warten (falls zutreffend), wobei der Zeitstempel beim Hinzufügen einer Datei zur Warteschlange festgelegt wird.

pendingFileCount

Anzahl der Dateien, die von der Pipe derzeit verarbeitet werden. Dieser Wert sinkt, wenn die Metadaten der externen Tabelle aktualisiert werden. Wenn dieser Wert 0 ist, stehen keine Aktualisierungsoperationen von Metadaten für diese Pipe an.

lastPipeFaultTimestamp

Zeitstempel, wann zuletzt ein interner Snowflake-Prozessfehler festgestellt wurde.

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 anwendbaren Ereignismeldung mit einem übereinstimmenden Pfad/Präfix, die an die Pipe weitergeleitet wurde.

channelErrorMessage

Fehlermeldung beim Versuch, Meldungen aus der zugehörigen Warteschlange des Cloudmessagingdienstes zu lesen.

lastErrorRecordTimestamp

Zeitstempel der letzten Kanalfehlermeldung (d. h. der im channelErrorMessage-Wert gemeldeten Fehlermeldung).

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.

lastPulledFromChannelTimestamp

Zeitstempel, zu dem Snowpipe zuletzt Ereignisbenachrichtigungen für die Pipe aus der Warteschlange des Cloudmessagingdienstes abgerufen hat.

lastForwardedFilePath

Pfad der Datendatei, die in der letzten an die Pipe weitergeleiteten anwendbaren Ereignismeldung identifiziert wurde.

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}             |
+---------------------------------------------------------------+
Copy

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}             |
+---------------------------------------------------------------+
Copy