工作流程和 Managed Service for Apache Airflow 都可用於服務自動化調度管理,結合多項服務來實作應用程式功能或執行資料處理作業。儘管兩者在概念上相似,但實則是為不同用途而設計。本頁面可幫助您針對用途選擇合適的產品。
主要差異
Workflows 和 Managed Airflow 的主要差異在於,這兩項產品分別支援的架構類型。
工作流程可自動調度管理多個以 HTTP 為基礎的服務,做為一個持久的有狀態工作流程,延遲時間短,可處理大量執行作業。而且完全無伺服器。
Workflows 非常適合串連微服務、將基礎架構工作 (例如啟動或停止 VM) 自動化,以及與外部系統整合。Workflows 連接器也支援 Cloud Storage 和 BigQuery 等 Google Cloud 服務中的簡單作業序列。
Managed Airflow 旨在自動調度資料導向的工作流程 (特別是 ETL/ELT)。這項服務以 Apache Airflow 專案為基礎,但 Managed Airflow 是全代管服務。Managed Airflow 都能支援您的管道,無論管道位於何處 (包括地端部署或多個雲端平台)。Managed Airflow 中的所有邏輯 (包括任務和排程),都會以 Python 表示為有向無環圖 (DAG) 定義檔案。
Managed Airflow 最適合批次工作負載,可處理工作執行作業之間幾秒的延遲時間。您可以使用 Managed Airflow 協調資料管道中的服務,例如在 BigQuery 中觸發工作,或啟動 Dataflow 管道。您可以使用現有的運算子與各種服務通訊,光是 Google Cloud 就有超過 150 個運算子。
詳細功能比較
| 功能 | 工作流程 | Managed Airflow |
|---|---|---|
| 語法 | YAML 或 JSON 格式的 Workflows 語法 | Python |
| 狀態模型 | 命令式流程控制 | 宣告式 DAG,可自動解決依附元件問題 |
| 整合 | HTTP 要求和連接器 | Airflow 運算子和 感應器 |
| 在步驟之間傳遞資料 | 變數 512 KB | 48 KB1 (適用於 XCom)XCom |
| 執行作業觸發條件和排程 | gcloud CLI、 Google Cloud 控制台、 Workflows API、Workflows 用戶端程式庫、 Cloud Scheduler | DAG 定義檔中的類似 Cron 的排程、Airflow 感應器 |
| 非同步模式 |
|
意見調查 |
| 平行執行 | 相同工作流程的並行執行作業,或使用平行步驟的工作流程 | 根據依附元件自動設定 |
| 執行延遲 | 毫秒 | 秒 |
| 以開放原始碼為基礎 | 否 | 是 (Apache Airflow) |
| 縮放模型 | 無伺服器 (可根據需求調度資源,並將資源調度率降至零) | 已佈建 |
| 計費模式 | 依用量計費 (每執行一個步驟) | 根據佈建的容量 |
| 資料處理功能 | 否 | 回填,可重新執行 DAG |
-
airflow.models.xcom 的原始碼。 Apache Airflow 說明文件。2021 年 8 月 2 日。 ↩