Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁說明如何使用遷移指令碼,將 DAG、資料和設定從現有的 Cloud Composer 2 環境遷移至新的 Cloud Composer 3 環境。
其他遷移指南
寄件者 | 收件者 | 方法 | 指南 |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | 並排使用遷移指令碼 | 本指南 |
Cloud Composer 2 | Cloud Composer 3 | 並排顯示,使用快照 | 快照遷移指南 |
Cloud Composer 1、Airflow 2 | Cloud Composer 3 | 並排顯示,使用快照 | 快照遷移指南 |
Cloud Composer 1、Airflow 2 | Cloud Composer 2 | 並排顯示,使用快照 | 快照遷移指南 |
Cloud Composer 1、Airflow 2 | Cloud Composer 2 | 並排、手動轉移 | 手動遷移指南 |
Cloud Composer 1、Airflow 1 | Cloud Composer 2、Airflow 2 | 並排顯示,使用快照 | 快照遷移指南 |
Cloud Composer 1、Airflow 1 | Cloud Composer 2、Airflow 2 | 並排、手動轉移 | 手動遷移指南 |
Cloud Composer 1、Airflow 1 | Cloud Composer 1、Airflow 2 | 並排、手動轉移 | 手動遷移指南 |
關於遷移指令碼
遷移指令碼是用於並行遷移的 Python 指令碼,可自動執行從 Cloud Composer 2 遷移至 Cloud Composer 3 的程序。它會使用環境快照將環境設定轉移至新環境。
指令碼會執行下列動作:
取得 Cloud Composer 2 環境的設定。
建立 Cloud Composer 3 環境,並使用與取得的設定相符的設定。
由於 Cloud Composer 3 環境採用不同的架構,因此部分參數可能會調整為符合這些差異。您也可以稍後調整大部分的環境參數。
逐一暫停 Cloud Composer 2 環境中的所有 DAG。日後,只有在 Cloud Composer 2 環境中未暫停的 DAG 才會恢復。
儲存來源 Cloud Composer 2 環境的快照。快照會儲存在快照的預設位置,也就是 Cloud Composer 2 環境的值區。
將快照載入至 Cloud Composer 3 環境。
指令碼不會檢查自訂 PyPI 套件、環境變數和 Airflow 設定選項覆寫值與 Cloud Composer 3 環境的相容性。
如果發生衝突,在建立 Cloud Composer 3 環境後,在載入快照的過程中,遷移作業就會失敗。在這種情況下,您可以調整 Cloud Composer 2 環境的設定來解決衝突,或是不使用遷移指令碼進行遷移,並在載入快照時略過載入自訂 PyPI 套件、環境變數或 Airflow 設定覆寫。
取消暫停 Cloud Composer 3 環境中的 DAG。如果某些 DAG 在您執行指令碼前已暫停,則會維持暫停狀態。
此指令碼有下列限制:
指令碼一律會建立新的 Cloud Composer 3 環境。您無法將快照載入現有的 Cloud Composer 3 環境。如要這樣做,您可以使用快照進行遷移,而不需要使用遷移指令碼。
這個指令碼只會在與 Cloud Composer 2 環境相同的區域和專案中建立 Cloud Composer 3 環境。
您只能將快照載入至相同或較新版本的 Airflow。舉例來說,您無法從 Airflow 2.10.2 載入快照至 Airflow 2.9.3。
只有 Cloud Composer 2 環境可以使用遷移指令碼進行遷移。
事前準備
由於遷移指令碼會建立環境,然後儲存及載入快照,因此遷移程序可能需要超過一小時的時間。
指令碼會使用快照。支援快照
在 Cloud Composer 2 2.0.9 以上版本中。
您的帳戶需要IAM 角色,才能建立環境、儲存快照和載入快照。
支援快照的 Airflow 資料庫大小上限為 20 GB。如果環境的資料庫大小超過 20 GB,請縮減 Airflow 資料庫的大小。
環境值區中
/dags
、/plugins
和/data
資料夾中的物件總數必須少於 100,000 個,才能建立快照。如果您使用 XCom 機制傳輸檔案,請務必按照 Airflow 的規範使用。使用 XCom 傳輸大型檔案或大量檔案會影響 Airflow 資料庫的效能,並可能導致載入快照或升級環境時失敗。請考慮使用 Cloud Storage 等替代方案來傳輸大量資料。
遷移至 Cloud Composer 3
本節將說明使用遷移指令碼的遷移程序。
查看 Cloud Composer 2 和 Cloud Composer 3 的差異
請查看 Cloud Composer 2 和 Cloud Composer 3 之間的差異清單。
請確認環境不會使用 Cloud Composer 3 尚未提供的功能,並熟悉如何使用及設定 Cloud Composer 3 專屬功能。
確認 DAG 與 Cloud Composer 3 相容
請按照以下建議,確保 DAG 與 Cloud Composer 3 相容:
Cloud Composer 3 環境中的套件清單,可能與 Cloud Composer 2 環境中的套件清單不同。這可能會影響 DAG 與 Cloud Composer 3 的相容性。
在 Cloud Composer 3 中,環境的叢集位於租用戶專案中。請確認 DAG 與這項變更相容。具體來說,
KubernetesPodOperator
工作負載現在會獨立於環境進行調整,因此無法使用 Pod 關聯設定。
安裝指令碼的依附元件
這個指令碼需要 Python 3.8 以上版本。
遷移指令碼會使用 gcloud CLI 和
curl
公用程式。確認電腦已安裝這兩種公用程式。
下載指令碼
從 GitHub 存放區下載遷移指令碼 (composer_migrate.py
)。
在 gcloud CLI 中授權
在 gcloud CLI 中授權:
gcloud auth login
預覽新環境的參數
您可以在遷移前預覽 Cloud Composer 3 環境的參數。您可以使用這個表格,瞭解 Cloud Composer 2 環境的設定如何對應至 Cloud Composer 3。
Airflow 設定選項覆寫、自訂 PyPI 套件和環境變數會從環境快照載入,不會顯示在預覽畫面中。
展開
執行下列指令:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
--dry_run
更改下列內容:
PROJECT_ID
:專案 ID。COMPOSER_2_ENV
:Cloud Composer 2 環境名稱。LOCATION
:Cloud Composer 2 環境所在的區域。Cloud Composer 3 環境會在相同的區域中建立。COMPOSER_3_AIRFLOW_VERSION
:Cloud Composer 3 環境的 Airflow 版本。這個版本必須與 Cloud Composer 2 環境相同或更新,且必須是 Cloud Composer 3 支援的版本之一。
範例:
python3 composer_migrate.py \
--project example-project \
--location us-central1 \
--source_environment example-composer-2-environment \
--target_environment example-composer-3-environment \
--target_airflow_version 2.10.2
檢查環境的健康狀態
請確認要遷移的 Cloud Composer 2 環境運作正常。
如果環境不健康,則在建立新的 Cloud Composer 3 環境後,遷移程序將會失敗,因為無法建立快照。
如要進一步瞭解如何檢查環境和資料庫的健康狀態,請參閱「使用監控資訊主頁」。
執行遷移指令碼
執行下列指令:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION
更改下列內容:
PROJECT_ID
:專案 ID。COMPOSER_2_ENV
:Cloud Composer 2 環境名稱。LOCATION
:Cloud Composer 2 環境所在的區域。Cloud Composer 3 環境會在相同的區域中建立。COMPOSER_3_AIRFLOW_VERSION
:Cloud Composer 3 環境的 Airflow 版本。這個版本必須與 Cloud Composer 2 環境相同或更新,且必須是 Cloud Composer 3 支援的版本之一。
檢查 DAG 錯誤
在 Airflow 網頁介面中,前往「DAG」,檢查是否有已回報的 DAG 語法錯誤。
檢查 DAG 是否在正確的時間排定執行。
等待 Cloud Composer 3 環境中的 DAG 執行作業,並檢查是否成功。如果 DAG 執行作業成功,請勿在 Cloud Composer 2 環境中取消暫停;如果這麼做,Cloud Composer 2 環境會在同一時間和日期執行 DAG。
如果特定 DAG 執行作業失敗,請嘗試針對 DAG 進行疑難排解,直到 DAG 在 Cloud Composer 3 中成功執行為止。
監控 Cloud Composer 3 環境
監控 Cloud Composer 3 環境,找出潛在問題、DAG 執行失敗情形,以及整體環境健康狀況。
如果 Cloud Composer 3 環境在一段時間內運作正常,請考慮刪除 Cloud Composer 2 環境。