current_snapshot_version-Funktion

Gibt die Versionszeile zurück, die durch die WITH VERSION (...) Klausel des umschließenden Flows für den verarbeiteten Snapshot ausgewählt wurde.

Diese Funktion ist nur innerhalb der FROM SNAPSHOT (...) Klausel eines Flows AUTO CDC ... FROM SNAPSHOT verfügbar.

Syntax

current_snapshot_version()

Argumente

Diese Funktion akzeptiert keine Argumente.

Rücklieferungen

Eine einspaltige Relation mit demselben Spaltennamen und -typ wie die Version des umschließenden Flusses, die genau eine Zeile enthält. Die Zeile enthält die für die aktuelle Snapshot-Verarbeitungs-Iteration ausgewählte Version.

current_snapshot_version() wird nur ausgewertet, nachdem die Versionsabfrage eine Zeile zurückgibt. Wenn die Versionsabfrage 0 Zeilen zurückgibt, führt die Engine die Snapshot-Abfrage nicht aus und beendet die Verarbeitung des Flows während dieses Pipeline-Updates.

Examples

Der folgende Fluss nutzt current_snapshot_version() das Lesen der von der Klausel WITH VERSION (...) ausgewählten Datei. Die Version ist eine einzige STRUCT Spalte, daher werden ihre Felder mit Punktnotation aufgerufen:

CREATE FLOW orders_cdc
  AS AUTO CDC INTO orders
  FROM SNAPSHOT (
    SELECT *
    FROM read_files('/Volumes/catalog/schema/landing/orders/', format => 'json')
    WHERE _metadata.file_path = (SELECT version.path FROM current_snapshot_version())
  )
  WITH VERSION (...)
  KEYS (order_id);

Errors

current_snapshot_version() ist nur innerhalb der FROM SNAPSHOT (...) Klausel eines AUTO CDC ... FROM SNAPSHOT Flusses verfügbar, der eine WITH VERSION (...) Klausel deklariert. Ü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).