current_snapshot_version 函數

回傳由包圍流程 WITH VERSION (...) 子句選擇的版本列,用於處理快照。

此函式僅 FROM SNAPSHOT (...) 在流程的 AUTO CDC ... FROM SNAPSHOT 子句內可用。

語法

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()僅在宣告子WITH VERSION (...)句的流程子FROM SNAPSHOT (...)句AUTO CDC ... FROM SNAPSHOT中可用。 在其他地方,Spark 會將名稱解析為普通的表值函式。 由於沒有定義這樣的函數,它會產生 UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883)。