current_snapshot_version funkcja

Zwraca wiersz wersji wybrany przez klauzulę WITH VERSION (...) przepływu oplatającego dla przetwarzanego snapshota.

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

Składnia

current_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 dokładnie 1 wiersz. Wiersz zawiera wersję wybraną dla bieżącej iteracji przetwarzania migawek.

current_snapshot_version() jest oceniany dopiero po zwróceniu 1 wiersza przez zapytanie o wersję. Jeśli zapytanie o wersję nie zwraca 0 wierszy, silnik nie wykonuje zapytania snapshot i kończy przetwarzanie przepływu podczas aktualizacji potoku.

Examples

Następujący tok służy current_snapshot_version() do odczytu pliku wybranego przez klauzulę WITH VERSION (...) . Wersja jest jednokolumnowa STRUCT , więc jej pola są dostępne za pomocą notacji kropkowej:

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