回傳由包圍流程 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)。