Managed Airflow (第 3 代) | Managed Airflow (第 2 代) | Managed Airflow (舊版第 1 代)
本頁面簡要介紹 Airflow 和 DAG,並說明 Managed Airflow 的功能和特色。
如要進一步瞭解 Managed Airflow 版本的新功能,請參閱「版本資訊」。
關於 Managed Airflow
Managed Airflow 是一項全代管工作流程自動化調度管理服務,可讓您建立、排程、監控及管理散布於不同雲端和地端部署資料中心的工作流程管道。
Managed Airflow 以熱門的 Apache Airflow 開放原始碼專案為基礎,並使用 Python 程式語言執行作業。
使用 Managed Airflow 而非 Apache Airflow 的本機執行個體,即可享有 Airflow 的優點,不必安裝或管理。透過 Managed Airflow,您可以快速建立 Managed 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,或在發生事件時觸發 DAG,例如當 Cloud Storage 值區有所異動時。詳情請參閱「排定及觸發 DAG」。
如要進一步瞭解 DAG 和工作,請參閱 Apache Airflow 說明文件。
Managed Airflow 環境
Managed Airflow 環境是以 Google Kubernetes Engine 為基礎的獨立 Airflow 部署項目,可透過 Airflow 的內建連接器與其他 Google Cloud 服務搭配運作。您可以在單一 Google Cloud專案中建立一或多個環境,且支援任何區域。
Managed Airflow 會佈建 Google Cloud 執行工作流程和所有 Airflow 元件的服務。環境的主要元件包括:
GKE 叢集:Airflow 排程器、觸發器和工作站等 Airflow 元件,會在為環境建立的單一叢集中,以 GKE 工作負載的形式執行,負責處理及執行 DAG。
叢集也會代管其他 Managed Airflow 元件,例如 Composer 代理程式和 Airflow 監控,有助於管理 Managed Airflow 環境、收集記錄並儲存在 Cloud Logging 中,以及收集指標並上傳至 Cloud Monitoring。
Airflow 網路伺服器:網路伺服器會執行 Apache Airflow UI。
Airflow 資料庫:用來存放 Apache Airflow 中繼資料的資料庫。
Cloud Storage bucket:Managed Airflow 會將 Cloud Storage bucket 與您的環境建立關聯。這個值區也稱為「環境的值區」,會儲存環境的 DAG、記錄、自訂外掛程式和資料。如要進一步瞭解環境的值區,請參閱「儲存在 Cloud Storage 中的資料」。
如要深入瞭解環境的元件,請參閱「環境架構」。
Managed Airflow 介面
Managed Airflow 提供介面,可管理環境、在環境中執行的 Airflow 執行個體,以及個別 DAG。
舉例來說,您可以在 Google Cloud 控制台、Google Cloud CLI、Cloud Composer API 或 Terraform 中建立及設定 Managed Airflow 環境。
舉例來說,您可以透過Google Cloud 控制台、原生 Airflow UI,或執行 Google Cloud CLI 和 Airflow CLI 指令,管理 DAG。
Managed Airflow 中的 Airflow 功能
使用 Managed Airflow 時,您可以管理及使用 Airflow 功能,例如:
Airflow DAG:您可以在 Google Cloud 控制台中新增、更新、移除或觸發 Airflow DAG,也可以使用原生 Airflow UI 執行這些操作。
Airflow 設定選項:您可以將 Managed Airflow 使用的預設值變更為自訂值。在 Managed Airflow 中,部分設定選項遭到封鎖,因此您無法變更相關設定值。
自訂外掛程式:您可以在 Managed Airflow 環境中安裝自訂 Airflow 外掛程式,例如自訂的內部 Apache Airflow 運算子、掛鉤、感應器或介面。
Python 依附元件:您可以在環境中或從私人套件存放區 (包括 Artifact Registry 存放區) 安裝 Python 套件索引中的 Python 依附元件。如果依附元件不在套件索引中,您也可以使用外掛程式。
記錄及監控 DAG、Airflow 元件和 Managed Airflow 環境:
您可以在 Airflow 網頁介面和環境的 bucket 中的
logs資料夾,查看與單一 DAG 工作相關聯的 Airflow 記錄。Managed Airflow 環境的Cloud Monitoring 記錄和環境指標。
Managed Airflow 中的存取控管機制
您必須在 Google Cloud 專案層級管理安全性,並可指派 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。
- Managed Airflow (第 2 代) 支援 Airflow 2。
- Managed Airflow (舊版第 1 代) 支援 Airflow 1 和 Airflow 2。
您可以控管環境的 Apache Airflow 版本。您可以決定升級環境,改用較新版本的 Managed Airflow 映像檔。每個受管理 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 環境。
可以使用自己的容器登錄檔嗎?
Managed Airflow 會使用 Artifact Registry 服務,管理 Managed Airflow 環境使用的容器映像檔存放區。您無法改用使用者提供的容器登錄檔。
Managed Airflow 環境是區域性還是地區性?
建立環境時,請指定環境的區域:
- 標準 Managed Airflow 環境具有區域 Airflow 資料庫和多區域 Airflow 執行層。Airflow 資料庫位於指定區域的其中一個可用區,而 Airflow 元件則分散在多個可用區之間。
- 高彈性 (高可用性) Managed Airflow 環境具有多可用區 Airflow 資料庫和多可用區 Airflow 執行層。高復原力環境至少會在所選區域的兩個可用區中執行。Managed Airflow 會自動在各個區域之間分配環境的元件。儲存 Airflow 資料庫的 Cloud SQL 元件,在所選區域的各個可用區中,都有一個主要執行個體和一個待命執行個體。