Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt die Version des zuletzt festgelegten Snapshots für den umschließenden AUTO CDC ... FROM SNAPSHOT Fluss zurück. Der committierte Snapshot kann aus einem vorherigen Pipeline-Update oder aus einer früheren Iteration des aktuellen Updates stammen.
Diese Funktion ist nur innerhalb der WITH VERSION (...) Klausel eines Flows AUTO CDC ... FROM SNAPSHOT verfügbar.
Syntax
last_snapshot_version()
Argumente
Diese Funktion akzeptiert keine Argumente.
Rücklieferungen
Eine einspaltige Relation mit demselben Spaltennamen und -typ wie die Version des beiliegenden Flusses, die 0 oder 1 Zeilen enthält:
- 1 Zeile mit der zuletzt eingetragenen Snapshot-Version.
- 0 Zeilen, wenn der Flow seit seiner Ersterstellung oder der letzten vollständigen Aktualisierung keinen Snapshot gemacht hat.
Nach jedem erfolgreichen last_snapshot_version() Snapshot wird diese committierte Version der nächsten Auswertung der Versionsabfrage angezeigt, einschließlich Bewertungen innerhalb desselben Pipeline-Updates. Dadurch kann ein Update mehrere Versionen in der Reihenfolge auswählen und verarbeiten.
Examples
Der folgende Fluss wird verwendet last_snapshot_version() , um die nächste Datei zu finden, die nach der letzten, die committed wurde, verarbeitet werden soll:
CREATE FLOW orders_cdc
AS AUTO CDC INTO orders
FROM SNAPSHOT (...)
WITH VERSION (
SELECT struct(modification_time, path) AS version
FROM list_files('/Volumes/catalog/schema/landing/orders/')
WHERE (
NOT EXISTS (SELECT 1 FROM last_snapshot_version())
OR struct(modification_time, path) > (SELECT version FROM last_snapshot_version())
)
ORDER BY modification_time, path
LIMIT 1
)
KEYS (order_id);
Errors
last_snapshot_version() ist nur innerhalb der WITH VERSION (...) Klausel eines Flows AUTO CDC ... FROM SNAPSHOT verfügbar. Überall sonst löst Spark den Namen als gewöhnliche tabellenwertige Funktion auf. Da keine solche Funktion definiert ist, erhebt UNRESOLVABLE_TABLE_VALUED_FUNCTION sie (SQLSTATE 42883).