Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Halaman ini menjelaskan cara mentransfer DAG, data, dan konfigurasi dari lingkungan Cloud Composer 1 dan Airflow 1 yang ada ke Cloud Composer 2 dan Airflow 2.
Panduan migrasi ini menggunakan fitur Snapshot.
Panduan migrasi lainnya
Dari | Ke | Metode | Panduan |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | Secara berdampingan, menggunakan skrip migrasi | Panduan migrasi skrip |
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 ini |
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 |
Sebelum memulai
Snapshot didukung di Cloud Composer 2 versi 2.0.9 dan yang lebih baru. Cloud Composer 1 mendukung penyimpanan snapshot lingkungan di 1.18.5.
Cloud Composer mendukung migrasi secara berdampingan dari Cloud Composer 1 ke Cloud Composer 2. Anda tidak dapat mengupgrade dari Cloud Composer 1 ke Cloud Composer 2 di tempat.
Periksa daftar perbedaan antara Cloud Composer 1 dan Cloud Composer 2.
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.
Karena Cloud Composer 2 menggunakan Airflow 2, migrasi mencakup pengalihan DAG dan konfigurasi lingkungan Anda ke Airflow 2. Lihat panduan migrasi dari Airflow 1 ke Airflow 2 untuk mendapatkan informasi tentang perubahan yang tidak kompatibel antara Airflow 1 dan Airflow 2 di Cloud Composer.
Dalam panduan ini, Anda menggabungkan migrasi ke Airflow 2 dan migrasi ke Cloud Composer 2 dalam satu prosedur migrasi. Dengan cara ini, Anda tidak perlu bermigrasi ke lingkungan Cloud Composer 1 dengan Airflow 2 sebelum bermigrasi ke Cloud Composer 2.
Langkah 1: Upgrade ke Airflow 1.10.15
Jika lingkungan Anda menggunakan versi Airflow yang lebih lama dari 1.10.15, upgrade lingkungan Anda ke versi Cloud Composer yang menggunakan Airflow 1.10.15 dan mendukung snapshot.
Langkah 2: Periksa kompatibilitas dengan Airflow 2
Untuk memeriksa potensi konflik dengan Airflow 2, lihat panduan Upgrade ke Airflow 2.0+ di bagian tentang mengupgrade DAG.
Salah satu masalah umum yang mungkin Anda temui terkait dengan jalur impor yang tidak kompatibel. Untuk mengetahui informasi selengkapnya tentang cara menyelesaikan masalah kompatibilitas ini, di panduan Mengupgrade ke Airflow 2.0+, lihat bagian tentang penyedia backport.
Langkah 3: Pastikan DAG Anda siap untuk Airflow 2
Sebelum mentransfer DAG ke lingkungan Cloud Composer 2, pastikan bahwa:
DAG Anda berhasil dijalankan dan tidak ada masalah kompatibilitas yang tersisa.
DAG Anda menggunakan pernyataan impor yang benar.
Misalnya, pernyataan impor baru untuk
BigQueryCreateDataTransferOperator
dapat terlihat seperti ini:from airflow.providers.google.cloud.operators.bigquery_dts \ import BigQueryCreateDataTransferOperator
DAG Anda telah diupgrade untuk Airflow 2. Perubahan ini kompatibel dengan Airflow 1.10.14 dan versi yang lebih baru.
Langkah 4: Jeda DAG di lingkungan Cloud Composer 1
Untuk menghindari duplikasi eksekusi DAG, jeda semua DAG di lingkungan Cloud Composer 1 sebelum menyimpan snapshot-nya.
Anda dapat menggunakan salah satu opsi berikut:
Di antarmuka web Airflow, buka DAG dan jeda semua DAG secara manual.
Gunakan skrip composer_dags untuk menjeda semua DAG:
python3 composer_dags.py --environment COMPOSER_1_ENV \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ --operation pause
Ganti:
COMPOSER_1_ENV
dengan nama lingkungan Cloud Composer 1 Anda.PROJECT_ID
dengan Project ID.COMPOSER_1_LOCATION
dengan region tempat lingkungan berada.
Langkah 5: Simpan snapshot lingkungan Cloud Composer 1 Anda
Konsol
Buat snapshot lingkungan Anda:
Di Google Cloud console, buka halaman Environments.
Dalam daftar lingkungan, klik nama lingkungan Cloud Composer 1 Anda. Halaman Environment details akan terbuka.
Klik Create snapshot.
Dalam dialog Buat snapshot, klik Kirim. Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Cloud Composer 1, tetapi Anda dapat memilih lokasi lain jika mau.
Tunggu hingga Cloud Composer membuat snapshot.
gcloud
Dapatkan URI bucket lingkungan Cloud Composer 1 Anda:
Jalankan perintah berikut:
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"
Ganti:
COMPOSER_1_ENV
dengan nama lingkungan Cloud Composer 1 Anda.COMPOSER_1_LOCATION
dengan region tempat lingkungan berada.
Di output, hapus folder
/dags
. Hasilnya adalah URI bucket lingkungan Cloud Composer 1 Anda.Misalnya, ubah
gs://us-central1-example-916807e1-bucket/dags
menjadigs://us-central1-example-916807e1-bucket
.
Buat snapshot lingkungan Cloud Composer 1 Anda:
gcloud composer environments snapshots save \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
Ganti:
COMPOSER_1_ENV
dengan nama lingkungan Cloud Composer 1 Anda.COMPOSER_1_LOCATION
dengan region tempat lingkungan Cloud Composer 1 berada.COMPOSER_1_SNAPSHOTS_FOLDER
dengan URI bucket lingkungan Cloud Composer 1 Anda. Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Cloud Composer 1, tetapi Anda dapat memilih lokasi lain jika mau. Jika Anda menentukan lokasi kustom, akun layanan kedua lingkungan harus memiliki izin baca dan tulis untuk lokasi yang ditentukan.
Langkah 6: Buat lingkungan Cloud Composer 2
Buat lingkungan Cloud Composer 2. Anda dapat memulai dengan preset lingkungan yang sesuai dengan perkiraan permintaan resource Anda, lalu menskalakan dan mengoptimalkan lingkungan lebih lanjut.
Anda tidak perlu menentukan penggantian konfigurasi dan variabel lingkungan, karena Anda akan menggantinya nanti saat memuat snapshot lingkungan Cloud Composer 1.
Beberapa opsi konfigurasi dari Airflow 1 menggunakan nama dan bagian yang berbeda di Airflow 2. Untuk mengetahui informasi selengkapnya, lihat Perubahan konfigurasi.
Langkah 7: Muat snapshot ke lingkungan Cloud Composer 2 Anda
Konsol
Untuk memuat snapshot ke lingkungan Cloud Composer 2 Anda:
Di Google Cloud console, buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Cloud Composer 2 Anda. Halaman Environment details akan terbuka.
Klik Load snapshot.
Pada dialog Muat snapshot, klik Jelajahi.
Pilih folder yang berisi snapshot. Jika Anda menggunakan lokasi default untuk panduan ini, folder ini berada di bucket lingkungan Cloud Composer 1 Anda di folder
/snapshots
, dan namanya adalah stempel waktu operasi penyimpanan snapshot. Contoh,us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00
.Klik Load dan tunggu hingga Cloud Composer memuat snapshot.
gcloud
Memuat snapshot lingkungan Cloud Composer 1 ke lingkungan Cloud Composer 2:
gcloud composer environments snapshots load \
COMPOSER_2_ENV \
--location COMPOSER_2_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Ganti:
COMPOSER_2_ENV
dengan nama lingkungan Cloud Composer 2 Anda.COMPOSER_2_LOCATION
dengan region tempat lingkungan Cloud Composer 2 berada.SNAPSHOT_PATH
dengan URI bucket lingkungan Cloud Composer 1 Anda, diikuti dengan jalur ke snapshot. Misalnya,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.
Langkah 8: Lanjutkan DAG di lingkungan Cloud Composer 2
Anda dapat menggunakan salah satu opsi berikut:
Di antarmuka web Airflow, buka DAG dan batalkan jeda semua DAG secara manual satu per satu.
Gunakan skrip composer_dags untuk membatalkan jeda semua DAG:
python3 composer_dags.py --environment COMPOSER_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation unpause
Ganti:
COMPOSER_2_ENV
dengan nama lingkungan Cloud Composer 2 Anda.PROJECT_ID
dengan Project ID.COMPOSER_2_LOCATION
dengan region tempat lingkungan berada.
(Airflow versi 2.9.1 dan yang lebih baru) Jika terjadi error kuota saat membatalkan penangguhan sejumlah besar DAG, Anda dapat menggunakan perintah CLI Airflow berikut untuk membatalkan penangguhan semua DAG sekaligus:
gcloud composer environments run COMPOSER_2_ENV dags unpause \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ -- -y --treat-dag-id-as-regex ".*"
(Versi Airflow sebelum 2.9.1) Jika terjadi error kuota saat melanjutkan sejumlah besar DAG, Anda dapat melanjutkan DAG menggunakan Airflow REST API. Lihat juga Mencoba API dalam dokumentasi Airflow.
Langkah 9: Periksa 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 2 dan periksa apakah berhasil. Jika operasi DAG berhasil, jangan batalkan jedanya di lingkungan Cloud Composer 1; jika Anda melakukannya, operasi DAG untuk waktu dan tanggal yang sama akan terjadi di lingkungan Cloud Composer 1.
Jika operasi DAG tertentu gagal, coba memecahkan masalah DAG hingga berhasil dijalankan di Cloud Composer 2.
Langkah 10: Pantau lingkungan Cloud Composer 2 Anda
Setelah Anda mentransfer semua DAG dan konfigurasi ke lingkungan Cloud Composer 2, pantau potensi masalah, kegagalan operasi DAG, dan keseluruhan kesehatan lingkungan.
Jika lingkungan Cloud Composer 2 berjalan tanpa masalah selama jangka waktu yang cukup, pertimbangkan untuk menghapus lingkungan Cloud Composer 1.
Langkah berikutnya
- Memecahkan masalah DAG
- Memecahkan masalah pembuatan lingkungan
- Memecahkan masalah pembaruan lingkungan
- Menggunakan paket backport