- Kategorien:
Systemfunktionen (Systeminformationen)
SYSTEM$AUTO_REFRESH_STATUS¶
Gibt den Status der automatischen Aktualisierung für eine extern verwaltete Iceberg-Tabelle zurück.
Bemerkung
Um diesen Aktualisierungsstatus für alle anwendbaren, extern verwalteten Apache Iceberg™-Tabellen, für die Sie Zugriffsrechte haben, zurückzugeben, führen Sie den Befehl SHOW ICEBERG TABLES aus und sehen Sie sich die Spalte auto_refresh_status in der Ausgabe an.
Syntax¶
SYSTEM$AUTO_REFRESH_STATUS('<table_name>')
Argumente¶
'table_name'Der Name der Iceberg-Tabelle, für die Sie den aktuellen Status der automatischen Aktualisierung abrufen möchten.
Wenn Sie den voll qualifizierten Namen verwenden, schließen Sie den gesamten Namen in einfache Anführungszeichen ein, einschließlich der Datenbank und des Schemas. Wenn der Tabellenname zwischen Groß- und Kleinschreibung unterscheidet oder Sonderzeichen oder Leerzeichen enthält, müssen Sie doppelte Anführungszeichen verwenden. Schließen Sie die doppelten Anführungszeichen in einfache Anführungszeichen ein, zum Beispiel
'"Table_Name"'.
Rückgabewerte¶
Die Funktion gibt ein JSON-Objekt zurück, das die folgenden Name/Wert-Paare enthält:
{
"executionState":"<value>",
"invalidExecutionStateReason":"<value>",
"pendingSnapshotCount":"<value>",
"oldestSnapshotTime":"<value>",
"currentSnapshotId":"<value>",
"currentSnapshotSummary":"<value>",
"lastSnapshotTime":"<value>",
"lastUpdatedTime":"<value>",
"currentMetadataFile":"<value>",
"currentSchemaId":"<value>"
}
Wobei:
executionStateAktueller Stand der Ausführung der Pipe, die Snowflake verwendet, um Aktualisierungen für die Tabelle zu automatisieren.
Werte:
RUNNING: Die automatische Aktualisierung läuft wie erwartet. Dieser Status zeigt nicht an, ob Snowflake aktiv Ereignismeldungen für die Pipe verarbeitet.
STALLED: Bei der automatischen Aktualisierung ist ein Fehler aufgetreten und es wird versucht, den Fehler zu beheben.
STOPPED: Die automatische Aktualisierung ist auf einen nicht behebbaren Fehler gestoßen und wird gestoppt, wenn Sie keine weiteren Aktionen durchführen. Weitere Informationen dazu finden Sie unter Fehlerbehebung.invalidExecutionStateReasonFehlermeldung in Verbindung mit einem
STALLEDoderSTOPPEDAusführungsstatus.pendingSnapshotCountAnzahl der Snapshots in der Warteschlange für die automatische Aktualisierung.
oldestSnapshotTimeFrühester Zeitstempel unter den Snapshots in der Warteschlange. Snowflake stellt den Zeitstempel für einen Snapshot ein, wenn der Snapshot zur Warteschlange hinzugefügt wird.
currentSnapshotIdID des aktuellen Snapshots, den Snowflake verfolgt. Dies stellt den Snapshot dar, dem die aktuellen Tabellendaten entsprechen.
currentSnapshotSummaryDie Iceberg Snapshot-Zusammenfassung aus der Datei
metadata.json. NULL falls nicht in der Metadaten-Datei vorhanden.lastSnapshotTimeErstellungszeitstempel für den aktuellen Snapshot gemäß den Iceberg-Metadaten. Dieser Zeitstempel entspricht dem Zeitpunkt, an dem der aktuelle Snapshot im externen Katalog erstellt wurde.
lastUpdatedTimeZeitstempel, der angibt, wann Snowflake den aktuellen Snapshot erfolgreich verarbeitet hat. Die Differenz zwischen diesem Wert und
lastSnapshotTimegibt die Latenzzeit zwischen der Erstellung von Snapshots im externen Katalog und der erfolgreichen Aktualisierung der Metadaten der Tabelle durch Snowflake an.Um die Latenzzeit zu verringern, passen Sie den Parameter
REFRESH_INTERVAL_SECONDSfür die mit der Tabelle verbundene Katalogintegration an.currentMetadataFileDer vollständige Pfad zur aktuellen Metadatendatei.
currentSchemaIdID des aktuellen Schemas.
Nutzungshinweise¶
Zum Aufrufen dieser Funktion ist eine Rolle erforderlich, die über die Berechtigung OWNERSHIP für die Iceberg-Tabelle verfügt.
Für Delta-basierte Tabellen beachten Sie bitte Folgendes:
Im Zusammenhang mit dieser Funktion und der automatischen Aktualisierung in Snowflake bezieht sich der Begriff „Snapshot“ auf einen Delta-Commit.
Die Funktion gibt keinen Wert für
lastSnapshotTimezurück.
Beispiele¶
Rufen Sie den Status der automatischen Aktualisierung für die Tabelle my_iceberg_table im Schema db1.schema1 ab:
SELECT SYSTEM$AUTO_REFRESH_STATUS('db1.schema1.my_iceberg_table');