共用方式為


read_statestore table-valued 函式

適用於:check marked yes 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 最新批次標識碼 表示要從中讀取的目標批次。 當使用者想要執行時間移動時,會使用此選項。 批次應該認可,但尚未清除。
OperatorId BIGINT 0 表示要讀取的目標運算符。 當查詢使用多個具狀態運算符時,會使用此選項。
storeName STRING 'DEFAULT' 表示要從中讀取的目標端。 當使用者想要從數據流聯結讀取狀態時,會使用此選項。
joinSide STRING 'None' 表示要從中讀取的目標端。 當使用者想要從數據流聯結讀取狀態時,會使用此選項。 的其中一個:'Left''Right''None'、 。

傳回

函式會傳回具有下列數據行的結果集。

注意

索引鍵和值的巢狀數據行嚴重取決於具狀態運算符的輸入架構和運算符類型。

名稱 資料類型 Nullable 標準 描述
id STRUCT No 儲存在狀態檢查點之具狀態運算子的索引鍵數據列。
value STRUCT Yes 儲存在狀態檢查點之具狀態運算子的值數據列。
partition_id INTEGER No 包含記錄的分割區。
shardId STRING No 讀取數據所在分區的唯一標識符。
sequenceNumber BIGINT No 其分區內記錄的唯一標識碼。
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'
  );