Bermigrasi ke Managed Airflow (Gen 3) dari Managed Airflow (Legacy Gen 1) (Airflow 2)

Managed Airflow (Generasi ke-3) | Managed Airflow (Generasi ke-2) | Managed Airflow (Generasi ke-1 Lama)

Halaman ini menjelaskan cara mentransfer DAG, data, dan konfigurasi dari lingkungan Managed Airflow (Generasi ke-1 Lama), Airflow 2 yang ada ke Managed Airflow (Generasi ke-3), Airflow 2 menggunakan snapshot.

Dari Ke Metode Panduan
Managed Airflow (Generasi ke-3), Airflow 2 Managed Airflow (Generasi ke-3), Airflow 3 Transfer manual berdampingan Panduan migrasi manual
Managed Airflow (Generasi ke-2) Managed Airflow (Generasi ke-3) Berdampingan, menggunakan skrip migrasi Panduan migrasi skrip
Managed Airflow (Generasi ke-2) Managed Airflow (Generasi ke-3) Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Managed Airflow (Generasi ke-1 Lama), Airflow 2 Managed Airflow (Generasi ke-3) Berdampingan, menggunakan snapshot Panduan ini
Managed Airflow (Generasi ke-1 Lama), Airflow 2 Managed Airflow (Generasi ke-2) Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Managed Airflow (Generasi ke-1 Lama), Airflow 2 Managed Airflow (Generasi ke-2) Transfer manual berdampingan Panduan migrasi manual
Managed Airflow (Generasi ke-1 Lama), Airflow 1 Managed Airflow (Generasi ke-2), Airflow 2 Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Managed Airflow (Generasi ke-1 Lama), Airflow 1 Managed Airflow (Generasi ke-2), Airflow 2 Transfer manual berdampingan Panduan migrasi manual
Managed Airflow (Generasi ke-1 Lama), Airflow 1 Managed Airflow (Generasi ke-1 Lama), Airflow 2 Transfer manual berdampingan Panduan migrasi manual

Sebelum memulai

  • Managed Airflow mendukung migrasi berdampingan dari Managed Airflow (Generasi ke-1 Lama) ke Managed Airflow (Generasi ke-3). Anda tidak dapat mengupgrade dari Managed Airflow (Generasi ke-1 Lama) ke Managed Airflow (Generasi ke-3) di tempat.

  • Periksa daftar perbedaan antara Managed Airflow (Generasi ke-1 Lama), Managed Airflow (Generasi ke-2), dan Managed Airflow (Generasi ke-3).

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

Pastikan DAG Anda kompatibel dengan Managed Airflow (Generasi ke-3)

Pastikan DAG Anda kompatibel dengan Managed Airflow (Generasi ke-3) dengan mengikuti saran berikut:

  • [Daftar paket][cc-versions] di lingkungan Managed Airflow (Generasi ke-3) dapat berbeda dengan lingkungan Managed Airflow (Generasi ke-1 Lama). Hal ini dapat memengaruhi kompatibilitas DAG Anda dengan Managed Airflow (Generasi ke-3).

  • Managed Airflow memuat penggantian konfigurasi, variabel lingkungan, dan paket PyPI dari snapshot lingkungan Managed Airflow (Generasi ke-1 Lama) ke Managed Airflow (Generasi ke-3) tanpa mengubah atau menyesuaikannya untuk kompatibilitas. Jika paket PyPI kustom menyebabkan konflik dependensi, Anda dapat melewati penginstalannya saat memuat snapshot.

  • Di Managed Airflow (Generasi ke-3), cluster lingkungan berada di project tenant. Pastikan DAG Anda kompatibel dengan perubahan ini. Secara khusus, KubernetesPodOperator workload kini diskalakan secara independen dari lingkungan Anda dan Anda tidak dapat menggunakan konfigurasi afinitas Pod.

  • Di Managed Airflow (Generasi ke-3), database Airflow tidak dapat diakses secara langsung. Pastikan DAG Anda kompatibel dengan perubahan ini.

Menjeda DAG di lingkungan Managed Airflow (Generasi ke-1 Lama)

Untuk menghindari DAG berjalan dua kali, jeda semua DAG di lingkungan Managed Airflow (Generasi ke-1 Lama) sebelum menyimpan snapshot-nya. Lewati DAG pemantauan aktivitas (airflow_monitoring), yang digunakan untuk tujuan pemantauan dan tidak disertakan dalam snapshot lingkungan.

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 (Generasi ke-1 Lama) Anda.
    • PROJECT_ID dengan ID Project.
    • 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 Airflow CLI 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 ".*"
    
  • (Airflow versi 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 di dokumentasi Airflow.

Menyimpan snapshot lingkungan Managed Airflow (Generasi ke-1 Lama)

Konsol

Buat snapshot lingkungan Anda:

  1. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

  2. Di daftar lingkungan, klik nama lingkungan Managed Airflow (Generasi ke-1 Lama) Anda. Halaman Environment details akan terbuka.

  3. Klik Create snapshot.

  4. Di dialog Create snapshot, klik Submit. Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Managed Airflow (Generasi ke-1 Lama), tetapi Anda dapat memilih lokasi lain, jika mau.

  5. Tunggu hingga Managed Airflow membuat snapshot.

gcloud

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

    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 (Generasi ke-1 Lama) Anda.
    • COMPOSER_1_LOCATION dengan region tempat lingkungan Managed Airflow (Generasi ke-1 Lama) berada.
    • COMPOSER_1_SNAPSHOTS_FOLDER dengan URI bucket lingkungan Managed Airflow (Generasi ke-1 Lama) Anda. Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Managed Airflow (Generasi ke-1 Lama), 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 apa pun yang tersedia bagi akun layanan kedua lingkungan.

Membuat lingkungan Managed Airflow (Generasi ke-3)

Buat lingkungan Managed Airflow (Generasi ke-3). Anda dapat memulai dengan preset lingkungan yang sesuai dengan perkiraan permintaan resource Anda, lalu menskalakan dan mengoptimalkan lingkungan Anda lebih lanjut.

Anda tidak perlu menentukan penggantian konfigurasi dan variabel lingkungan karena Anda akan menggantinya nanti saat memuat snapshot lingkungan Managed Airflow (Generasi ke-1 Lama).

Memuat snapshot ke lingkungan Managed Airflow (Generasi ke-3)

Konsol

Untuk memuat snapshot ke lingkungan Managed Airflow (Generasi ke-3):

  1. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

  2. Di daftar lingkungan, klik nama lingkungan Managed Airflow (Generasi ke-3) Anda. Halaman Environment details akan terbuka.

  3. Klik Load snapshot.

  4. Di dialog Load snapshot, klik Browse.

  5. Pilih folder yang berisi snapshot. Jika Anda menggunakan lokasi default untuk panduan ini, folder ini akan berada di bucket lingkungan Managed Airflow (Generasi ke-1 Lama) Anda di folder /snapshots, dan namanya adalah stempel waktu operasi penyimpanan snapshot. Misalnya, 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

Muat snapshot lingkungan Managed Airflow (Generasi ke-1 Lama) ke lingkungan Managed Airflow (Generasi ke-3):

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Ganti:

  • COMPOSER_3_ENV dengan nama lingkungan Managed Airflow (Generasi ke-3) Anda.
  • COMPOSER_3_LOCATION dengan region tempat lingkungan Managed Airflow (Generasi ke-3) berada.
  • SNAPSHOT_PATH dengan URI bucket lingkungan Managed Airflow (Generasi ke-1 Lama) Anda, diikuti dengan jalur ke snapshot. Misalnya, gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

Membatalkan jeda DAG di lingkungan Managed Airflow (Generasi ke-3)

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 membatalkan jeda semua DAG:

    python3 composer_dags.py --environment COMPOSER_3_ENV \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      --operation unpause
    

    Ganti:

    • COMPOSER_3_ENV dengan nama lingkungan Managed Airflow (Generasi ke-3) Anda.
    • PROJECT_ID dengan ID Project.
    • COMPOSER_3_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 Airflow CLI berikut untuk membatalkan jeda semua DAG sekaligus:

    gcloud composer environments run COMPOSER_3_ENV dags unpause \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Airflow versi sebelum 2.9.1) Jika terjadi error kuota saat membatalkan jeda sejumlah besar DAG, Anda dapat membatalkan jeda DAG menggunakan Airflow REST API. Lihat juga Mencoba API di dokumentasi Airflow.

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 DAG berjalan di lingkungan Managed Airflow (Generasi ke-3) dan periksa apakah DAG berhasil. Jika DAG berhasil berjalan, jangan batalkan jedanya di lingkungan Managed Airflow (Generasi ke-1 Lama); jika Anda melakukannya, DAG akan berjalan pada waktu dan tanggal yang sama di lingkungan Managed Airflow (Generasi ke-1 Lama).

  4. Jika DAG tertentu gagal berjalan, coba pecahkan masalah DAG hingga berhasil berjalan di Managed Airflow (Generasi ke-3).

Memantau lingkungan Managed Airflow (Generasi ke-3)

Setelah Anda mentransfer semua DAG dan konfigurasi ke lingkungan Managed Airflow (Generasi ke-3), pantau lingkungan tersebut untuk mengetahui potensi masalah, DAG yang gagal berjalan, dan kesehatan lingkungan secara keseluruhan.

Jika lingkungan Managed Airflow (Generasi ke-3) berjalan tanpa masalah dalam jangka waktu yang cukup lama, pertimbangkan untuk menghapus lingkungan Managed Airflow (Generasi ke-1 Lama).

Langkah berikutnya