Memigrasikan lingkungan ke Managed Airflow (Gen 2) (dari Airflow 1) 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 1 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 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 ini
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.

  • Karena Managed Airflow (Gen 2) menggunakan Airflow 2, migrasi mencakup pengalihan DAG dan konfigurasi lingkungan Anda ke Airflow 2. Lihat panduan migrasi dari Airflow 1 ke Airflow 2 untuk mendapatkan informasi tentang perubahan yang tidak kompatibel antara Airflow 1 dan Airflow 2 di Managed Airflow.

  • Dalam panduan ini, Anda menggabungkan migrasi ke Airflow 2 dan migrasi ke Managed Airflow (Gen 2) dalam satu prosedur migrasi. Dengan cara ini, Anda tidak perlu bermigrasi ke lingkungan Managed Airflow (Gen 1 Lama) dengan Airflow 2 sebelum bermigrasi ke Managed Airflow (Gen 2).

Langkah 1: Upgrade ke Airflow 1.10.15

Jika lingkungan Anda menggunakan versi Airflow yang lebih lama dari 1.10.15, upgrade lingkungan Anda ke versi Managed Airflow yang menggunakan Airflow 1.10.15 dan mendukung snapshot.

Langkah 2: Periksa kompatibilitas dengan Airflow 2

Untuk memeriksa potensi konflik dengan Airflow 2, lihat panduan Upgrade ke Airflow 2.0+ di bagian tentang mengupgrade DAG.

Salah satu masalah umum yang mungkin Anda temui terkait dengan jalur impor yang tidak kompatibel. Untuk mengetahui informasi selengkapnya tentang cara menyelesaikan masalah kompatibilitas ini, di panduan Mengupgrade ke Airflow 2.0+, lihat bagian tentang penyedia backport.

Langkah 3: Pastikan DAG Anda siap untuk Airflow 2

Sebelum mentransfer DAG ke lingkungan Managed Airflow (Gen 2), pastikan bahwa:

  1. DAG Anda berhasil dijalankan dan tidak ada masalah kompatibilitas yang tersisa.

  2. DAG Anda menggunakan pernyataan impor yang benar.

    Misalnya, pernyataan impor baru untuk BigQueryCreateDataTransferOperator dapat terlihat seperti ini:

    from airflow.providers.google.cloud.operators.bigquery_dts \
        import BigQueryCreateDataTransferOperator
    
  3. DAG Anda telah diupgrade untuk Airflow 2. Perubahan ini kompatibel dengan Airflow 1.10.14 dan versi yang lebih baru.

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

Langkah 5: 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 6: 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).

Beberapa opsi konfigurasi dari Airflow 1 menggunakan nama dan bagian yang berbeda di Airflow 2. Untuk mengetahui informasi selengkapnya, lihat Perubahan konfigurasi.

Langkah 7: 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 8: 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 9: 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 10: 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