返回由包围流程 WITH VERSION (...) 子句选中的快照版本行。
该函数仅 FROM SNAPSHOT (...) 存在于流的 AUTO CDC ... FROM SNAPSHOT 子句内。
Syntax
current_snapshot_version()
参数
此函数没有参数。
Returns
一个单列关系,列名和类型与包围流程的版本查询相同,恰好包含1行。 该行包含当前快照处理迭代所选版本。
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 (...)在声明某WITH VERSION (...)子句的流的子句AUTO CDC ... FROM SNAPSHOT中可用。 在其他地方,Spark 将名称解析为普通的表值函数。 由于没有定义这样的函数,它会提升 UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883)。