共用方式為


什麼是 Azure IoT 數據處理器預覽版中的數據分割?

重要

Azure IoT Operations Preview – 由 Azure Arc 啟用目前處於預覽狀態。 您不應該在生產環境中使用此預覽軟體。

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

在 Azure IoT 數據處理器預覽管線中,數據分割會將傳入的數據分割成不同的分割區,以啟用數據平行處理原則。 數據平行處理原則可改善輸送量並降低延遲。 數據分割也會影響管線階段的方式,例如最後一個 已知值匯總 階段,處理數據的方式。

數據分割概念

資料處理者使用兩個資料分割概念:

  • 對應至系統中實際數據流的實體分割區。
  • 對應至一起處理之概念數據流的邏輯分割區。

數據處理者管線會將分割區公開為邏輯分割區給使用者。 基礎系統會將這些邏輯分割區對應到實體分割區。

若要指定管線的數據分割策略,您可以提供兩項資訊:

  • 管線的實體分割區數目。
  • 包含數據分割類型和表達式的分割策略,可計算每個傳入訊息的邏輯分割區。

請務必為您的案例選擇正確的數據分割計數和數據分割表達式。 數據處理者會保留相同邏輯分割區內的數據順序,而相同邏輯分割區中的訊息可以在管線階段合併,例如最後一 個已知值匯總 階段。 無法變更實體分割區計數,並判斷管線調整限制。

A diagram that shows the effect of partitioning a pipeline.

資料分割設定

管線內的分割是在管線的輸入階段設定。 輸入階段會從傳入訊息計算數據分割索引鍵。 不過,數據分割會影響管線中的其他階段。

資料分割組態包括:

欄位 描述 是必要欄位 預設 範例
分割區計數 數據處理者管線中的實體分割區數目。 Yes N/A 3
類型 要使用的邏輯分割類型:資料分割或key分割id區 。 Yes key key
運算式 要針對傳入訊息執行的 jq 運算式,用來計算資料分割 idkey分割區 。 Yes N/A .topic

您提供的 jq 運算式 會套用至抵達數據處理者管線的整個訊息,以產生分割區索引鍵或分割區標識符。 此查詢的輸出不得超過 128 個字元。

數據分割類型

您可以設定兩種資料分割類型:

分割區索引鍵

指定 jq 運算式,以動態方式計算每個訊息的邏輯分割區索引鍵字串:

  • 數據分割管理員會自動將分割區索引鍵指派給數據分割管理員的實體分割區。
  • 所有相互關聯的數據,例如最後一個已知值和匯總,都會限定於邏輯分割區。
  • 保證每個邏輯分割區中的數據順序。

當您有數十個以上的邏輯數據群組時,這種類型的數據分割最有用。

分割區識別碼

指定 jq 運算式,以動態方式計算每個訊息的數值實體分割識別碼,例如 .topic.assetNumber % 8

  • 訊息會放在您指定的實體分割區中。
  • 所有相互關聯的數據都會限定為實體分割區。

當您有少量的數據邏輯群組,或想要精確控制調整和工作分佈時,這種類型的數據分割最適合。 產生的分割區標識碼數目應該是整數,而且不能超過的值 'partitionCount' – 1

考量

當您為管線選擇資料分割策略時:

  • 數據排序會保留在邏輯分割區內,因為從 MQTT 訊息代理程式主題接收數據。
  • 根據傳入數據和所需結果的性質,選擇數據分割策略。 例如,最後一個已知值階段和匯總階段會在每個邏輯分割區上執行作業。
  • 選取分割區索引鍵,將數據平均分散到所有分割區。
  • 增加分割區計數可以改善效能,但也耗用更多資源。 根據您的需求和條件約束來平衡此取捨。