數據處理者中的數據分割是什麼?
重要
已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。
當正式發行可供使用時,您將需要部署新的 Azure IoT 作業安裝,您將無法升級預覽安裝。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
在數據處理者管線中,分割會將傳入數據分割成不同的分割區,以啟用數據平行處理原則。 資料平行處理原則可改善輸送量並降低延遲。 資料分割也會影響管線階段的方式,例如最後一個已知值和彙總階段、處理資料的方式。
資料分割概念
資料處理者使用兩個資料分割概念:
- 對應至系統中實際資料流的實體分割區。
- 對應至一起處理之概念資料流的邏輯分割區。
數據處理者管線會將分割區公開為邏輯分割區給使用者。 基礎系統會將這些邏輯分割區對應到實體分割區。
若要指定管線的資料分割策略,您可以提供兩項資訊:
- 管線的實體分割區數目。
- 包含資料分割類型和運算式的分割策略,可計算每個傳入訊息的邏輯分割區。
請務必為您的情節選擇正確的資料分割計數和資料分割運算式。 資料處理者會保留相同邏輯分割區內的資料順序,而相同邏輯分割區中的訊息可以在管線階段合併,例如最後一個已知值和彙總階段。 無法變更實體分割區計數,並判斷管線調整限制。
資料分割設定
管線內的分割是在管線的輸入階段設定。 輸入階段會從傳入訊息計算資料分割索引鍵。 不過,資料分割會影響管線中的其他階段。
資料分割設定包括:
欄位 | 描述 | 是必要欄位 | 預設 | 範例 |
---|---|---|---|---|
分割區計數 | 資料處理者管線中的實體分割區數目。 | Yes | N/A | 3 |
類型 | 要使用的邏輯分割類型:資料分割 id 或資料分割 key 。 |
Yes | key |
key |
運算式 | 針對傳入訊息執行的 jq 運算式以利計算分割區 id 或分割區 key 。 |
Yes | N/A | .topic |
您提供的 jq 運算式 會套用至抵達數據處理者管線的整個訊息,以產生分割區索引鍵或分割區標識符。 此查詢的輸出不得超過 128 個字元。
分割類型
您可以設定兩種資料分割類型:
分割區索引鍵
指定 jq 運算式,以動態方式計算每個訊息的邏輯分割區索引鍵字串:
- 分割區管理員會自動將分割區索引鍵指派給分割區管理員的實體分割區。
- 所有相互關聯的資料,例如最後一個已知值和彙總,都會限定於邏輯分割區。
- 保證每個邏輯分割區中的資料順序。
當您有數十個以上的邏輯資料群組時,這種類型的資料分割最有用。
分割識別碼
指定 jq 運算式,以動態方式計算每個訊息的數值實體分割識別碼,例如 .topic.assetNumber % 8
。
- 訊息會放在您指定的實體分割區中。
- 所有相互關聯的資料都會限定為實體分割區。
當您有少量的資料邏輯群組,或想要精確控制調整和工作分佈時,這種類型的資料分割最適合。 產生的分割區識別碼數目應該是整數,且不得超過 'partitionCount' – 1
的值。
考量
當您為管線選擇資料分割策略時:
- 資料排序會保留在邏輯分割區內,因為從 MQTT 代理主題接收資料。
- 根據傳入資料和所需結果的性質,選擇資料分割策略。 例如,最後一個已知值階段和彙總階段會在每個邏輯分割區上執行作業。
- 選取分割區索引鍵,將資料平均散發到所有分割區。
- 增加分割區計數可以改善效能,但也耗用更多資源。 根據您的需求和限制式來平衡此取捨。