read_statestore 表值函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 14.3 及更高版本

重要

此功能目前以公共预览版提供。

用于从流式处理查询的状态存储中读取记录的表值函数。 返回的关系仅支持作为批查询运行。

语法

read_statestore ( path [, option_key => option_value ] [ ... ] )

参数

read_statestore 需要对其可选参数进行命名参数调用

  • pathSTRING literal。 流式处理查询检查点位置的路径。
  • option_key:要配置的选项的名称。 需要对包含点 (.) 的选项使用反引号 (`)。
  • option_value:用于设置选项的常数表达式。 接受文本和标量函数。

所有 option_value 都不区分大小写。

option_key 类型 默认 说明
batchId BIGINT 最新批 ID 表示要从中读取的目标批。 当用户想要执行时间旅行时,使用此选项。 该批应提交,但尚未清理。
OperatorId BIGINT 0 表示要从中读取的目标运算符。 当查询使用多个有状态运算符时,使用此选项。
storeName STRING 'DEFAULT' 表示要从中读取的目标端。 当用户想要从流间联接读取状态时,使用此选项。
joinSide STRING 'None' 表示要从中读取的目标端。 当用户想要从流间联接读取状态时,使用此选项。 以下其中之一:'Left''Right''None'

返回

该函数返回包含以下列的结果集。

注意

键和值的嵌套列在很大程度上取决于有状态运算符的输入架构和运算符的类型。

名称 数据类型 Nullable 标准 描述
id STRUCT 状态检查点中存储的有状态运算符的键行。
value STRUCT 状态检查点中存储的有状态运算符的值行。
partition_id INTEGER 包含记录的分区。
shardId STRING 从中读取数据的分片的唯一标识符。
sequenceNumber BIGINT 记录分片中该记录的唯一标识符。
approximateArrivalTimestamp TIMESTAMP 将记录插入流中的大致时间。

示例

- Read from state
> SELECT * FROM read_statestore('/checkpoint/path');

– Read from state with storeName option
> SELECT * FROM read_statestore(
      '/checkpoint/path',
      operatorId => 0,
      batchId => 2,
      storeName => 'default'
  );

– Read from state with joinSide option

> SELECT * FROM read_statestore(
      '/checkpoint/path',
      joinSide => 'left'
  );