本頁面簡要介紹 Airflow 和 DAG,並說明 Managed Airflow 的功能和特色。
如要進一步瞭解 Managed Airflow 版本的新功能,請參閱版本資訊。
關於 Managed Airflow
Managed Airflow 是全代管的工作流程自動化調度管理服務,可讓您建立、排定、監控及管理跨雲端和地端部署資料中心的工作流程管道。
Managed Airflow 以熱門的 Apache Airflow 開放原始碼專案為建構基礎,並使用 Python 程式設計語言執行作業。
使用 Managed Airflow,而非本機 Apache Airflow 執行個體,即可享有 Airflow 的最佳功能,且無須負擔安裝或管理費用。Managed Airflow 可協助您快速建立代管 Airflow 環境,並使用 Airflow 原生工具 (例如強大的 Airflow 網頁介面和指令列工具),讓您專注於工作流程,而非基礎架構。
Managed Airflow 版本差異
如要進一步瞭解 Managed Airflow 主要版本之間的差異,請參閱「Managed Service for Apache Airflow 版本管理總覽」。
Airflow 和 Airflow DAG (工作流程)
在資料分析中,「工作流程」代表一系列擷取、轉換、分析或運用資料的工作。在 Airflow 中,工作流程是使用 DAG (有向無環圖) 建立。
DAG 是指您要排定及執行的工作集合,其編排方式會反映出工作之間的關聯和依附關係。DAG 是在 Python 檔案中建立,並使用程式碼定義 DAG 結構。DAG 的目的是確保每項工作都在正確的時間和順序執行。
DAG 中的每個任務幾乎可以代表任何事物,例如,一個任務可能會執行下列任一功能:
- 準備待擷取的資料
- 監控 API
- 傳送電子郵件
- 執行管道
除了按照排程執行 DAG 之外,您也可以手動觸發 DAG,或因應事件 (例如 Cloud Storage bucket 變更) 觸發 DAG。詳情請參閱「排定及觸發 DAG」。
如要進一步瞭解 DAG 和工作,請參閱 Apache Airflow 說明文件。
Managed Airflow 環境
Managed Airflow 環境是以 Google Kubernetes Engine 為基礎的獨立 Airflow 部署項目。並透過 Airflow 內建的連接器與其他 Cloud de Confiance服務搭配運作。您可以在單一 Cloud de Confiance專案的任何支援的地區中,建立一或多個環境。
Managed Airflow 會佈建 Cloud de Confiance 服務,用於執行工作流程和所有 Airflow 元件。環境的主要元件包括:
GKE 叢集:Airflow 排程器、觸發條件和 worker 等 Airflow 元件,會在為環境建立的單一叢集中,以 GKE 工作負載的形式執行,並負責處理及執行 DAG。
叢集也會託管其他 Managed Airflow 元件,例如 Composer 代理程式和 Airflow Monitoring,可協助管理 Managed Airflow 環境、收集記錄檔並儲存至 Cloud Logging,以及收集指標並上傳至 Cloud Monitoring。
Airflow 網路伺服器:網路伺服器會執行 Apache Airflow UI。
Airflow 資料庫:這個資料庫會保存 Apache Airflow 中繼資料。
Cloud Storage bucket:Managed Airflow 會將 Cloud Storage bucket 與您的環境建立關聯。這個 bucket 也稱為環境的 bucket,用於儲存環境的 DAG、記錄、自訂外掛程式和資料。如要進一步瞭解環境的值區,請參閱「儲存在 Cloud Storage 中的資料」。
如要深入瞭解環境的元件,請參閱「環境架構」。
Managed Airflow 介面
Managed Airflow 提供多種介面,可用於管理環境、在環境中執行的 Airflow 執行個體,以及個別 DAG。
舉例來說,您可以在 Cloud de Confiance 控制台、Google Cloud CLI、Cloud Composer API 或 Terraform 中建立及設定 Managed Airflow 環境。
另一個例子是,您可以透過Cloud de Confiance 控制台、原生 Airflow UI,或執行 Google Cloud CLI 和 Airflow CLI 指令來管理 DAG。
Managed Airflow 的 Airflow 功能
使用 Managed Airflow 時,您可以管理及使用 Airflow 功能,例如:
Airflow DAG:您可以在 Cloud de Confiance 控制台或使用原生 Airflow UI,新增、更新、移除或觸發 Airflow DAG。
Airflow 設定選項:您可以將 Airflow 設定選項從 Managed Airflow 使用的預設值變更為自訂值。在 Managed Airflow 中,部分設定選項遭到封鎖,因此您無法變更相關設定值。
自訂外掛程式:您可以將自訂 Airflow 外掛程式 (例如自訂、內部 Apache Airflow 運算子、掛鉤、感應器或介面) 安裝到 Managed Airflow 環境。
Python 依附元件:您可以從環境中的 Python Package Index 或私人 Package Repository (包括 Artifact Registry Package Repository) 安裝 Python 依附元件。如果依附元件不在套件索引中,您也可以使用外掛程式。
記錄及監控 DAG、Airflow 元件和 Managed Airflow 環境:
您可以在 Airflow 網頁介面和環境 bucket 的
logs資料夾中,查看與單一 DAG 工作相關聯的 Airflow 記錄。Managed Airflow 環境的 Cloud Monitoring 記錄和環境指標。
Managed Airflow 的存取控管
您可以在 Cloud de Confiance 專案層級管理安全性,並指派 IAM 角色,允許個別使用者修改或建立環境。如果使用者無法存取您的專案,或沒有適當的 Managed Airflow IAM 角色,就無法存取任何環境。
除了 IAM 之外,您也可以使用 Airflow UI 存取控管,這是以 Apache Airflow 存取控管模型為基礎。
如要進一步瞭解 Managed Airflow 的安全防護功能,請參閱「Managed Airflow 安全總覽」。
環境網路
Managed Airflow 支援多種環境網路設定,並提供多種設定選項。舉例來說,在私人 IP 環境中,DAG 和 Airflow 元件會與公開網際網路完全隔離。
如要進一步瞭解 Managed Airflow 的網路功能,請參閱個別網路功能的頁面:
Managed Airflow 的其他功能
其他 Managed Airflow 功能包括:
常見問題
Managed Airflow 使用哪個版本的 Apache Airflow?
Managed Airflow 環境是以 Managed Airflow 映像檔為基礎。建立環境時,您可以選取特定 Airflow 版本的映像檔:
- Managed Airflow (第 3 代) 支援 Airflow 2 和 Airflow 3。
您可以控管環境的 Apache Airflow 版本。您可以決定將環境升級至較新版本的 Managed Airflow 映像檔。每個 Managed Airflow 版本都支援多個 Apache Airflow 版本。
可以使用原生 Airflow UI 和 CLI 嗎?
您可以存取環境的 Apache Airflow 網頁介面。每個環境都有專屬的 Airflow UI。如要進一步瞭解如何存取 Airflow UI,請參閱「Airflow 網頁介面」。
如要在環境中執行 Airflow CLI 指令,請使用 gcloud 指令。如要進一步瞭解如何在 Managed Airflow 環境中執行 Airflow CLI 指令,請參閱「Airflow 指令列介面」。
可以使用自己的資料庫做為 Airflow 資料庫嗎?
Managed Airflow 會使用代管資料庫服務,做為 Airflow 資料庫。無法使用使用者提供的資料庫做為 Airflow 資料庫。
可以使用自己的叢集做為 Managed Airflow 叢集嗎?
Managed Airflow 會使用 Google Kubernetes Engine 服務,建立、管理及刪除執行 Airflow 元件的環境叢集。這些叢集完全由 Managed Airflow 管理。
您無法根據自行管理的 Google Kubernetes Engine 叢集,建構 Managed Airflow 環境。
我可以使用自己的 Container Registry 嗎?
Managed Airflow 會使用 Artifact Registry 服務,管理 Managed Airflow 環境使用的容器映像檔存放區。無法替換為使用者提供的 Container Registry。
Managed Airflow 環境是可用區還是區域資源?
建立環境時,您必須指定區域:
- 高彈性 (高可用性) Managed Airflow 環境具有多可用區 Airflow 資料庫和多可用區 Airflow 執行層。高彈性環境會在所選區域的至少兩個可用區中運作。Managed Airflow 會自動在可用區之間分配環境元件。儲存 Airflow 資料庫的 Cloud SQL 元件,在所選區域的可用區之間,設有主要執行個體和待命執行個體。