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 | 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 | Transfer manual berdampingan | 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 | Transfer manual berdampingan | Panduan migrasi manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 1, Airflow 2 | Transfer manual berdampingan | Panduan migrasi manual |
Tentang skrip migrasi
Skrip migrasi adalah skrip Python untuk migrasi berdampingan yang otomatisasikan proses migrasi dari Cloud Composer 2 ke Cloud Composer 3. Alat 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 untuk mencocokkan 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 dijeda di lingkungan Cloud Composer 2 yang akan dijeda 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 ini 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.
Menghentikan jeda DAG di lingkungan Cloud Composer 3. Jika beberapa DAG sudah dijeda sebelum Anda menjalankan skrip, DAG tersebut akan tetap dijeda.
Skrip ini memiliki batasan berikut:
Skrip ini selalu membuat lingkungan Cloud Composer 3 baru. Anda tidak dapat memuat snapshot ke lingkungan Cloud Composer 3 yang ada. Untuk melakukannya, Anda dapat bermigrasi menggunakan snapshot, tanpa menggunakan skrip migrasi.
Skrip ini membuat lingkungan Cloud Composer 3 hanya di region dan project yang sama dengan lingkungan Cloud Composer 2.
Anda hanya dapat memuat snapshot ke Airflow versi yang sama atau yang 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 memerlukan lebih dari 20 GB, kurangi ukuran database Airflow.
Jumlah total objek dalam folder
/dags
,/plugins
,dan/data
di 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 serta 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. Secara khusus, workload
KubernetesPodOperator
kini diskalakan secara independen dari lingkungan Anda dan Anda tidak dapat menggunakan konfigurasi afinitas Pod.
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.
Memberikan otorisasi di gcloud CLI
Berikan otorisasi di gcloud CLI:
gcloud auth login
Melihat pratinjau parameter lingkungan baru
Anda dapat melihat pratinjau parameter lingkungan Cloud Composer 3 sebelum bermigrasi. 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 di 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 dari 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 keadaan baik.
Jika lingkungan Anda tidak sehat, proses migrasi akan gagal setelah membuat lingkungan Cloud Composer 3 baru karena Anda tidak akan dapat membuat snapshot.
Lihat Menggunakan dasbor pemantauan untuk mengetahui informasi selengkapnya tentang cara memeriksa kondisi lingkungan dan database.
Menjalankan 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 dari 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 DAG berhasil dijalankan. Jika DAG berhasil dijalankan, jangan hentikan jeda di lingkungan Cloud Composer 2; jika Anda melakukannya, DAG akan dijalankan untuk waktu dan tanggal yang sama di lingkungan Cloud Composer 2.
Jika DAG tertentu gagal dijalankan, 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 DAG berjalan, dan kondisi lingkungan secara keseluruhan.
Jika lingkungan Cloud Composer 3 berjalan tanpa masalah selama periode waktu yang memadai, pertimbangkan untuk menghapus lingkungan Cloud Composer 2.