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 Managed Airflow (1re génération, version héritée) et Airflow 2 existants vers Managed Airflow (3e génération) et Airflow 2 à l'aide 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ôte à 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ôte à 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ôte à 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) | Côte à 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) | 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ôte à 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
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 (3e génération). Il n'est pas possible de mettre à niveau Managed Airflow (1re génération, version héritée) vers Managed Airflow (3e génération) sur place.
Consultez la liste des différences entre Managed Airflow (1re génération, version héritée), Managed Airflow (2e génération) et Managed Airflow (3e 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,/pluginset/datadu 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.
Assurez-vous que vos DAG sont compatibles avec Managed Airflow (3e génération)
Pour vous assurer que vos DAG sont compatibles avec Managed Airflow (3e génération), suivez ces suggestions :
La [liste des packages][cc-versions] dans l'environnement Managed Airflow (3e génération) peut être différente de celle de votre environnement Managed Airflow (1re génération, version héritée). Cela peut affecter la compatibilité de vos DAG avec Managed Airflow (3e génération).
Airflow géré charge les remplacements de configuration, les variables d'environnement et les packages PyPI de l'instantané de votre environnement Airflow géré (1re génération, version héritée) vers Airflow géré (3e génération) sans les modifier ni les ajuster pour assurer la compatibilité. Si des packages PyPI personnalisés entraînent des conflits de dépendances, vous pouvez ignorer leur installation lorsque vous chargez l'instantané.
Dans Airflow géré (3e génération), le cluster de l'environnement se trouve dans le projet locataire. Assurez-vous que vos DAG sont compatibles avec cette modification. En particulier,
KubernetesPodOperatorles charges de travail sont désormais mises à l'échelle indépendamment de votre environnement, et il n'est pas possible d'utiliser les configurations d'affinité des pods.Dans Airflow géré (3e génération), il n'est pas possible d'accéder directement à la base de données Airflow. Assurez-vous que vos DAG sont compatibles avec cette modification.
Mettre en pause les DAG dans votre environnement Managed Airflow (1re génération, version héritée)
Pour éviter les exécutions DAG en double, mettez en pause tous les DAG de votre environnement Managed Airflow (1re génération, version héritée) avant d'enregistrer son instantané. Ignorez le DAG de surveillance de l'activité (airflow_monitoring), car il est utilisé à des fins de surveillance et n'est pas inclus dans les instantanés d'environnement.
Vous pouvez utiliser l'une des options suivantes :
Dans l'interface Web Airflow, accédez à DAG et mettez en pause tous les DAG manuellement.
Utilisez le composer_dags pour mettre en pause tous les DAG :
python3 composer_dags.py --environment COMPOSER_1_ENV \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ --operation pauseRemplacez :
COMPOSER_1_ENVavec le nom de votre environnement Managed Airflow (1re génération, version héritée).PROJECT_IDpar l'ID du projet.COMPOSER_1_LOCATIONpar 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 mise en pause d'un grand nombre de DAG, vous pouvez utiliser les commandes CLI Airflow suivantes pour mettre en pause tous les DAG en même temps :
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 à la version 2.9.1) Si des erreurs de quota se produisent lors de la mise en pause d'un grand nombre de DAG, il est possible de mettre en pause les DAG à l'aide de l' API REST Airflow. Consultez également Essayer l'API dans la documentation Airflow.
Enregistrer l'instantané de votre environnement Managed Airflow (1re génération, version héritée)
Console
Créez un instantané de votre environnement :
Dans la Google Cloud console, accédez à la page Environnements.
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.
Cliquez sur Create snapshot (Créer un instantané).
Dans la boîte de dialogue Create snapshot (Créer un instantané), cliquez sur Submit (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.
Attendez que Managed Airflow crée l'instantané.
gcloud
Obtenez l'URI du bucket de votre environnement Managed Airflow (1re génération, version héritée) :
Exécutez la commande suivante :
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"Remplacez :
COMPOSER_1_ENVpar le nom de votre environnement Managed Airflow (1re génération, version héritée).COMPOSER_1_LOCATIONpar la région dans laquelle se trouve l'environnement.
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/dagspargs://us-central1-example-916807e1-bucket.
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_ENVavec le nom de votre environnement Managed Airflow (1re génération, version héritée).COMPOSER_1_LOCATIONavec la région où se trouve l'environnement Managed Airflow (1re génération, version héritée).COMPOSER_1_SNAPSHOTS_FOLDERpar 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 tout emplacement disponible pour les comptes de service des deux environnements.
Créer un environnement Managed Airflow (3e génération)
Créez un environnement Airflow géré (3e 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).
Charger l'instantané dans votre environnement Managed Airflow (3e génération)
Console
Pour charger l'instantané dans votre environnement Managed Airflow (3e génération) :
Dans la Google Cloud console, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement Airflow géré (3e génération). La page Détails de l'environnement s'ouvre.
Cliquez sur Load snapshot (Charger l'instantané).
Dans la boîte de dialogue Load snapshot (Charger l'instantané), cliquez sur Browse (Parcourir).
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.Cliquez sur Load (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 (3e génération) :
gcloud composer environments snapshots load \
COMPOSER_3_ENV \
--location COMPOSER_3_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Remplacez :
COMPOSER_3_ENVpar le nom de votre environnement Managed Airflow (3e génération).COMPOSER_3_LOCATIONpar la région dans laquelle se trouve l'environnement Managed Airflow (3e génération).SNAPSHOT_PATHpar 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.
Réactiver les DAG dans l'environnement Managed Airflow (3e génération)
Vous pouvez utiliser l'une des options suivantes :
Dans l'interface Web Airflow, accédez à DAG et réactivez tous les DAG manuellement, un par un.
Utilisez le script composer_dags pour réactiver tous les DAG :
python3 composer_dags.py --environment COMPOSER_3_ENV \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ --operation unpauseRemplacez :
COMPOSER_3_ENVpar le nom de votre environnement Managed Airflow (3e génération).PROJECT_IDpar l'ID du projet.COMPOSER_3_LOCATIONpar 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 en même temps :
gcloud composer environments run COMPOSER_3_ENV dags unpause \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Versions d'Airflow antérieures à la version 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.
Rechercher les erreurs de DAG
Dans l'interface Web Airflow, accédez à DAG et recherchez les erreurs de syntaxe des DAG signalés.
Vérifiez que les exécutions DAG sont programmées aux bons horaires.
Attendez que les exécutions DAG se produisent dans l'environnement Managed Airflow (3e génération) et vérifiez si elles ont réussi. Si l'exécution d'un 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).
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 (3e génération).
Surveiller votre environnement Managed Airflow (3e génération)
Une fois que vous avez transféré tous les DAG et la configuration vers l'environnement Managed Airflow (3e 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 (3e génération) ne présente aucun problème pendant une période suffisante, envisagez de supprimer l'environnement Managed Airflow (1re génération, version héritée).
Étape suivante
- Découvrez comment résoudre les problèmes liés aux DAG.
- Résoudre les problèmes de création d'environnement
- Résoudre les problèmes liés aux mises à jour de l'environnement