Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (1re génération, version héritée)
Cette page explique comment transférer des DAG, des données et une configuration de votre environnement Managed Airflow (2e génération) existant vers Managed Airflow (3e génération).
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 | Ce guide |
| 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 | 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ô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
Ce guide de migration utilise des instantanés. Les instantanés sont compatibles avec Managed Airflow (2e génération) version 2.0.9 et ultérieures.
Managed Airflow est compatible avec la migration côte à côte de Managed Airflow (2e génération) vers Managed Airflow (3e génération). Il n'est pas possible d'effectuer une mise à niveau sur place de Managed Airflow (2e génération) vers Managed Airflow (3e génération).
Consultez la liste des différences entre Managed Airflow (2e génération) et Managed Airflow (3e génération). Assurez-vous que votre environnement n'utilise pas de fonctionnalités qui ne sont pas encore disponibles dans 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 occupe plus de 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)
Assurez-vous que vos DAG sont compatibles avec Managed Airflow (3e génération) en suivant ces suggestions :
La liste des packages dans l'environnement Managed Airflow (3e génération) peut être différente de celle de votre environnement Managed Airflow (2e génération). Cela peut affecter la compatibilité de vos DAG avec Managed Airflow (3e génération).
Managed Airflow charge les remplacements de configuration, les variables d'environnement et les packages PyPI à partir de l'instantané de votre environnement Managed Airflow (2e génération) vers Managed Airflow (3e génération) sans les modifier ni les ajuster pour assurer la compatibilité. Pour résoudre les conflits entre ces paramètres de configuration, vous pouvez ignorer le chargement des packages PyPI personnalisés, des variables d'environnement et des remplacements de configuration Airflow lorsque vous chargez l'instantané.
Dans Managed Airflow (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.
Suspendez les DAG dans votre environnement Managed Airflow (2e génération)
Pour éviter les exécutions DAG en double, suspendez tous les DAG dans votre environnement Managed Airflow (2e génération) 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 pour suspendre les DAG :
Suspendez les DAG un par un dans la Google Cloud console :
Dans la Google Cloud console, accédez à la page Environnements.
Sélectionnez un environnement pour afficher ses détails.
Sur la page Détails de l'environnement, accédez à l'onglet DAG.
Cliquez sur le nom d'un DAG.
Sur la page Détails du DAG, cliquez sur Suspendre le DAG.
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_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation pauseRemplacez :
COMPOSER_2_ENVpar le nom de votre environnement Managed Airflow (2e génération).PROJECT_IDpar l'ID du projet.COMPOSER_2_LOCATIONpar la région dans laquelle se trouve l'environnement.
Enregistrez un instantané de votre environnement Managed Airflow (2e génération)
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 (2e génération). La page Détails de l'environnement s'ouvre.
Cliquez sur Créer un instantané.
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 (2e génération), 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é.
Attendez que Managed Airflow crée l'instantané.
Une fois l'instantané créé, le message affiché indique son emplacement. Enregistrez ces informations pour les utiliser ultérieurement lorsque vous chargerez cet instantané dans l'environnement Managed Airflow (3e génération).
Par exemple, l'emplacement de l'instantané peut se présenter comme suit :
gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.
gcloud
Créez un instantané de votre environnement Managed Airflow (2e génération) :
gcloud composer environments snapshots save \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATIONRemplacez :
COMPOSER_2_ENVpar le nom de votre environnement Managed Airflow (2e génération).COMPOSER_2_LOCATIONpar la région dans laquelle se trouve l'environnement Managed Airflow (2e génération).(facultatif) Vous pouvez utiliser l'argument
--snapshot-locationpour spécifier un emplacement personnalisé où l'instantané de l'environnement doit être stocké.Dans ce guide, vous enregistrez l'instantané dans le bucket de l'environnement Managed Airflow (2e génération), 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é.
Une fois l'instantané créé, le message affiché indique son emplacement. Enregistrez ces informations pour les utiliser ultérieurement lorsque vous chargerez cet instantané dans l'environnement Managed Airflow (3e génération).
Par exemple, l'emplacement de l'instantané peut se présenter comme suit :
gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.
Créez un environnement Managed Airflow (3e génération)
Créez un environnement Managed Airflow (3e génération) en suivant les consignes ci-dessous :
Vous pouvez commencer par la même configuration de limites de ressources que votre environnement Managed Airflow (2e génération), puis mettre à l'échelle et optimiser davantage la configuration.
Dans les environnements Managed Airflow (3e génération), le processeur DAG Airflow s'exécute en tant que composant d'environnement distinct. Étant donné que le processeur DAG décharge l'analyse des DAG du planificateur, vous pouvez redistribuer les ressources précédemment allouées aux planificateurs Airflow. Vous pouvez le faire ultérieurement après avoir migré vers Managed Airflow (3e génération) et surveillé les performances du planificateur et du processeur DAG.
Managed Airflow (3e génération) offre une configuration réseau plus simple et plus rationalisée que Managed Airflow (2e génération). Il est possible de basculer entre la configuration réseau d'adresse IP publique et d'adresse IP privée, et d'associer et de dissocier des réseaux VPC. Vous n'avez pas besoin de spécifier de plages d'adresses IP . Assurez-vous que la configuration réseau de votre environnement Managed Airflow (3e génération) correspond à la configuration Managed Airflow (2e génération) correspondante.
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 (2e génération).
Chargez 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 Managed Airflow (3e génération). La page Détails de l'environnement s'ouvre.
Cliquez sur Charger l'instantané.
Dans la boîte de dialogue Charger l'instantané, cliquez sur 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 Managed Airflow (2e génération) dans le dossier
/snapshots, et son nom correspond à l'horodatage de l'opération d'enregistrement de l'instantané. Le même emplacement s'affiche dans le message concernant la création réussie de l'instantané.Exemple :
us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.Cliquez sur Charger et attendez que Managed Airflow charge l'instantané.
gcloud
Chargez l'instantané de votre environnement Managed Airflow (2e génération) 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 (2e génération), suivi du chemin d'accès à l'instantané. Le même emplacement s'affiche dans le message concernant la création réussie de l'instantané. Exemple :gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2024-05-15T15-23-12.
Réactivez les DAG dans l'environnement Managed Airflow (3e génération)
Vous pouvez utiliser l'une des options suivantes :
Réactivez les DAG un par un dans la Google Cloud console :
Dans la Google Cloud console, accédez à la page Environnements.
Sélectionnez un environnement pour afficher ses détails.
Sur la page Détails de l'environnement, accédez à l'onglet DAG.
Cliquez sur le nom d'un DAG.
Sur la page Détails du DAG, cliquez sur Réactiver le DAG.
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_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.
Recherchez les erreurs de DAG
Dans l'interface Web Airflow, accédez aux DAG et recherchez les erreurs de syntaxe des DAG signalés.
Vérifiez que les exécutions de DAG sont programmées aux bons horaires.
Attendez que les exécutions de 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 (2e génération). Si vous le faites, un DAG s'exécutera à la même heure et à la même date dans votre environnement Managed Airflow (2e génération).
Si une exécution de DAG spécifique échoue, essayez de résoudre les problèmes liés au DAG jusqu'à ce qu'il aboutisse dans Managed Airflow (3e génération).
Surveillez 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) s'exécute sans problème pendant une période suffisante, envisagez de supprimer l'environnement Managed Airflow (2e génération).
Étape suivante
- Découvrez comment résoudre les problèmes liés aux DAG.
- Résoudre les problèmes de création d'environnement