Memigrasikan lingkungan ke Managed Airflow (Gen 2) (dari Airflow 2) menggunakan snapshot

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

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 pause
    

    Ganti:

    • COMPOSER_1_ENV dengan nama lingkungan Managed Airflow (Gen 1 Lama).
    • PROJECT_ID dengan Project ID.
    • COMPOSER_1_LOCATION dengan 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:

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Environments

  2. Dalam daftar lingkungan, klik nama lingkungan Managed Airflow (Gen 1 Lama). Halaman Environment details akan terbuka.

  3. Klik Create snapshot.

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

  5. Tunggu hingga Managed Airflow membuat snapshot.

gcloud

  1. Dapatkan URI bucket lingkungan Managed Airflow (Gen 1 Lama):

    1. 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 Managed Airflow (Gen 1 Lama).
      • COMPOSER_1_LOCATION dengan region tempat lingkungan berada.
    2. Di output, hapus folder /dags. Hasilnya adalah URI bucket lingkungan Managed Airflow (Gen 1 Lama) Anda.

      Misalnya, ubah gs://us-central1-example-916807e1-bucket/dags menjadi gs://us-central1-example-916807e1-bucket.

  2. 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_ENV dengan nama lingkungan Managed Airflow (Gen 1 Lama).
    • COMPOSER_1_LOCATION dengan region tempat lingkungan Managed Airflow (Legacy Gen 1) berada.
    • COMPOSER_1_SNAPSHOTS_FOLDER dengan 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:

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Environments

  2. Di daftar lingkungan, klik nama lingkungan Managed Airflow (Gen 2) Anda. Halaman Environment details akan terbuka.

  3. Klik Load snapshot.

  4. Pada dialog Muat snapshot, klik Jelajahi.

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

  6. 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_ENV dengan nama lingkungan Managed Airflow (Gen 2) Anda.
  • COMPOSER_2_LOCATION dengan region tempat lingkungan Managed Airflow (Gen 2) berada.
  • SNAPSHOT_PATH dengan 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 unpause
    

    Ganti:

    • COMPOSER_2_ENV dengan nama lingkungan Managed Airflow (Gen 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 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

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

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