read_statestore
表值函数
适用于: Databricks SQL Databricks Runtime 14.3 及更高版本
重要
此功能目前以公共预览版提供。
用于从流式处理查询的状态存储中读取记录的表值函数。 返回的关系仅支持作为批查询运行。
语法
read_statestore ( path [, option_key => option_value ] [ ... ] )
参数
read_statestore
需要对其可选参数进行命名参数调用。
path
:STRING 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'
);