Memigrasikan lingkungan ke Managed Airflow (Gen 3) (skrip migrasi)

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.

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:

  1. Mendapatkan konfigurasi lingkungan Managed Airflow (Gen 2).

  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.

  3. 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.

  4. Menyimpan snapshot lingkungan Managed Airflow (Gen 2) sumber. Snapshot disimpan di lokasi default untuk snapshot, yaitu bucket lingkungan Managed Airflow (Gen 2).

  5. 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.

  6. 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 /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 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 KubernetesPodOperator kini 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

  1. Di antarmuka web Airflow, buka DAG dan periksa error sintaksis DAG yang dilaporkan.

  2. Pastikan DAG berjalan sesuai jadwal pada waktu yang tepat.

  3. 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.

  4. 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).

Langkah berikutnya