last_snapshot_version funkcja

Zwraca wersję ostatnio zadeklarowanego migawki dla przepływu zamknięcia AUTO CDC ... FROM SNAPSHOT . Zatwierdzony migawka może pochodzić z poprzedniej aktualizacji pipeline lub z wcześniejszej wersji aktualnej aktualizacji.

Funkcja ta jest dostępna tylko wewnątrz klauzuli WITH VERSION (...) przepływu AUTO CDC ... FROM SNAPSHOT .

Składnia

last_snapshot_version()

Arguments

Ta funkcja nie przyjmuje żadnych argumentów.

Returns

Relacja jednokolumnowa o tej samej nazwie kolumny i typie co zapytanie wersyjne przepływu otaczającego, zawierająca 0 lub 1 wiersze:

  • 1 wiersz zawierający najnowszą wersję snapshot.
  • 0 wierszy, jeśli flow nie zatwierdził snapshotu od momentu utworzenia lub ostatniego pełnego odświeżenia.

Po pomyślnym zatwierdzeniu każdego snapshota, last_snapshot_version() ta zadeklarowana wersja jest wystawiona na kolejną ocenę zapytania wersyjnego, w tym oceny w ramach tej samej aktualizacji pipeline. Pozwala to jednej aktualizacji wybrać i przetworzyć wiele wersji w kolejności.

Examples

Następujący przebieg służy last_snapshot_version() do znalezienia kolejnego pliku do przetworzenia po ostatnim, który zatwierdził tę decyzję:

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() jest dostępna tylko wewnątrz klauzuli WITH VERSION (...)AUTO CDC ... FROM SNAPSHOT przepływu. W innych miejscach Spark rozwiązuje nazwę jako zwykłą funkcję tabelową. Ponieważ taka funkcja nie jest zdefiniowana, podnosi (UNRESOLVABLE_TABLE_VALUED_FUNCTIONSQLSTATE 42883).