処理中のスナップショットに対して、囲むフローの WITH VERSION (...) 節で選択されたバージョン行を返します。
この機能はAUTO CDC ... FROM SNAPSHOTフローのFROM SNAPSHOT (...)節内でのみ利用可能です。
Syntax
current_snapshot_version()
引数
この関数は引数を受け取りません。
返品
囲むフローのバージョンクエリと同じ列名と型を持つ単一列関係で、正確に1行を含みます。 行には現在のスナップショット処理の反復で選択されたバージョンが含まれています。
current_snapshot_version() バージョンクエリが1行を返した後にのみ評価されます。 バージョンクエリが0行を返す場合、エンジンはスナップショットクエリを実行しず、そのパイプライン更新中にフローの処理を終了します。
Examples
以下のフローでは、WITH VERSION (...)節で選択されたファイルを読み取るためにcurrent_snapshot_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()はWITH VERSION (...)節を宣言するAUTO CDC ... FROM SNAPSHOTフローのFROM SNAPSHOT (...)節内でのみ利用可能です。 それ以外の場所では、Sparkは通常のテーブル値関数として名前を解決します。 そのような関数が定義されていないため、 UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883)を上げます。