Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Halaman ini menjelaskan cara memigrasikan DAG, data, dan konfigurasi dari lingkungan Managed Airflow (Gen 2) yang ada ke lingkungan Managed Airflow (Gen 3) yang baru menggunakan skrip migrasi.
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 (Generasi 3) | Secara berdampingan, menggunakan skrip migrasi | Panduan ini |
| Managed Airflow (Generasi 2) | Managed Airflow (Generasi 3) | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
| Managed Airflow (Generasi 1 Lama), Airflow 2 | Managed Airflow (Generasi 3) | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
| Managed Airflow (Generasi 1 Lama), Airflow 2 | Managed Airflow (Generasi 2) | Berdampingan, menggunakan snapshot | Panduan migrasi snapshot |
| 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 |
Tentang skrip migrasi
Skrip migrasi adalah skrip Python untuk migrasi berdampingan yang mengotomatiskan proses migrasi dari Managed Airflow (Gen 2) ke Managed Airflow (Gen 3). Fitur ini menggunakan snapshot lingkungan untuk mentransfer konfigurasi lingkungan ke lingkungan baru.
Skrip akan melakukan tindakan berikut:
Mendapatkan konfigurasi lingkungan Managed Airflow (Gen 2).
Membuat lingkungan Managed Airflow (Gen 3) dengan konfigurasi yang cocok dengan konfigurasi yang diperoleh.
Karena lingkungan Managed Airflow (Gen 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 Managed Airflow (Gen 2) satu per satu. Hanya DAG yang tidak dijeda di lingkungan Managed Airflow (Gen 2) yang akan diaktifkan kembali nanti.
Menyimpan snapshot lingkungan Managed Airflow (Gen 2) sumber. Snapshot disimpan di lokasi default untuk snapshot, yaitu bucket lingkungan Managed Airflow (Gen 2).
Memuat snapshot ke lingkungan Managed Airflow (Gen 3).
Skrip tidak memeriksa kompatibilitas paket PyPI kustom, variabel lingkungan, dan penggantian opsi konfigurasi Airflow dengan lingkungan Managed Airflow (Gen 3).
Jika terjadi konflik, migrasi akan gagal setelah lingkungan Managed Airflow (Gen 3) dibuat, selama proses pemuatan snapshot. Dalam kasus ini, Anda dapat menyesuaikan konfigurasi lingkungan Managed Airflow (Gen 2) untuk mengatasi 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 Managed Airflow (Gen 3). Jika beberapa DAG sudah dijeda sebelum Anda menjalankan skrip, DAG tersebut akan tetap dijeda.
Skrip memiliki batasan berikut:
Skrip ini selalu membuat lingkungan Managed Airflow (Gen 3) baru. Snapshot tidak dapat dimuat ke lingkungan Managed Airflow (Gen 3) yang sudah ada. Untuk melakukannya, Anda dapat melakukan migrasi menggunakan snapshot, tanpa menggunakan skrip migrasi.
Skrip ini membuat lingkungan Managed Airflow (Gen 3) hanya di region dan project yang sama dengan lingkungan Managed Airflow (Gen 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 Managed Airflow (Gen 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 Managed Airflow (Gen 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/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.
Bermigrasi ke Managed Airflow (Generasi 3)
Bagian ini menjelaskan proses migrasi menggunakan skrip migrasi.
Periksa perbedaan antara Managed Airflow (Gen 2) dan Managed Airflow (Gen 3)
Periksa daftar perbedaan antara Managed Airflow (Gen 2) dan Managed Airflow (Gen 3).
Pastikan lingkungan Anda tidak menggunakan fitur yang belum tersedia di Managed Airflow (Gen 3) dan Anda memahami cara menggunakan dan mengonfigurasi fitur khusus untuk Managed Airflow (Gen 3).
Pastikan DAG Anda kompatibel dengan Managed Airflow (Gen 3)
Pastikan DAG Anda kompatibel dengan Managed Airflow (Gen 3) dengan mengikuti saran berikut:
Daftar paket di lingkungan Managed Airflow (Gen 3) dapat berbeda dengan di lingkungan Managed Airflow (Gen 2) Anda. Hal ini dapat memengaruhi kompatibilitas DAG Anda dengan Managed Airflow (Gen 3).
Di Managed Airflow (Gen 3), cluster lingkungan berada di project tenant. Pastikan DAG Anda kompatibel dengan perubahan ini. Secara khusus, workload
KubernetesPodOperatorkini diskalakan secara independen dari lingkungan Anda dan konfigurasi afinitas Pod tidak dapat digunakan.
Memeriksa kompatibilitas konfigurasi
Anda dapat melakukan pemeriksaan upgrade untuk melihat apakah konfigurasi lingkungan Managed Airflow (Gen 2) Anda kompatibel dengan Managed Airflow (Gen 3). Sebaiknya selesaikan semua konflik pemblokiran yang dilaporkan oleh pemeriksaan ini sebelum memulai migrasi.
Menginstal dependensi skrip
Skrip ini memerlukan Python versi 3.8 dan versi yang lebih baru.
Skrip migrasi menggunakan utilitas gcloud CLI dan
curl. Pastikan kedua utilitas 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 Managed Airflow (Gen 3) sebelum melakukan migrasi. Anda dapat menggunakannya untuk melihat bagaimana konfigurasi lingkungan Managed Airflow (Gen 2) sesuai dengan Managed Airflow (Gen 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 Managed Airflow (Gen 2) Anda.LOCATION: region tempat lingkungan Managed Airflow (Gen 2) berada. Lingkungan Managed Airflow (Gen 3) akan dibuat di region yang sama.COMPOSER_3_AIRFLOW_VERSION: versi Airflow dari lingkungan Managed Airflow (Gen 3). Versi ini harus sama atau lebih baru dengan versi di lingkungan Managed Airflow (Gen 2) dan harus salah satu versi yang tersedia di Managed Airflow (Gen 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 Managed Airflow (Gen 2) yang ingin Anda migrasikan dalam kondisi baik.
Jika lingkungan Anda tidak dalam kondisi baik, proses migrasi akan gagal setelah membuat lingkungan Managed Airflow (Gen 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 Managed Airflow (Gen 2) Anda.LOCATION: region tempat lingkungan Managed Airflow (Gen 2) berada. Lingkungan Managed Airflow (Gen 3) akan dibuat di region yang sama.COMPOSER_3_AIRFLOW_VERSION: versi Airflow dari lingkungan Managed Airflow (Gen 3). Versi ini harus sama atau lebih baru dengan versi di lingkungan Managed Airflow (Gen 2) dan harus salah satu versi yang tersedia di Managed Airflow (Gen 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 berjalan di lingkungan Managed Airflow (Gen 3) dan periksa apakah DAG berhasil. Jika proses DAG berhasil, jangan batalkan jedanya di lingkungan Managed Airflow (Gen 2); jika Anda melakukannya, proses DAG untuk waktu dan tanggal yang sama akan terjadi di lingkungan Managed Airflow (Gen 2) Anda.
Jika operasi DAG tertentu gagal, coba pecahkan masalah DAG hingga berhasil dijalankan di Managed Airflow (Gen 3).
Memantau lingkungan Managed Airflow (Gen 3)
Pantau lingkungan Managed Airflow (Gen 3) untuk mengetahui potensi masalah, kegagalan DAG, dan kondisi keseluruhan lingkungan.
Jika lingkungan Managed Airflow (Gen 3) berjalan tanpa masalah selama jangka waktu yang cukup lama, pertimbangkan untuk menghapus lingkungan Managed Airflow (Gen 2).