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) baru menggunakan skrip migrasi.

Dari Ke Metode Panduan
Managed Airflow (Gen 3), Airflow 2 Managed Airflow (Gen 3), Airflow 3 Transfer manual berdampingan Panduan migrasi manual
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Berdampingan, menggunakan skrip migrasi Panduan ini
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 3) Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Transfer manual berdampingan Panduan migrasi manual
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Transfer manual berdampingan Panduan migrasi manual
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Legacy Gen 1), Airflow 2 Transfer manual berdampingan 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). Skrip ini menggunakan snapshot lingkungan untuk mentransfer konfigurasi lingkungan ke lingkungan baru.

Skrip ini 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 tidak dijeda nanti.

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

  5. Memuat snapshot ke lingkungan Managed Airflow (Gen 3).

    Skrip ini 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 hal ini, Anda dapat menyesuaikan konfigurasi lingkungan Managed Airflow (Gen 2) untuk mengatasi konflik, atau melakukan migrasi tanpa skrip migrasi dan melewati pemuatan paket PyPI kustom, variabel lingkungan, atau penggantian konfigurasi Airflow saat Anda memuat snapshot.

  6. Tidak menjeda DAG di lingkungan Managed Airflow (Gen 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 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 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 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 versi 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 di 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 jumlah besar.

Melakukan migrasi ke Managed Airflow (Gen 3)

Bagian ini menjelaskan proses migrasi menggunakan skrip migrasi.

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

Memastikan DAG Anda kompatibel dengan Managed Airflow (Gen 3)

Pastikan DAG Anda kompatibel dengan Managed Airflow (Gen 3) dengan mengikuti saran berikut:

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 atasi 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 gcloud CLI dan utilitas curl. Pastikan kedua utilitas tersebut diinstal di komputer Anda.

Mendownload skrip

Download skrip migrasi (composer_migrate.py) dari repositorinya di GitHub.

Melakukan otorisasi di gcloud CLI

Lakukan 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 menggunakan pratinjau ini 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 versi yang lebih baru dari 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.

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 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 versi yang lebih baru dari 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 proses DAG dijadwalkan pada waktu yang tepat.

  3. Tunggu hingga proses DAG terjadi di lingkungan Managed Airflow (Gen 3) dan periksa apakah proses tersebut 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).

  4. Jika proses 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, proses DAG yang gagal, dan kondisi lingkungan secara keseluruhan.

Jika lingkungan Managed Airflow (Gen 3) berjalan tanpa masalah dalam jangka waktu yang cukup lama, pertimbangkan untuk menghapus lingkungan Managed Airflow (Gen 2).

Langkah berikutnya