current_snapshot_version functie

Geeft de versierij terug die door de clausule WITH VERSION (...) van de omsluitende flow is geselecteerd voor de snapshot die wordt verwerkt.

Deze functie is alleen beschikbaar binnen de FROM SNAPSHOT (...) clausule van een AUTO CDC ... FROM SNAPSHOT flow.

Syntax

current_snapshot_version()

Arguments

Deze functie heeft geen argumenten.

Returns

Een enkelkolomrelatie met dezelfde kolomnaam en type als de versiequery van de omsluitende flow, die precies 1 rij bevat. De rij bevat de versie die is geselecteerd voor de huidige snapshot-verwerkingsiteratie.

current_snapshot_version() wordt alleen geƫvalueerd nadat de versiequery 1 rij teruggeeft. Als de versiequery 0 rijen teruggeeft, voert de engine de snapshot-query niet uit en stopt de verwerking van de flow tijdens die pipeline-update.

Examples

De volgende flow gebruikt current_snapshot_version() het bestand dat door de WITH VERSION (...) clausule is geselecteerd. De versie is een enkele STRUCT kolom, dus de velden worden benaderd met puntnotatie:

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

Fouten

current_snapshot_version() is alleen beschikbaar binnen de FROM SNAPSHOT (...) clausule van een AUTO CDC ... FROM SNAPSHOT flow die een WITH VERSION (...) clausule declareert. Overal elders lost Spark de naam op als een gewone tabelwaardige functie. Omdat zo'n functie niet gedefinieerd is, genereert UNRESOLVABLE_TABLE_VALUED_FUNCTION deze (SQLSTATE 42883).