Azure IoT 操作提供兩種資料處理與路由方式:資料流以及資料流圖。 兩者皆使用共用基礎設施,如端點、設定檔,以及來源與目的地的設定。 然而,它們在管線形狀、轉換能力及端點支援上有所不同。
什麼是資料流?
資料流是一種簡單且線性的管線,透過可選的轉換方式將資料從來源傳送到目的地。 轉換階段以固定順序執行三個操作:濃縮、過濾、然後映射。 你可以透過 Operations Experience 的網頁介面、Azure CLI 或 Azure Resource Manager 範本來配置資料流程。
資料流通常可用,並支援所有端點類型。
什麼是資料流程圖?
資料流程圖是一種可組合的基於圖形的管線,連接你定義的任何拓撲中的多個轉換。 你可以串接、分支和合併處理步驟。 每個轉換都是預先建置的處理單元,例如映射、篩選、分支、時間窗、節流或資料擴充,你可以使用規則加以設定。 你可以透過使用 Operations Experience 的 Web UI、Azure CLI 或 Azure Resource Manager 範本來配置資料流程圖。
資料流程圖支援 MQTT、Kafka 及 OpenTelemetry 端點。
比較
| Feature | 數據流 | 資料流程圖 |
|---|---|---|
| 管線形狀 | 固定:增強、篩選、映射 | 具靈活性的:適用於任何圖形拓撲 |
| 變換 | 映射、篩選、增強 | 映射、篩選、分支、串接、視窗(資料聚合)、增強 |
| 分支與合併 | 不支援 | 依條件分支,以串連方式合併 |
| 基於時間的聚合 | 不支援 | 使用 avg、min、max、count 的輪轉視窗 |
| 端點支援(來源) | MQTT,卡夫卡 | MQTT,卡夫卡 |
| 端點支援(目的地) | MQTT、Kafka、ADLS、Fabric、ADX、本地儲存、OpenTelemetry | MQTT、Kafka、OpenTelemetry |
| 動態目的地主題 |
${inputTopic} (來源主題直通) |
$metadata.topic
+
${outputTopic} (內容導向路由) |
| Schema | 論源頭與轉化 | 節點連接 |
| 磁碟持久性 | Supported | Supported |
共享基礎設施
資料流與資料流圖的共享:
-
端點:兩者都使用
DataflowEndpoint資源連接 MQTT 中介、Kafka、儲存及其他服務。 請參見 準備端點。 -
設定檔:兩者都參考
DataflowProfile,用於擴展性和實例設定。 請參閱 管理資料流設定檔。 - 來源配置:兩者都支援相同的來源端點選項(預設代理、資產、自訂端點)及資料來源(主題)配置。 請參見 「配置來源」。
- 目的地設定:兩者都支援靜態與動態目的地主題。 請參見 「設定目的地」。
-
磁碟持續性:兩者都支援
requestDiskPersistence,以在重新啟動後繼續運作。 請參見 「配置磁碟持久性」。
何時使用哪一種
在以下情況下使用資料流程:
- 你需要一條簡單的從來源到目的地的管線,且包含基本轉換。
- 你需要將資料傳送到儲存端點(ADLS、Fabric、ADX、本地儲存)。
- 你需要一個普遍可用、就緒的生產解決方案。
在以下情況下使用資料流程圖:
- 你需要根據條件分支訊息到不同的處理路徑。
- 你需要時間型聚合(翻滾視窗)。
- 你需要在自訂拓撲中進行多個連鎖轉換。
- 你僅使用 MQTT、Kafka 或 OpenTelemetry 端點。
對於使用支援端點類型的新專案,請使用資料流程圖。 資料流在所有情境中始終全面提供支援,並支援端點類型的完整範圍。