Memigrasikan lingkungan ke Cloud Composer 2 (dari Airflow 1) menggunakan snapshot

Cloud Composer 1 | Cloud Composer 2

Halaman ini menjelaskan cara mentransfer DAG, data, dan konfigurasi dari lingkungan Cloud Composer 1, Airflow 1 yang sudah ada ke Cloud Composer 2, dan Airflow 2.

Panduan migrasi ini menggunakan fitur Ringkasan.

Panduan migrasi lainnya

Dari Kepada Metode Panduan
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Berdampingan, menggunakan snapshot Panduan migrasi (snapshot)
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Berdampingan, menggunakan snapshot Panduan ini (snapshot)
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Transfer manual secara berdampingan Panduan migrasi manual
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Transfer manual secara berdampingan Panduan migrasi manual
Aliran Udara 1 Aliran Udara 2 Transfer manual secara berdampingan Panduan migrasi manual

Sebelum memulai

  • Snapshot didukung di Cloud Composer 2 versi 2.0.9 dan yang lebih baru. Cloud Composer 1 mendukung penyimpanan snapshot lingkungan di versi 1.18.5.

  • Cloud Composer mendukung migrasi berdampingan dari Cloud Composer 1 ke Cloud Composer 2. Anda tidak dapat mengupgrade dari Cloud Composer 1 ke Cloud Composer 2 sebagai gantinya.

  • Lihat daftar perbedaan antara Cloud Composer 1 dan Cloud Composer 2.

  • Ukuran maksimum database Airflow yang mendukung snapshot adalah 20 GB. Jika database lingkungan Anda memerlukan lebih dari 20 GB, kurangi ukuran database Airflow.

  • Karena Cloud Composer 2 menggunakan Airflow 2, migrasi yang dilakukan mencakup mengganti DAG dan konfigurasi lingkungan Anda ke Airflow 2. Baca panduan migrasi dari Airflow 1 ke Airflow 2 untuk mengetahui informasi tentang perubahan yang dapat menyebabkan gangguan antara Airflow 1 dan Airflow 2 di Cloud Composer.

  • Dalam panduan ini, Anda menggabungkan migrasi ke Airflow 2 dan migrasi ke Cloud Composer 2 dalam satu prosedur migrasi. Dengan cara ini, Anda tidak perlu bermigrasi ke lingkungan Cloud Composer 1 dengan Airflow 2 sebelum bermigrasi ke Cloud Composer 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 Cloud Composer yang menggunakan Airflow 1.10.15 dan mendukung snapshot.

Langkah 2: Periksa kompatibilitas dengan Airflow 2

Untuk memeriksa potensi konflik dengan Airflow 2, gunakan skrip pemeriksaan upgrade yang disediakan oleh Airflow di lingkungan Airflow 1.10.15 Anda yang ada.

gcloud

  1. Jalankan pemeriksaan upgrade melalui perintah gcloud composer environments run. Beberapa pemeriksaan upgrade yang relevan untuk Airflow 1.10.15 mandiri tidak relevan untuk Cloud Composer. Perintah berikut mengecualikan pemeriksaan ini.

    gcloud composer environments run \
        COMPOSER_1_ENV  \
        --location=COMPOSER_1_LOCATION \
        upgrade_check \
        -- --ignore VersionCheckRule --ignore LoggingConfigurationRule \
        --ignore PodTemplateFileRule --ignore SendGridEmailerMovedRule
    

    Ganti:

    • COMPOSER_1_ENV dengan nama lingkungan Airflow 1.10.15 Anda.
    • COMPOSER_1_LOCATION dengan wilayah tempat lingkungan berada.
  2. Periksa output perintah. Update skrip pemeriksaan melaporkan potensi masalah kompatibilitas di lingkungan yang sudah ada.

  3. Terapkan perubahan lain pada DAG, seperti yang dijelaskan dalam panduan Upgrade ke Airflow 2.0+, di bagian tentang mengupgrade DAG.

Langkah 3: Pastikan DAG Anda siap untuk Airflow 2

Sebelum mentransfer DAG ke lingkungan Cloud Composer 2, pastikan bahwa:

  1. Skrip pemeriksaan upgrade agar DAG 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 diupgrade untuk Airflow 2. Perubahan ini kompatibel dengan Airflow 1.10.14 dan versi yang lebih baru.

Langkah 4: Jeda DAG di lingkungan Cloud Composer 1 Anda

Untuk menghindari DAG duplikat dijalankan, jeda semua DAG di lingkungan Cloud Composer 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 Cloud Composer 1 Anda.
    • PROJECT_ID dengan Project ID.
    • COMPOSER_1_LOCATION dengan wilayah tempat lingkungan berada.

Langkah 5: Simpan snapshot lingkungan Cloud Composer 1 Anda

Konsol

Buat snapshot lingkungan Anda:

  1. Di Konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Cloud Composer 1 Anda. Halaman Detail lingkungan akan terbuka.

  3. Klik Create snapshot.

  4. Pada dialog Create snapshot, klik Submit. Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Cloud Composer 1, tetapi Anda dapat memilih lokasi lain jika ingin.

  5. Tunggu hingga Cloud Composer membuat snapshot.

gcloud

  1. Dapatkan URI bucket lingkungan Cloud Composer 1:

    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 Cloud Composer 1 Anda.
      • COMPOSER_1_LOCATION dengan wilayah tempat lingkungan berada.
    2. Di output, hapus folder /dags. Hasilnya adalah URI bucket lingkungan Cloud Composer 1 Anda.

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

  2. Buat snapshot lingkungan Cloud Composer 1 Anda:

    gcloud beta composer environments snapshots save \
      COMPOSER_1_ENV \
      --location COMPOSER_1_LOCATION \
      --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
    

    Ganti:

    • COMPOSER_1_ENV dengan nama lingkungan Cloud Composer 1 Anda.
    • COMPOSER_1_LOCATION dengan region tempat lingkungan Cloud Composer 1 berada.
    • COMPOSER_1_SNAPSHOTS_FOLDER dengan URI bucket lingkungan Cloud Composer 1. Dalam panduan ini, Anda menyimpan snapshot di bucket lingkungan Cloud Composer 1, tetapi Anda dapat memilih lokasi yang berbeda jika ingin. Jika Anda menentukan lokasi kustom, akun layanan kedua lingkungan harus memiliki izin baca dan tulis untuk lokasi yang ditentukan.

Langkah 6: Buat lingkungan Cloud Composer 2

Membuat lingkungan Cloud Composer 2. Anda dapat memulai dengan preset lingkungan yang sesuai dengan permintaan resource yang diperkirakan, 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 Cloud Composer 1.

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 Cloud Composer 2 Anda

Konsol

Untuk memuat snapshot ke lingkungan Cloud Composer 2 Anda:

  1. Di Konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Cloud Composer 2 Anda. Halaman Detail lingkungan akan terbuka.

  3. Klik Load snapshot.

  4. Dalam dialog Load snapshot, klik Browse.

  5. Pilih folder yang berisi snapshot. Jika Anda menggunakan lokasi default untuk panduan ini, folder ini berada di bucket lingkungan Cloud Composer 1 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 Cloud Composer memuat snapshot.

gcloud

Muat snapshot lingkungan Cloud Composer 1 Anda ke lingkungan Cloud Composer 2 Anda:

gcloud beta composer environments snapshots load \
  COMPOSER_2_ENV \
  --location COMPOSER_2_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Ganti:

  • COMPOSER_2_ENV dengan nama lingkungan Cloud Composer 2 Anda.
  • COMPOSER_2_LOCATION dengan region tempat lingkungan Cloud Composer 2 berada.
  • SNAPSHOT_PATH dengan URI bucket lingkungan Cloud Composer 1, yang diikuti dengan jalur ke snapshot. Contoh, gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

Langkah 8: Lanjutkan DAG di lingkungan Cloud Composer 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 membatalkan jeda 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 Cloud Composer 2 Anda.
    • PROJECT_ID dengan Project ID.
    • COMPOSER_2_LOCATION dengan wilayah tempat lingkungan berada.

Langkah 9: Periksa error DAG

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

  2. Periksa apakah operasi DAG dijadwalkan pada waktu yang tepat.

  3. Tunggu hingga proses DAG terjadi di lingkungan Cloud Composer 2 dan periksa apakah proses tersebut berhasil. Jika operasi DAG berhasil, jangan batalkan jedanya di lingkungan Cloud Composer 1. Jika Anda melakukannya, DAG akan dijalankan untuk waktu dan tanggal yang sama akan terjadi di lingkungan Cloud Composer 1 Anda.

  4. Jika DAG tertentu gagal dijalankan, coba pecahkan masalah DAG hingga DAG berhasil dijalankan di Cloud Composer 2.

Langkah 10: Pantau lingkungan Cloud Composer 2 Anda

Setelah mentransfer semua DAG dan konfigurasi ke lingkungan Cloud Composer 2, pantau potensi masalah, kegagalan pengoperasian DAG, dan kondisi lingkungan secara keseluruhan.

Jika lingkungan Cloud Composer 2 berjalan tanpa masalah selama jangka waktu yang memadai, pertimbangkan untuk menghapus lingkungan Cloud Composer 1.

Langkah selanjutnya