- 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:
executionState
Aktueller 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.invalidExecutionStateReason
Fehlermeldung in Verbindung mit einem
STALLED
oderSTOPPED
Ausführungsstatus.pendingSnapshotCount
Anzahl der Snapshots in der Warteschlange für die automatische Aktualisierung.
oldestSnapshotTime
Frü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.
currentSnapshotId
ID des aktuellen Snapshots, den Snowflake verfolgt. Dies stellt den Snapshot dar, dem die aktuellen Tabellendaten entsprechen.
currentSnapshotSummary
Die Iceberg Snapshot-Zusammenfassung aus der Datei
metadata.json
. NULL falls nicht in der Metadaten-Datei vorhanden.lastSnapshotTime
Erstellungszeitstempel für den aktuellen Snapshot gemäß den Iceberg-Metadaten. Dieser Zeitstempel entspricht dem Zeitpunkt, an dem der aktuelle Snapshot im externen Katalog erstellt wurde.
lastUpdatedTime
Zeitstempel, der angibt, wann Snowflake den aktuellen Snapshot erfolgreich verarbeitet hat. Die Differenz zwischen diesem Wert und
lastSnapshotTime
gibt 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_SECONDS
für die mit der Tabelle verbundene Katalogintegration an.currentMetadataFile
Der vollständige Pfad zur aktuellen Metadatendatei.
currentSchemaId
ID 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
lastSnapshotTime
zurü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');