Cloud Composer 總覽

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面簡要介紹 Airflow 和 DAG,並說明 Cloud Composer 的特色與功能。

如要進一步瞭解 Cloud Composer 版本中的新功能,請參閱版本資訊

關於 Cloud Composer

Cloud Composer 是全代管工作流程自動化調度管理服務,可讓您建立、排程、監控及管理散布於不同雲端和內部部署資料中心的工作流程管道。

Cloud Composer 以熱門的 Apache Airflow 開放原始碼專案為基礎,並採用 Python 程式設計語言。

使用 Cloud Composer 而非 Apache Airflow 的本機執行個體,您就能享有 Airflow 的最佳效益,且無需安裝或管理額外負擔。Cloud Composer 可協助您快速建立代管式 Airflow 環境,並使用 Airflow 原生工具 (例如強大的 Airflow 網頁介面和指令列工具),進而專注於工作流程而非基礎架構。

Cloud Composer 版本之間的差異

如要進一步瞭解 Cloud Composer 主要版本之間的差異,請參閱 Cloud Composer 版本管理總覽

Airflow 和 Airflow DAG (工作流程)

在資料分析中,工作流程代表一系列擷取、轉換、分析或利用資料的任務。在 Airflow 中,工作流程是使用 DAG 或「有向非循環圖」建立。

DAG 與工作之間的關係
圖 1. DAG 與工作之間的關係

DAG 是您要排程及執行的工作集合,並以反映工作關係和依附元件的方式進行排序。DAG 會在 Python 檔案中建立,並使用程式碼定義 DAG 結構。DAG 的目的是確保每項工作都能在正確的時間和順序執行。

DAG 中的每個工作 幾乎可以代表任何內容,例如,一個工作可能會執行下列任一函式:

  • 準備待擷取的資料
  • 監控 API
  • 傳送電子郵件
  • 執行管道

除了依時程表執行 DAG 以外,您也可以手動觸發 DAG,或在發生事件時觸發 DAG,例如當 Cloud Storage 值區有所異動時。詳情請參閱「排定 DAG 執行時間並觸發」。

如要進一步瞭解 DAG 和工作,請參閱 Apache Airflow 說明文件

Cloud Composer 環境

Cloud Composer 環境是以 Google Kubernetes Engine 為基礎的獨立 Airflow 部署項目,可透過 Airflow 的內建連接器與其他服務搭配運作。 Google Cloud您可以在任何支援的區域中,在單一 Google Cloud專案中建立一或多個環境

Cloud Composer 會佈建 Google Cloud 服務,以便執行您的工作流程和所有 Airflow 元件。環境的主要元件如下:

  • GKE 叢集:Airflow 排程器、觸發器和工作站等 Airflow 元件會以 GKE 工作負載形式,在為環境建立的單一叢集中執行,並負責處理及執行 DAG。

    叢集也會代管其他 Cloud Composer 元件,例如 Composer Agent 和 Airflow Monitoring,協助管理 Cloud Composer 環境、收集記錄檔並儲存在 Cloud Logging 中,以及收集指標並上傳至 Cloud Monitoring。

  • Airflow 網路伺服器:網路伺服器會執行 Apache Airflow UI。

  • Airflow 資料庫:用來存放 Apache Airflow 中繼資料的資料庫。

  • Cloud Storage 值區:Cloud Composer 會將 Cloud Storage 值區與環境建立關聯。這個值區也稱為環境的值區,會儲存環境的 DAG記錄、自訂外掛程式和資料。如要進一步瞭解環境的值區,請參閱「儲存在 Cloud Storage 中的資料」。

如要深入瞭解環境的元件,請參閱「環境架構」。

Cloud Composer 介面

Cloud Composer 提供介面,可用於管理環境、在環境中執行的 Airflow 執行個體,以及個別 DAG。

舉例來說,您可以在 Google Cloud 控制台、Google Cloud CLI、Cloud Composer API 或 Terraform 中建立並設定 Cloud Composer 環境。

舉例來說,您可以透過Google Cloud 主控台、原生 Airflow UI 或執行 Google Cloud CLI 和 Airflow CLI 指令管理 DAG

Cloud Composer 中的 Airflow 功能

使用 Cloud Composer 時,您可以管理及使用 Airflow 功能,例如:

Cloud Composer 中的存取權控管

您必須在 Google Cloud 專案層級管理安全性,並可指派 IAM 角色,允許個別使用者修改或建立環境。使用者如果沒有專案存取權或不具備適當 Cloud Composer IAM 角色,就無法存取您的任何環境。

除了 IAM 之外,您還可以使用 Airflow UI 存取權控管,這是以 Apache Airflow 存取權控管模型為基礎。

如要進一步瞭解 Cloud Composer 中的安全性功能,請參閱 Cloud Composer 安全性總覽

環境網路

Cloud Composer 支援多種環境的網路設定,並提供多種設定選項。舉例來說,在私人 IP 環境中,DAG 和 Airflow 元件會與公開網際網路完全隔離。

如要進一步瞭解 Cloud Composer 中的網路功能,請參閱個別網路功能的頁面:

常見問題

Cloud Composer 使用何種版本的 Apache Airflow?

Cloud Composer 環境是以 Cloud Composer 映像檔為基礎。建立環境時,您可以選取特定 Airflow 版本的映像檔:

  • Cloud Composer 3 支援 Airflow 2。
  • Cloud Composer 2 支援 Airflow 2。
  • Cloud Composer 1 支援 Airflow 1 和 Airflow 2。

您可以控制環境的 Apache Airflow 版本。您可以決定將環境升級至較新版本的 Cloud Composer 映像檔。每個 Cloud Composer 版本都支援多個 Apache Airflow 版本。

我可以使用原生 Airflow UI 和 CLI 嗎?

您可以存取環境的 Apache Airflow 網頁介面。每個環境都有專屬的 Airflow UI。如要進一步瞭解如何存取 Airflow UI,請參閱「Airflow 網頁介面」。

如要在環境中執行 Airflow CLI 指令,請使用 gcloud 指令。如要進一步瞭解如何在 Cloud Composer 環境中執行 Airflow CLI 指令,請參閱「Airflow 指令列介面」。

我可以使用自己的資料庫做為 Airflow 資料庫嗎?

Cloud Composer 會為 Airflow 資料庫使用代管資料庫服務。使用者提供的資料庫無法用於 Airflow 資料庫。

我可以使用自己的叢集做為 Cloud Composer 叢集嗎?

Cloud Composer 會使用 Google Kubernetes Engine 服務,建立、管理及刪除 Airflow 元件執行的環境叢集。這些叢集由 Cloud Composer 全權管理。

您無法根據自行管理的 Google Kubernetes Engine 叢集建構 Cloud Composer 環境。

我可以使用自己的容器登錄庫嗎?

Cloud Composer 會使用 Artifact Registry 服務來管理 Cloud Composer 環境使用的容器映像檔存放區。您無法使用使用者提供的容器登錄機制取代。

Cloud Composer 環境是區域性還是區域性?

Cloud Composer 1 環境是區域性的。

後續步驟