Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Halaman ini menjelaskan cara mentransfer DAG, data, dan konfigurasi dari lingkungan Managed Airflow (Gen 1 Lama), Airflow 2 yang ada ke Managed Airflow (Gen 2), Airflow 2.
Panduan migrasi ini menggunakan fitur Snapshot.
Panduan migrasi lainnya
| Dari | Ke | Metode | Panduan |
|---|---|---|---|
| Managed Airflow (Generasi 3), Airflow 2 | Managed Airflow (Gen 3), Airflow 3 | Berdampingan, transfer manual | Panduan migrasi manual |
| Managed Airflow (Generasi 2) | Managed Airflow (Gen 3) | Secara berdampingan, menggunakan skrip migrasi | Panduan migrasi skrip |
| Managed Airflow (Generasi 2) | Managed Airflow (Gen 3) | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
| Managed Airflow (Generasi 1 Lama), Airflow 2 | Managed Airflow (Gen 3) | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
| Managed Airflow (Generasi 1 Lama), Airflow 2 | Managed Airflow (Generasi 2) | Berdampingan, menggunakan snapshot | Panduan ini |
| Managed Airflow (Generasi 1 Lama), Airflow 2 | Managed Airflow (Generasi 2) | Berdampingan, transfer manual | Panduan migrasi manual |
| Managed Airflow (Generasi 1 Lama), Airflow 1 | Managed Airflow (Gen 2), Airflow 2 | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
| Managed Airflow (Generasi 1 Lama), Airflow 1 | Managed Airflow (Gen 2), Airflow 2 | Berdampingan, transfer manual | Panduan migrasi manual |
| Managed Airflow (Generasi 1 Lama), Airflow 1 | Managed Airflow (Generasi 1 Lama), Airflow 2 | Berdampingan, transfer manual | Panduan migrasi manual |
Sebelum memulai
Snapshot didukung di Managed Airflow (Gen 2) versi 2.0.9 dan yang lebih baru. Managed Airflow (Gen 1 Lama) mendukung penyimpanan snapshot lingkungan di 1.18.5.
Managed Airflow mendukung migrasi berdampingan dari Managed Airflow (Gen 1 Lama) ke Managed Airflow (Gen 2). Anda tidak dapat mengupgrade dari Managed Airflow (Gen 1 Lama) ke Managed Airflow (Gen 2) di tempat.
Periksa daftar perbedaan antara Managed Airflow (Gen 1 Lama) dan Managed Airflow (Gen 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/datadalam 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.
Langkah 1: Jeda DAG di lingkungan Managed Airflow (Gen 1 Lama)
Untuk menghindari duplikasi eksekusi DAG, jeda semua DAG di lingkungan Managed Airflow (Legacy Gen 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 pauseGanti:
COMPOSER_1_ENVdengan nama lingkungan Managed Airflow (Gen 1 Lama).PROJECT_IDdengan Project ID.COMPOSER_1_LOCATIONdengan region tempat lingkungan berada.
(Airflow versi 2.9.1 dan yang lebih baru) Jika terjadi error kuota saat menjeda sejumlah besar DAG, Anda dapat menggunakan perintah CLI Airflow berikut untuk menjeda semua DAG sekaligus:
gcloud composer environments run COMPOSER_1_ENV dags pause \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Versi Airflow sebelum 2.9.1) Jika terjadi error kuota saat menjeda sejumlah besar DAG, Anda dapat menjeda DAG menggunakan Airflow REST API. Lihat juga Mencoba API dalam dokumentasi Airflow.
Langkah 2: Simpan snapshot lingkungan Managed Airflow (Gen 1 Lama) Anda
Konsol
Buat snapshot lingkungan Anda:
Di konsol Google Cloud , buka halaman Environments.
Dalam daftar lingkungan, klik nama lingkungan Managed Airflow (Gen 1 Lama). Halaman Environment details akan terbuka.
Klik Create snapshot.
Dalam dialog Buat snapshot, klik Kirim. Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Managed Airflow (Legacy Gen 1), tetapi Anda dapat memilih lokasi lain jika mau.
Tunggu hingga Managed Airflow membuat snapshot.
gcloud
Dapatkan URI bucket lingkungan Managed Airflow (Gen 1 Lama):
Jalankan perintah berikut:
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"Ganti:
COMPOSER_1_ENVdengan nama lingkungan Managed Airflow (Gen 1 Lama).COMPOSER_1_LOCATIONdengan region tempat lingkungan berada.
Di output, hapus folder
/dags. Hasilnya adalah URI bucket lingkungan Managed Airflow (Gen 1 Lama) Anda.Misalnya, ubah
gs://us-central1-example-916807e1-bucket/dagsmenjadigs://us-central1-example-916807e1-bucket.
Buat snapshot lingkungan Managed Airflow (Gen 1 Lama):
gcloud composer environments snapshots save \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"Ganti:
COMPOSER_1_ENVdengan nama lingkungan Managed Airflow (Gen 1 Lama).COMPOSER_1_LOCATIONdengan region tempat lingkungan Managed Airflow (Legacy Gen 1) berada.COMPOSER_1_SNAPSHOTS_FOLDERdengan URI bucket lingkungan Managed Airflow (Gen 1 Lama). Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Managed Airflow (Legacy Gen 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 3: Buat lingkungan Managed Airflow (Gen 2)
Buat lingkungan Managed Airflow (Gen 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 Managed Airflow (Generasi 1 Lama).
Langkah 4: Muat snapshot ke lingkungan Managed Airflow (Gen 2) Anda
Konsol
Untuk memuat snapshot ke lingkungan Managed Airflow (Gen 2) Anda:
Di konsol Google Cloud , buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Managed Airflow (Gen 2) Anda. Halaman Environment details akan terbuka.
Klik Load snapshot.
Pada dialog Muat snapshot, klik Jelajahi.
Pilih folder dengan snapshot. Jika Anda menggunakan lokasi default untuk panduan ini, folder ini berada di bucket lingkungan Managed Airflow (Gen 1 Lama) 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 Managed Airflow memuat snapshot.
gcloud
Memuat snapshot lingkungan Managed Airflow (Generasi 1 Lama) ke lingkungan Managed Airflow (Generasi 2):
gcloud composer environments snapshots load \
COMPOSER_2_ENV \
--location COMPOSER_2_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Ganti:
COMPOSER_2_ENVdengan nama lingkungan Managed Airflow (Gen 2) Anda.COMPOSER_2_LOCATIONdengan region tempat lingkungan Managed Airflow (Gen 2) berada.SNAPSHOT_PATHdengan URI bucket lingkungan Managed Airflow (Legacy Gen 1) Anda, diikuti dengan jalur ke snapshot. Contohnya,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.
Langkah 5: Lanjutkan DAG di lingkungan Managed Airflow (Gen 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 melanjutkan semua DAG:
python3 composer_dags.py --environment COMPOSER_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation unpauseGanti:
COMPOSER_2_ENVdengan nama lingkungan Managed Airflow (Gen 2) Anda.PROJECT_IDdengan Project ID.COMPOSER_2_LOCATIONdengan region tempat lingkungan berada.
(Airflow versi 2.9.1 dan yang lebih baru) Jika terjadi error kuota saat membatalkan jeda sejumlah besar DAG, Anda dapat menggunakan perintah CLI Airflow berikut untuk membatalkan jeda 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 6: 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 berjalan di lingkungan Managed Airflow (Gen 2) dan periksa apakah DAG berhasil. Jika eksekusi DAG berhasil, jangan batalkan jedanya di lingkungan Managed Airflow (Gen 1 Lama); jika Anda melakukannya, eksekusi DAG untuk waktu dan tanggal yang sama akan terjadi di lingkungan Managed Airflow (Gen 1 Lama) Anda.
Jika operasi DAG tertentu gagal, coba pecahkan masalah DAG hingga berhasil dijalankan di Managed Airflow (Gen 2).
Langkah 7: Pantau lingkungan Managed Airflow (Gen 2) Anda
Setelah Anda mentransfer semua DAG dan konfigurasi ke lingkungan Managed Airflow (Gen 2), pantau potensi masalah, kegagalan eksekusi DAG, dan kondisi keseluruhan lingkungan.
Jika lingkungan Managed Airflow (Gen 2) berjalan tanpa masalah selama jangka waktu yang cukup, pertimbangkan untuk menghapus lingkungan Managed Airflow (Gen 1 Lama).
Langkah berikutnya
- Pemecahan Masalah DAG
- Memecahkan masalah pembuatan lingkungan
- Memecahkan masalah update lingkungan
- Menggunakan paket backport