儲存在 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 元件。舉例來說,在環境的 bucket 中更新 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 控制台的「記錄」分頁中查看。

Cloud Composer 會單向同步處理資料夾:從 Bucket 同步到 Airflow 元件。單向同步處理表示在本機對 Airflow 元件上的這些資料夾所做的變更會遭到覆寫。

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

容量注意事項

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

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

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

  • 工作站或排程器本機儲存空間不足,因此遭到逐出,原因是元件本機磁碟空間不足。

  • dags/plugins/ 資料夾將檔案同步到工作站和排程器需要很長時間。

  • 無法將 dags/plugins/ 資料夾中的檔案同步到工作人員和排程器。舉例來說,您在 dags/ 資料夾中儲存 2 GB 的檔案,但 Airflow 工作站的本機磁碟只能容納 1 GB。同步處理期間,工作人員的本機儲存空間不足,導致同步作業無法完成。

DAG 和外掛程式資料夾

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

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

資料夾

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

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

  • DAG 執行:在 DAG 執行期間首次讀取檔案時,Cloud Composer 會將檔案同步到執行作業的工作人員。

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

記錄資料夾

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

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

與網路伺服器同步

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

後續步驟