Migrer des environnements vers Managed Airflow (2e génération) (depuis Airflow 2) à l'aide d'instantanés

Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (1re génération, version héritée)

Cette page explique comment transférer des DAG, des données et une configuration de vos environnements Airflow géré (1re génération, version héritée) et Airflow 2 existants vers Airflow géré (2e génération) et Airflow 2.

Ce guide de migration utilise la fonctionnalité d'instantanés.

Autres guides de migration

De À Méthode Guide
Managed Airflow (3e génération), Airflow 2 Managed Airflow (3e génération), Airflow 3 Transfert manuel côte à côte Guide de migration manuelle
Managed Airflow (2e génération) Managed Airflow (3e génération) Côté à côte, à l'aide du script de migration Guide de migration de script
Managed Airflow (2e génération) Managed Airflow (3e génération) Côté à côte, à l'aide d'instantanés Guide de migration d'instantanés
Managed Airflow (1re génération, version héritée), Airflow 2 Managed Airflow (3e génération) Côté à côte, à l'aide d'instantanés Guide de migration d'instantanés
Managed Airflow (1re génération, version héritée), Airflow 2 Managed Airflow (2e génération) Côté à côte, à l'aide d'instantanés Ce guide
Managed Airflow (1re génération, version héritée), Airflow 2 Managed Airflow (2e génération) Transfert manuel côte à côte Guide de migration manuelle
Managed Airflow (1re génération, version héritée), Airflow 1 Managed Airflow (2e génération), Airflow 2 Côté à côte, à l'aide d'instantanés Guide de migration d'instantanés
Managed Airflow (1re génération, version héritée), Airflow 1 Managed Airflow (2e génération), Airflow 2 Transfert manuel côte à côte Guide de migration manuelle
Managed Airflow (1re génération, version héritée), Airflow 1 Managed Airflow (1re génération, version héritée), Airflow 2 Transfert manuel côte à côte Guide de migration manuelle

Avant de commencer

  • Les instantanés sont compatibles avec Managed Airflow (2e génération) version 2.0.9 et ultérieures. Airflow géré (1re génération, version héritée) permet d'enregistrer des instantanés d'environnement dans la version 1.18.5.

  • Managed Airflow est compatible avec la migration côte à côte de Managed Airflow (1re génération, version héritée) vers Managed Airflow (2e génération). Il n'est pas possible de mettre à niveau sur place Managed Airflow (1re génération, version héritée) vers Managed Airflow (2e génération).

  • Consultez la liste des différences entre Managed Airflow (1re génération, version héritée) et Managed Airflow (2e génération).

  • La taille maximale de la base de données Airflow compatible avec les instantanés est de 20 Go. Si la base de données de votre environnement dépasse 20 Go, réduisez sa taille.

  • Le nombre total d'objets dans les dossiers /dags, /plugins et /data du bucket de l'environnement doit être inférieur à 100 000 pour créer des instantanés.

  • Si vous utilisez le mécanisme XCom pour transférer des fichiers, assurez-vous de l' utiliser conformément aux consignes d'Airflow. Le transfert de fichiers volumineux ou d'un grand nombre de fichiers à l'aide de XCom a un impact sur les performances de la base de données Airflow et peut entraîner des échecs lors du chargement d'instantanés ou de la mise à niveau de votre environnement. Envisagez d'utiliser des alternatives telles que Cloud Storage pour transférer de grands volumes de données.

Étape 1 : Suspendre les DAG dans votre environnement Airflow géré (1re génération, version héritée)

Pour éviter les exécutions DAG en double, suspendez tous les DAG dans votre environnement Airflow géré (1re génération, version héritée) avant d'enregistrer son instantané.

Vous pouvez utiliser l'une des options suivantes :

  • Dans l'interface Web Airflow, accédez à DAG et suspendez manuellement tous les DAG.

  • Utilisez le composer_dags script pour suspendre tous les DAG :

    python3 composer_dags.py --environment COMPOSER_1_ENV \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      --operation pause
    

    Remplacez :

    • COMPOSER_1_ENV avec le nom de votre environnement Managed Airflow (1re génération, version héritée).
    • PROJECT_ID par l'ID du projet.
    • COMPOSER_1_LOCATION par la région dans laquelle se trouve l'environnement.
  • (Versions d'Airflow 2.9.1 et ultérieures) Si des erreurs de quota se produisent lors de la suspension d'un grand nombre de DAG, vous pouvez utiliser les commandes CLI Airflow suivantes pour suspendre tous les DAG à la fois :

    gcloud composer environments run COMPOSER_1_ENV dags pause \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Versions d'Airflow antérieures à 2.9.1) Si des erreurs de quota se produisent lors de la suspension d'un grand nombre de DAG, il est possible de suspendre les DAG à l'aide de l' API REST Airflow. Consultez également Essayer l'API dans la documentation Airflow.

Étape 2 : Enregistrer l'instantané de votre environnement Airflow géré (1re génération, version héritée)

Console

Créez un instantané de votre environnement :

  1. Dans la Google Cloud console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement Managed Airflow (1re génération, version héritée). La page Détails de l'environnement s'ouvre.

  3. Cliquez sur Créer un instantané.

  4. Dans la boîte de dialogue Créer un instantané, cliquez sur Envoyer. Dans ce guide, vous enregistrez l'instantané dans le bucket de l'environnement Managed Airflow (1re génération, version héritée), mais vous pouvez sélectionner un autre emplacement si vous le souhaitez.

  5. Attendez que Managed Airflow crée l'instantané.

gcloud

  1. Obtenez l'URI du bucket de votre environnement Managed Airflow (1re génération, version héritée) :

    1. Exécutez la commande suivante :

      gcloud composer environments describe COMPOSER_1_ENV \
          --location COMPOSER_1_LOCATION \
           --format="value(config.dagGcsPrefix)"
      

      Remplacez :

      • COMPOSER_1_ENV par le nom de votre environnement Managed Airflow (1re génération, version héritée).
      • COMPOSER_1_LOCATION par la région dans laquelle se trouve l'environnement.
    2. Dans le résultat, supprimez le dossier /dags. Le résultat est l'URI du bucket de votre environnement Managed Airflow (1re génération, version héritée).

      Par exemple, remplacez gs://us-central1-example-916807e1-bucket/dags par gs://us-central1-example-916807e1-bucket.

  2. Créez un instantané de votre environnement Managed Airflow (1re génération, version héritée) :

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

    Remplacez :

    • COMPOSER_1_ENV avec le nom de votre environnement Managed Airflow (1re génération, version héritée).
    • COMPOSER_1_LOCATION avec la région où se trouve l'environnement Managed Airflow (1re génération, version héritée).
    • COMPOSER_1_SNAPSHOTS_FOLDER par l'URI du bucket de votre environnement Managed Airflow (1re génération, version héritée). Dans ce guide, vous enregistrez l'instantané dans le bucket de l'environnement Managed Airflow (1re génération, version héritée), mais vous pouvez sélectionner un autre emplacement si vous le souhaitez. Si vous spécifiez un emplacement personnalisé, les comptes de service des deux environnements doivent disposer des autorisations de lecture et d'écriture pour l'emplacement spécifié.

Étape 3 : Créer un environnement Airflow géré (2e génération)

Créez un environnement Airflow géré (2e génération). Vous pouvez commencer par un environnement prédéfini correspondant à vos besoins de ressources prévus, puis procéder au scaling et à l'optimisation supplémentaires de votre environnement.

Vous n'avez pas besoin de spécifier les remplacements de configuration ni les variables d'environnement, car vous les remplacerez ultérieurement lorsque vous chargerez l'instantané de votre environnement Managed Airflow (1re génération, version héritée).

Étape 4 : Charger l'instantané dans votre environnement Managed Airflow (2e génération)

Console

Pour charger l'instantané dans votre environnement Managed Airflow (2e génération) :

  1. Dans la Google Cloud console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement Airflow géré (2e génération). La page Détails de l'environnement s'ouvre.

  3. Cliquez sur Charger l'instantané.

  4. Dans la boîte de dialogue Charger l'instantané, cliquez sur Parcourir.

  5. Sélectionnez le dossier contenant l'instantané. Si vous utilisez l'emplacement par défaut pour ce guide, ce dossier se trouve dans le bucket de votre environnement Airflow géré (1re génération, version héritée) dans le dossier /snapshots, et son nom correspond à l'horodatage de l'opération d'enregistrement de l'instantané. Par exemple, us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00.

  6. Cliquez sur Charger et attendez que Managed Airflow charge l'instantané.

gcloud

Chargez l'instantané de votre environnement Managed Airflow (1re génération, version héritée) dans votre environnement Managed Airflow (2e génération) :

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

Remplacez :

  • COMPOSER_2_ENV par le nom de votre environnement Managed Airflow (2e génération).
  • COMPOSER_2_LOCATION par la région dans laquelle se trouve l'environnement Managed Airflow (2e génération).
  • SNAPSHOT_PATH par l'URI du bucket de votre environnement Managed Airflow (1re génération, version héritée), suivi du chemin d'accès à l'instantané. Par exemple, gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

Étape 5 : Réactiver les DAG dans l'environnement Managed Airflow (2e génération)

Vous pouvez utiliser l'une des options suivantes :

  • Dans l'interface Web Airflow, accédez à DAG et réactivez manuellement tous les DAG un par un.

  • Utilisez le script composer_dags pour réactiver tous les DAG :

    python3 composer_dags.py --environment COMPOSER_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation unpause
    

    Remplacez :

    • COMPOSER_2_ENV par le nom de votre environnement Managed Airflow (2e génération).
    • PROJECT_ID par l'ID du projet.
    • COMPOSER_2_LOCATION par la région dans laquelle se trouve l'environnement.
  • (Versions d'Airflow 2.9.1 et ultérieures) Si des erreurs de quota se produisent lors de la réactivation d'un grand nombre de DAG, vous pouvez utiliser les commandes CLI Airflow suivantes pour réactiver tous les DAG à la fois :

    gcloud composer environments run COMPOSER_2_ENV dags unpause \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Versions d'Airflow antérieures à 2.9.1) Si des erreurs de quota se produisent lors de la réactivation d'un grand nombre de DAG, il est possible de réactiver les DAG à l'aide de l' API REST Airflow. Consultez également Essayer l'API dans la documentation Airflow.

Étape 6 : Rechercher les erreurs de DAG

  1. Dans l'interface Web Airflow, accédez aux DAG et recherchez les erreurs de syntaxe des DAG signalés.

  2. Vérifiez que les exécutions de DAG sont programmées aux bons horaires.

  3. Attendez que les exécutions du DAG se produisent dans l'environnement Managed Airflow (2e génération) et vérifiez si elles ont réussi. Si l'exécution du DAG a réussi, ne la réactivez pas dans l'environnement Managed Airflow (1re génération, version héritée). Si vous le faites, un DAG s'exécutera à la même heure et à la même date dans votre environnement Managed Airflow (1re génération, version héritée).

  4. Si une exécution de DAG spécifique échoue, essayez de résoudre les problèmes liés au DAG jusqu'à ce que le DAG s'exécute avec succès dans Managed Airflow (2e génération).

Étape 7 : Surveiller votre environnement Airflow géré (2e génération)

Une fois que vous avez transféré tous les DAG et la configuration vers l'environnement Managed Airflow (2e génération), surveillez-les pour détecter les problèmes potentiels, les exécutions de DAG ayant échoué et l'état général de l'environnement.

Si l'environnement Managed Airflow (2e génération) s'exécute sans problème pendant une période suffisante, envisagez de supprimer l'environnement Managed Airflow (1re génération, version héritée).

Étape suivante