current_snapshot_version 関数

処理中のスナップショットに対して、囲むフローの 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)を上げます。