current_snapshot_version функция

Возвращает строку версии, выбранную клаузой WITH VERSION (...) заключающего потока для обрабатываемого снимка.

Эта функция доступна только внутри FROM SNAPSHOT (...) клаузы потока AUTO CDC ... FROM SNAPSHOT .

Syntax

current_snapshot_version()

Аргументы

Эта функция не принимает аргументы.

Returns

Одностолбцевое отношение с тем же именем и типом столбца, что и запрос версии окружающего потока, содержащее ровно одну строку. В строке содержится выбранная версия для текущей итерации обработки снимков.

current_snapshot_version() вычисляется только после того, как запрос версии возвращает 1 строку. Если запрос версии возвращает 0 строк, движок не запускает запрос к снимку и завершает обработку потока во время обновления конвейера.

Examples

Следующий поток используется current_snapshot_version() для чтения файла, выбранного клаузой WITH VERSION (...) . Версия состоит из одного STRUCT столбца, поэтому её поля доступны с помощью точечной нотации:

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() доступна только внутри FROM SNAPSHOT (...) клаузы AUTO CDC ... FROM SNAPSHOT потока, который объявляет WITH VERSION (...) предложение. В любом другом месте Spark разрешает название как обычную табличную функцию. Поскольку такой функции не определено, оно повышает UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883).