Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Halaman ini menjelaskan cara memigrasikan DAG, data, dan konfigurasi dari lingkungan Cloud Composer 2 yang ada ke lingkungan Cloud Composer 3 baru menggunakan skrip migrasi.
Panduan migrasi lainnya
Dari | Ke | Metode | Panduan |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | Secara berdampingan, menggunakan skrip migrasi | Panduan ini |
Cloud Composer 2 | Cloud Composer 3 | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
Cloud Composer 1, Airflow 2 | Cloud Composer 3 | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Berdampingan, transfer manual | Panduan migrasi manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Berdampingan, transfer manual | Panduan migrasi manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 1, Airflow 2 | Berdampingan, transfer manual | Panduan migrasi manual |
Tentang skrip migrasi
Skrip migrasi adalah skrip Python untuk migrasi berdampingan yang mengotomatiskan proses migrasi dari Cloud Composer 2 ke Cloud Composer 3. Fitur ini menggunakan snapshot lingkungan untuk mentransfer konfigurasi lingkungan ke lingkungan baru.
Skrip akan melakukan tindakan berikut:
Mendapatkan konfigurasi lingkungan Cloud Composer 2.
Membuat lingkungan Cloud Composer 3 dengan konfigurasi yang cocok dengan konfigurasi yang diperoleh.
Karena lingkungan Cloud Composer 3 memiliki arsitektur yang berbeda, beberapa parameter mungkin disesuaikan agar sesuai dengan perbedaan tersebut. Anda juga dapat menyesuaikan sebagian besar parameter lingkungan nanti.
Menjeda semua DAG di lingkungan Cloud Composer 2 satu per satu. Hanya DAG yang jedanya dibatalkan di lingkungan Cloud Composer 2 yang akan dibatalkan jedanya nanti.
Menyimpan snapshot lingkungan Cloud Composer 2 sumber. Snapshot disimpan di lokasi default untuk snapshot, yaitu bucket lingkungan Cloud Composer 2.
Memuat snapshot ke lingkungan Cloud Composer 3.
Skrip tidak memeriksa kompatibilitas paket PyPI kustom, variabel lingkungan, dan penggantian opsi konfigurasi Airflow dengan lingkungan Cloud Composer 3.
Jika terjadi konflik, migrasi akan gagal setelah lingkungan Cloud Composer 3 dibuat, selama proses pemuatan snapshot. Dalam hal ini, Anda dapat menyesuaikan konfigurasi lingkungan Cloud Composer 2 untuk menyelesaikan konflik, atau bermigrasi tanpa skrip migrasi dan melewati pemuatan paket PyPI kustom, variabel lingkungan, atau penggantian konfigurasi Airflow saat Anda memuat snapshot.
Membatalkan jeda DAG di lingkungan Cloud Composer 3. Jika beberapa DAG sudah dijeda sebelum Anda menjalankan skrip, DAG tersebut akan tetap dijeda.
Skrip memiliki batasan berikut:
Skrip selalu membuat lingkungan Cloud Composer 3 baru. Snapshot tidak dapat dimuat ke lingkungan Cloud Composer 3 yang sudah ada. Untuk melakukannya, Anda dapat melakukan migrasi menggunakan snapshot, tanpa menggunakan skrip migrasi.
Skrip ini hanya membuat lingkungan Cloud Composer 3 di region dan project yang sama dengan lingkungan Cloud Composer 2.
Anda hanya dapat memuat snapshot ke versi Airflow yang sama atau lebih baru. Misalnya, Anda tidak dapat memuat snapshot dari Airflow 2.10.2 ke Airflow 2.9.3.
Hanya lingkungan Cloud Composer 2 yang dapat dimigrasikan dengan skrip migrasi.
Sebelum memulai
Karena skrip migrasi membuat lingkungan, lalu menyimpan dan memuat snapshot, proses migrasi dapat memerlukan waktu lebih dari satu jam.
Skrip ini menggunakan snapshot. Snapshot didukung
di Cloud Composer 2 versi 2.0.9 dan yang lebih baru.
Akun Anda memerlukan peran IAM yang dapat membuat lingkungan, menyimpan snapshot, dan memuat snapshot.
Ukuran maksimum database Airflow yang mendukung snapshot adalah 20 GB. Jika database lingkungan Anda berukuran lebih dari 20 GB, kurangi ukuran database Airflow.
Jumlah total objek di folder
/dags
,/plugins
,dan/data
dalam bucket lingkungan harus kurang dari 100.000 untuk membuat snapshot.Jika Anda menggunakan mekanisme XCom untuk mentransfer file, pastikan Anda menggunakannya sesuai dengan panduan Airflow. Mentransfer file besar atau sejumlah besar file menggunakan XCom akan memengaruhi performa database Airflow dan dapat menyebabkan kegagalan saat memuat snapshot atau mengupgrade lingkungan Anda. Pertimbangkan untuk menggunakan alternatif seperti Cloud Storage untuk mentransfer data dalam volume besar.
Bermigrasi ke Cloud Composer 3
Bagian ini menjelaskan proses migrasi menggunakan skrip migrasi.
Memeriksa perbedaan antara Cloud Composer 2 dan Cloud Composer 3
Periksa daftar perbedaan antara Cloud Composer 2 dan Cloud Composer 3.
Pastikan lingkungan Anda tidak menggunakan fitur yang belum tersedia di Cloud Composer 3 dan Anda memahami cara menggunakan dan mengonfigurasi fitur khusus untuk Cloud Composer 3.
Pastikan DAG Anda kompatibel dengan Cloud Composer 3
Pastikan DAG Anda kompatibel dengan Cloud Composer 3 dengan mengikuti saran berikut:
Daftar paket di lingkungan Cloud Composer 3 dapat berbeda dengan di lingkungan Cloud Composer 2 Anda. Hal ini dapat memengaruhi kompatibilitas DAG Anda dengan Cloud Composer 3.
Di Cloud Composer 3, cluster lingkungan berada di project tenant. Pastikan DAG Anda kompatibel dengan perubahan ini. Khususnya, workload
KubernetesPodOperator
kini diskalakan secara independen dari lingkungan Anda dan konfigurasi afinitas Pod tidak dapat digunakan.
Menginstal dependensi skrip
Skrip ini memerlukan Python versi 3.8 dan yang lebih baru.
Skrip migrasi menggunakan utilitas gcloud CLI dan
curl
. Pastikan kedua utilitas tersebut diinstal di komputer Anda.
Mendownload skrip
Download skrip migrasi (composer_migrate.py
) dari
repositorinya di GitHub.
Melakukan otorisasi di gcloud CLI
Melakukan otorisasi di gcloud CLI:
gcloud auth login
Melihat pratinjau parameter lingkungan baru
Anda dapat melihat pratinjau parameter lingkungan Cloud Composer 3 sebelum melakukan migrasi. Anda dapat menggunakannya untuk melihat bagaimana konfigurasi lingkungan Cloud Composer 2 sesuai dengan Cloud Composer 3.
Penggantian opsi konfigurasi Airflow, paket PyPI kustom, dan variabel lingkungan dimuat dari snapshot lingkungan dan tidak ditampilkan dalam pratinjau.
Luaskan
Jalankan perintah berikut:
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
Ganti kode berikut:
PROJECT_ID
: Project ID.COMPOSER_2_ENV
: nama lingkungan Cloud Composer 2 Anda.LOCATION
: region tempat lingkungan Cloud Composer 2 berada. Lingkungan Cloud Composer 3 akan dibuat di region yang sama.COMPOSER_3_AIRFLOW_VERSION
: versi Airflow lingkungan Cloud Composer 3. Versi ini harus sama atau lebih baru dari versi di lingkungan Cloud Composer 2 dan harus merupakan salah satu versi yang tersedia di Cloud Composer 3.
Contoh:
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
Memeriksa kondisi lingkungan
Pastikan lingkungan Cloud Composer 2 yang ingin Anda migrasikan dalam kondisi baik.
Jika lingkungan Anda tidak dalam kondisi baik, proses migrasi akan gagal setelah membuat lingkungan Cloud Composer 3 baru karena snapshot tidak dapat dibuat.
Lihat Menggunakan dasbor pemantauan untuk mengetahui informasi selengkapnya tentang cara memeriksa kondisi lingkungan dan kondisi database.
Jalankan skrip migrasi
Jalankan perintah berikut:
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
Ganti kode berikut:
PROJECT_ID
: Project ID.COMPOSER_2_ENV
: nama lingkungan Cloud Composer 2 Anda.LOCATION
: region tempat lingkungan Cloud Composer 2 berada. Lingkungan Cloud Composer 3 akan dibuat di region yang sama.COMPOSER_3_AIRFLOW_VERSION
: versi Airflow lingkungan Cloud Composer 3. Versi ini harus sama atau lebih baru dari versi di lingkungan Cloud Composer 2 dan harus merupakan salah satu versi yang tersedia di Cloud Composer 3.
Memeriksa error DAG
Di antarmuka web Airflow, buka DAG dan periksa error sintaksis DAG yang dilaporkan.
Pastikan DAG berjalan sesuai jadwal pada waktu yang tepat.
Tunggu hingga DAG dijalankan di lingkungan Cloud Composer 3 dan periksa apakah berhasil. Jika DAG berhasil dijalankan, jangan lanjutkan di lingkungan Cloud Composer 2; jika Anda melakukannya, DAG akan dijalankan untuk waktu dan tanggal yang sama di lingkungan Cloud Composer 2 Anda.
Jika operasi DAG tertentu gagal, coba pecahkan masalah DAG hingga berhasil dijalankan di Cloud Composer 3.
Memantau lingkungan Cloud Composer 3
Pantau lingkungan Cloud Composer 3 Anda untuk mengetahui potensi masalah, kegagalan eksekusi DAG, dan kondisi keseluruhan lingkungan.
Jika lingkungan Cloud Composer 3 berjalan tanpa masalah selama jangka waktu yang cukup, pertimbangkan untuk menghapus lingkungan Cloud Composer 2.