适用于:
 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 | 
最新批次标识符 | 表示要从中读取的目标批次。 当用户想要执行时间旅行时,使用此选项。 该批应提交,但尚未清理。 | 
OperatorId | 
BIGINT | 
0 | 表示要从中读取的目标运算符。 当查询使用多个有状态运算符时,使用此选项。 | 
storeName | 
STRING | 
'DEFAULT' | 
表示要从中读取的目标端。 当用户想要从流间联接读取状态时,使用此选项。 | 
joinSide | 
STRING | 
'None' | 
表示要从中读取的目标端。 当用户想要从流间联接读取状态时,使用此选项。 以下其中之一:'Left'、'Right'、'None'。 | 
返回
该函数会返回包含以下列的结果集。
注意
键和值的嵌套列在很大程度上取决于有状态运算符的输入架构和运算符的类型。
| 名称 | 数据类型 | 可为空 | 标准 | 说明 | 
|---|---|---|---|---|
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'
  );