current_snapshot_version Funkce

Vrací verzní řádek vybraný klauzulí WITH VERSION (...) ukrývajícího toku pro zpracovávaný snapshot.

Tato funkce je dostupná pouze uvnitř klauzule FROM SNAPSHOT (...)AUTO CDC ... FROM SNAPSHOT toku.

Syntax

current_snapshot_version()

Arguments

Tato funkce nepřijímá žádné argumenty.

Returns

Jednosloupcová relace se stejným názvem sloupce a typem jako dotaz na verzi uzavírajícího toku, obsahující přesně jeden řádek. Řádek obsahuje verzi vybranou pro aktuální iteraci zpracování snímků.

current_snapshot_version() je vyhodnocen až poté, co dotaz na verzi vrátí 1 řádek. Pokud dotaz na verzi vrátí 0 řádků, engine snapshot dotaz nespouští a během aktualizace pipeline ukončí zpracování flow.

Examples

Následující tok se používá current_snapshot_version() ke čtení souboru vybraného klauzulí WITH VERSION (...) . Verze je jednosloupcová STRUCT , takže její pole jsou přístupná s tečkovou notací:

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() je dostupný pouze uvnitř klauzule FROM SNAPSHOT (...)AUTO CDC ... FROM SNAPSHOT toku, který klauzuli WITH VERSION (...) deklaruje. Kdekoli jinde Spark vyřeší název jako obyčejnou tabulkovou funkci. Protože taková funkce není definována, zvyšuje (UNRESOLVABLE_TABLE_VALUED_FUNCTIONSQLSTATE 42883).