Bermigrasi ke Cloud Composer 3 dari Cloud Composer 1 (Airflow 2)

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

Dari Ke Metode Panduan
Cloud Composer 2 Cloud Composer 3 Berdampingan, menggunakan skrip migrasi Panduan migrasi skrip
Cloud Composer 2 Cloud Composer 3 Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 3 Berdampingan, menggunakan snapshot Panduan ini
Cloud Composer 1, Airflow 2 Cloud Composer 2 Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 2 Transfer manual berdampingan Panduan migrasi manual
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Berdampingan, menggunakan snapshot Panduan migrasi snapshot
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Transfer manual berdampingan Panduan migrasi manual
Cloud Composer 1, Airflow 1 Cloud Composer 1, Airflow 2 Transfer manual berdampingan Panduan migrasi manual

Sebelum memulai

  • Cloud Composer mendukung migrasi berdampingan dari Cloud Composer 1 ke Cloud Composer 3. Anda tidak dapat melakukan upgrade dari Cloud Composer 1 ke Cloud Composer 3 secara langsung.

  • Periksa daftar perbedaan antara Cloud Composer 1, Cloud Composer 2, dan Cloud Composer 3.

  • 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 dalam 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 volume besar.

Pastikan DAG Anda kompatibel dengan Cloud Composer 3

Pastikan DAG Anda kompatibel dengan Cloud Composer 3 dengan mengikuti saran berikut:

  • [Daftar paket][cc-versions] di lingkungan Cloud Composer 3 dapat berbeda dengan di lingkungan Cloud Composer 1 Anda. Hal ini dapat memengaruhi kompatibilitas DAG Anda dengan Cloud Composer 3.

  • Cloud Composer memuat penggantian konfigurasi, variabel lingkungan, dan paket PyPI dari snapshot lingkungan Cloud Composer 1 ke Cloud Composer 3 tanpa mengubah atau menyesuaikannya untuk kompatibilitas. Jika paket PyPI kustom menyebabkan konflik dependensi, Anda dapat melewati penginstalannya saat memuat snapshot.

  • Di Cloud Composer 3, cluster lingkungan berada di project tenant. Pastikan DAG Anda kompatibel dengan perubahan ini. Secara khusus, workload KubernetesPodOperator kini diskalakan secara independen dari lingkungan Anda dan Anda tidak dapat menggunakan konfigurasi afinitas Pod.

  • Di Cloud Composer 3, database Airflow tidak dapat diakses secara langsung. Pastikan DAG Anda kompatibel dengan perubahan ini.

Menjeda DAG di lingkungan Cloud Composer 1

Untuk menghindari pengulangan DAG, jeda semua DAG di lingkungan Cloud Composer 1 sebelum menyimpan snapshot-nya. Lewati DAG pemantauan status aktif (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 Cloud Composer 1 Anda.
    • PROJECT_ID dengan Project ID.
    • COMPOSER_1_LOCATION dengan region tempat lingkungan berada.
  • (Airflow versi 2.9.1 dan yang lebih baru) Jika ada error kuota saat menjeda DAG dalam jumlah besar, 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 ".*"
    
  • (Airflow versi sebelum 2.9.1) Jika ada error kuota saat menjeda DAG dalam jumlah besar, Anda dapat menjeda DAG menggunakan Airflow REST API. Lihat juga Menguji API dalam dokumentasi Airflow.

Menyimpan snapshot lingkungan Cloud Composer 1

Konsol

Buat snapshot lingkungan Anda:

  1. Di Google Cloud console, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Cloud Composer 1 Anda. Halaman Environment details akan terbuka.

  3. Klik Create snapshot.

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

  5. Tunggu hingga Cloud Composer membuat snapshot.

gcloud

  1. Dapatkan URI bucket lingkungan Cloud Composer 1 Anda:

    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 region tempat lingkungan berada.
    2. Dalam 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 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 Anda. Dalam panduan ini, Anda akan menyimpan snapshot di bucket lingkungan Cloud Composer 1, tetapi Anda dapat memilih lokasi lain, jika mau. Jika Anda menentukan lokasi kustom, akun layanan dari kedua lingkungan harus memiliki izin baca dan tulis untuk setiap lokasi yang tersedia untuk akun layanan dari kedua lingkungan.

Membuat lingkungan Cloud Composer 3

Buat lingkungan Cloud Composer 3. Anda dapat memulai dengan preset lingkungan yang cocok dengan permintaan resource yang diharapkan, 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.

Memuat snapshot ke lingkungan Cloud Composer 3

Konsol

Untuk memuat snapshot ke lingkungan Cloud Composer 3:

  1. Di Google Cloud console, buka halaman Environments.

    Buka Lingkungan

  2. Dalam daftar lingkungan, klik nama lingkungan Cloud Composer 3 Anda. Halaman Environment details akan terbuka.

  3. Klik Load snapshot.

  4. Pada dialog Load snapshot, klik Browse.

  5. Pilih folder dengan snapshot. Jika Anda menggunakan lokasi default untuk panduan ini, folder ini terletak di bucket lingkungan Cloud Composer 1 di folder /snapshots, dan namanya adalah stempel waktu dari 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 Cloud Composer memuat snapshot.

gcloud

Muat snapshot lingkungan Cloud Composer 1 ke lingkungan Cloud Composer 3:

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

Ganti:

  • COMPOSER_3_ENV dengan nama lingkungan Cloud Composer 3 Anda.
  • COMPOSER_3_LOCATION dengan region tempat lingkungan Cloud Composer 3 berada.
  • SNAPSHOT_PATH dengan URI bucket lingkungan Cloud Composer 1 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.

Menghentikan jeda DAG di lingkungan Cloud Composer 3

Anda dapat menggunakan salah satu opsi berikut:

  • Di antarmuka web Airflow, buka DAG dan hentikan 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 Cloud Composer 3 Anda.
    • PROJECT_ID dengan Project ID.
    • COMPOSER_3_LOCATION dengan region tempat lingkungan berada.
  • (Airflow versi 2.9.1 dan yang lebih baru) Jika ada error kuota saat menghentikan sementara DAG dalam jumlah besar, Anda dapat menggunakan perintah CLI Airflow berikut untuk menghentikan sementara 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 ada error kuota saat menghentikan sementara DAG dalam jumlah besar, Anda dapat menghentikan sementara DAG menggunakan Airflow REST API. Lihat juga Menguji API dalam 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 hingga DAG dijalankan di lingkungan Cloud Composer 3 dan periksa apakah DAG berhasil dijalankan. Jika DAG berhasil dijalankan, jangan hentikan jeda di lingkungan Cloud Composer 1; jika Anda melakukannya, DAG akan dijalankan untuk waktu dan tanggal yang sama di lingkungan Cloud Composer 1.

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

Memantau lingkungan Cloud Composer 3

Setelah Anda mentransfer semua DAG dan konfigurasi ke lingkungan Cloud Composer 3, monitor untuk mengetahui potensi masalah, operasi DAG yang gagal, dan kondisi lingkungan secara keseluruhan.

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

Langkah berikutnya