儲存在 Cloud Storage 中的資料

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面說明 Cloud Composer 會在 Cloud Storage 中為環境儲存的資料。

當您建立環境時,Cloud Composer 會建立 Cloud Storage 值區,並將該值區與您的環境建立關聯。值區的名稱是由環境地區、名稱和一組隨機 ID 組成,例如 us-central1-b1-6efabcde-bucket

Cloud Composer 會將環境值區中的特定資料夾同步處理至在環境中執行的 Airflow 元件。舉例來說,如果您在環境值區中更新含有 Airflow DAG 程式碼的檔案,Airflow 元件也會收到更新版本。Cloud Composer 會使用 Cloud Storage FUSE 進行同步處理。

Cloud Storage 值區中的資料夾

資料夾 儲存空間路徑 對應目錄 說明
DAG gs://bucket-name/dags /home/airflow/gcs/dags 儲存環境的 DAG。
外掛程式 gs://bucket-name/plugins /home/airflow/gcs/plugins 儲存您的自訂外掛程式,例如自訂內部 Apache Airflow 運算子、掛鉤、感應器或介面。
資料 gs://bucket-name/data /home/airflow/gcs/data 儲存工作產生和使用的資料。
記錄 gs://bucket-name/logs /home/airflow/gcs/logs 儲存工作的 Airflow 記錄。您也可以在 Airflow 網頁介面和 Google Cloud 主控台的「Logs」分頁中查看記錄。

Cloud Composer 會以單向方式同步處理資料夾:從儲存桶到 Airflow 元件。單向同步處理表示在 Airflow 元件上,這些資料夾中的本機變更會遭到覆寫。

資料同步處理具有最終一致性。如要在運算子之間傳送訊息,請使用 XComs

容量注意事項

dags/plugins/data/ 資料夾中的資料會同步處理至 Airflow 排程器和工作站。

plugins/ 資料夾的內容會同步至 Airflow 網路伺服器。

放入這些資料夾的資料越多,Airflow 元件在本機儲存空間中占用的空間就越多。如果在 dags/plugins/ 中儲存過多資料,可能會中斷作業,並導致下列問題:

  • 工作站或排程器的本機儲存空間用盡,因此會遭到淘汰,因為元件的本機磁碟空間不足。

  • dags/plugins/ 資料夾中的檔案同步至 worker 和排程器需要花費很長的時間。

  • 無法將 dags/plugins/ 資料夾中的檔案同步至 worker 和排程器。舉例來說,您將 2 GB 檔案儲存在 dags/ 資料夾中,但 Airflow 工作站的本機磁碟只能容納 1 GB。在同步期間,worker 會耗盡本機儲存空間,因此無法完成同步作業。

DAG 和外掛程式資料夾

為了避免 DAG 執行失敗,請將 DAG、外掛程式和 Python 模組儲存在 dags/plugins/ 資料夾中,即使您的 Python 模組未包含 DAG 或外掛程式也一樣。

舉例來說,您可以使用參照 py_file Dataflow 管道的 DataFlowPythonOperatorpy_file 不含 DAG 或外掛程式,但仍必須儲存在 dags/plugins/ 資料夾中。

資料資料夾

在某些情況下,data/ 資料夾中的特定檔案會與特定 Airflow 元件同步處理。舉例來說,當 Cloud Composer 嘗試在以下情況下首次讀取特定檔案時:

  • DAG 剖析:在 DAG 剖析期間首次讀取檔案時,Cloud Composer 會將檔案同步至剖析 DAG 的排程器。

  • DAG 執行:在 DAG 執行期間首次讀取檔案時,Cloud Composer 會將檔案同步處理至執行執行作業的工作者。

Airflow 元件的本機儲存空間有限,因此建議您刪除下載的檔案,釋出元件的磁碟空間。請注意,如果您有同時下載相同檔案至單一 Airflow 工作站的並行工作,本機儲存空間用量也會暫時增加。

記錄資料夾

系統會使用 Cloud Storage API,將 logs/ 資料夾從 Airflow 工作站同步至環境的值區。

Cloud Storage API 配額會根據移動的資料量計算,因此系統執行的 Airflow 工作數量可能會增加 Cloud Storage API 用量:執行的工作越多,記錄檔就會越大。

與網路伺服器同步

plugins/ 資料夾會自動同步至網路伺服器,以便 Airflow UI 載入外掛程式。在 Cloud Composer 3 中,您可以視需要停用及啟用網路伺服器外掛程式,無須刪除環境值區中的檔案。

後續步驟