共用方式為


read_statestore table-valued 的函式

適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 14.3 和更新版本

重要

這項功能處於公開預覽狀態

table 值函數,用於從串流查詢的 狀態存放區 讀取記錄。 傳回的關聯只支援以批次查詢的形式執行。

語法

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

引數

read_statestore 需要 以具名參數調用,來達成其可選的 parameters。

  • pathSTRING literal。 串流查詢檢查點位置的路徑。
  • option_key:要設定的選項名稱。 您必須針對包含點 (..) 的選項使用反引號 (')。
  • option_value:用於 set 選項的常數表達式。 接受常值和純量函式。

所有 都是 option_value不區分大小寫的。

option_key 類型 預設 描述
batchId BIGINT 最新批次標識碼 表示要從中讀取的目標批次。 當使用者想要執行時間移動時,會使用此選項。 批次應該認可,但尚未清除。
OperatorId BIGINT 0 表示要從中讀取的目標運算子。 當查詢使用多個具狀態運算子時,會使用此選項。
storeName STRING 'DEFAULT' 表示要從中讀取的目標端。 當使用者想要從數據流 join讀取狀態時,會使用此選項。
joinSide STRING 'None' 表示要從中讀取的目標端。 當使用者想要從數據流 join讀取狀態時,會使用此選項。 下列其中一項:'Left''Right''None'

傳回

函式會傳回具有下列 columns的結果 set。

注意

巢狀 columns 的鍵和值很大程度上依賴於有狀態操作符的輸入 schema 和操作符的類型。

名稱 資料類型 Nullable 標準 描述
id STRUCT No 儲存在狀態檢查點之具狀態運算子的索引鍵數據列。
value STRUCT Yes 儲存在狀態檢查點之具狀態運算子的值數據列。
partition_id INTEGER No 包含記錄的 partition。
shardId STRING No 為從分區 where 讀取數據的唯一 identifier。
sequenceNumber BIGINT No 記錄在其分片內的唯一 identifier。
approximateArrivalTimestamp TIMESTAMP No 記錄插入數據流的大約時間。

範例

- 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'
  );