current_snapshot_version 函数

返回由包围流程 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)。