Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (1re génération héritée)
Cette page explique comment migrer des DAG, des données et une configuration de votre environnement Managed Airflow (2e génération) existant vers un nouvel environnement Managed Airflow (3e génération) à l'aide du script de migration.
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 | Ce guide |
| Managed Airflow (2e génération) | Managed Airflow (3e génération) | Côté à côte, à l'aide d'instantanés | Guide de migration des instantanés |
| Managed Airflow (1re génération), Airflow 2 | Managed Airflow (3e génération) | Côté à côte, à l'aide d'instantanés | Guide de migration des instantanés |
| Managed Airflow (1re génération), Airflow 2 | Managed Airflow (2e génération) | Côté à côte, à l'aide d'instantanés | Guide de migration des instantanés |
| Managed Airflow (1re génération), Airflow 2 | Managed Airflow (2e génération) | Transfert manuel côte à côte | Guide de migration manuelle |
| Managed Airflow (1re génération), Airflow 1 | Managed Airflow (2e génération), Airflow 2 | Côté à côte, à l'aide d'instantanés | Guide de migration des instantanés |
| Managed Airflow (1re génération), 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), Airflow 1 | Managed Airflow (1re génération), Airflow 2 | Transfert manuel côte à côte | Guide de migration manuelle |
À propos du script de migration
Le script de migration est un script Python pour les migrations côte à côte qui automatise le processus de migration de Managed Airflow (2e génération) vers Managed Airflow (3e génération). Il utilise des instantanés d'environnement pour transférer la configuration de l'environnement vers le nouvel environnement.
Le script effectue les actions suivantes :
Obtient la configuration de l'environnement Managed Airflow (2e génération).
Crée un environnement Managed Airflow (3e génération) avec une configuration correspondant à celle obtenue.
Étant donné que les environnements Managed Airflow (3e génération) ont une architecture différente, certains paramètres peuvent être ajustés pour tenir compte des différences. Vous pouvez également ajuster la plupart des paramètres de l'environnement ultérieurement.
Met en veille tous les DAG de l'environnement Managed Airflow (2e génération), un par un. Seuls les DAG qui n'ont pas été mis en veille dans l'environnement Managed Airflow (2e génération) seront réactivés ultérieurement.
Enregistre un instantané de l'environnement Managed Airflow (2e génération) source. L'instantané est enregistré à l'emplacement par défaut pour les instantanés, à savoir le bucket de l'environnement Managed Airflow (2e génération).
Charge l'instantané dans l'environnement Managed Airflow (3e génération).
Le script ne vérifie pas la compatibilité des packages PyPI personnalisés, des variables d'environnement et des remplacements d'options de configuration Airflow avec l'environnement Managed Airflow (3e génération).
En cas de conflit, la migration échoue après la création de l'environnement Managed Airflow (3e génération), lors du processus de chargement de l'instantané. Dans ce cas, vous pouvez ajuster la configuration de votre environnement Managed Airflow (2e génération) pour résoudre le conflit, ou effectuer la migration sans le script de migration et ignorer le chargement des packages PyPI personnalisés, des variables d'environnement ou des remplacements de configuration Airflow lorsque vous chargez l'instantané.
Réactive les DAG dans l'environnement Managed Airflow (3e génération). Si certains DAG étaient déjà en veille avant l'exécution du script, ils le resteront.
Le script présente les limites suivantes :
Le script crée toujours un environnement Managed Airflow (3e génération). Il n'est pas possible de charger l'instantané dans un environnement Managed Airflow (3e génération) existant. Pour ce faire, vous pouvez effectuer la migration à l'aide d'instantanés, sans utiliser le script de migration.
Le script crée un environnement Managed Airflow (3e génération) uniquement dans la même région et le même projet que l'environnement Managed Airflow (2e génération).
Vous ne pouvez charger des instantanés que dans la même version ou une version ultérieure d'Airflow. Par exemple, vous ne pouvez pas charger un instantané d'Airflow 2.10.2 dans Airflow 2.9.3.
Seuls les environnements Managed Airflow (2e génération) peuvent être migrés avec le script de migration.
Avant de commencer
Étant donné que le script de migration crée un environnement, puis enregistre et charge un instantané, le processus de migration peut prendre plus d'une heure.
Le script utilise des instantanés. Les instantanés sont compatibles
avec Managed Airflow (2e génération) version 2.0.9 et versions ultérieures.
Votre compte nécessite un rôle IAM qui peut créer des environnements, enregistrer des instantanés et charger des instantanés.
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.
Migrer vers Managed Airflow (3e génération)
Cette section décrit le processus de migration à l'aide du script de migration.
Vérifier les différences entre Managed Airflow (2e génération) et 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) et que vous savez comment utiliser et configurer les fonctionnalités spécifiques à Managed Airflow (3e génération).
S'assurer 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).
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.
Vérifier la compatibilité de la configuration
Vous pouvez effectuer une vérification de la mise à niveau pour voir si la configuration de votre environnement Managed Airflow (2e génération) est compatible avec Managed Airflow (3e génération). Nous vous recommandons de résoudre tous les conflits bloquants signalés par cette vérification avant de commencer la migration.
Installer les dépendances du script
Le script nécessite Python version 3.8 et versions ultérieures.
Le script de migration utilise les utilitaires gcloud CLI et
curl. Assurez-vous que les deux utilitaires sont installés sur votre ordinateur.
Télécharger le script
Téléchargez le script de migration (composer_migrate.py) à partir de son
dépôt sur GitHub.
Autoriser dans gcloud CLI
Autorisez dans gcloud CLI :
gcloud auth login
Prévisualiser les paramètres du nouvel environnement
Vous pouvez prévisualiser les paramètres de l'environnement Managed Airflow (3e génération) avant la migration. Vous pouvez ainsi voir comment la configuration de l'environnement Managed Airflow (2e génération) correspond à Managed Airflow (3e génération).
Les remplacements d'options de configuration Airflow, les packages PyPI personnalisés et les variables d'environnement sont chargés à partir de l'instantané de l'environnement et ne sont pas affichés dans l'aperçu.
Développer
Exécutez la commande suivante :
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
--dry_run
Remplacez les éléments suivants :
PROJECT_ID: l' ID du projet.COMPOSER_2_ENV: nom de votre environnement Managed Airflow (2e génération).LOCATION: région où se trouve l'environnement Managed Airflow (2e génération). L'environnement Managed Airflow (3e génération) sera créé dans la même région.COMPOSER_3_AIRFLOW_VERSION: version d'Airflow de l'environnement Managed Airflow (3e génération). Cette version doit être identique ou ultérieure à celle de l'environnement Managed Airflow (2e génération) et doit être l'une des versions disponibles dans Managed Airflow (3e génération).
Exemple :
python3 composer_migrate.py \
--project example-project \
--location us-central1 \
--source_environment example-composer-2-environment \
--target_environment example-composer-3-environment \
--target_airflow_version 2.10.2
Vérifier l'état de l'environnement
Assurez-vous que l'environnement Managed Airflow (2e génération) que vous souhaitez migrer est en bon état.
Si votre environnement n'est pas en bon état, le processus de migration échouera après la création d'un environnement Managed Airflow (3e génération), car il ne sera pas possible de créer un instantané.
Pour en savoir plus sur les façons de vérifier l'état de l'environnement et de la base de données, consultez Utiliser le tableau de bord de surveillance pour plus d'informations.
Exécuter le script de migration
Exécutez la commande suivante :
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION
Remplacez les éléments suivants :
PROJECT_ID: l' ID du projet.COMPOSER_2_ENV: nom de votre environnement Managed Airflow (2e génération).LOCATION: région où se trouve l'environnement Managed Airflow (2e génération). L'environnement Managed Airflow (3e génération) sera créé dans la même région.COMPOSER_3_AIRFLOW_VERSION: version d'Airflow de l'environnement Managed Airflow (3e génération). Cette version doit être identique ou ultérieure à celle de l'environnement Managed Airflow (2e génération) et doit être l'une des versions disponibles dans Managed Airflow (3e génération).
Rechercher 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 du DAG sont programmées aux bons horaires.
Attendez que les exécutions du DAG se produisent dans l'environnement Managed Airflow (3e 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 (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 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)
Surveillez votre environnement Managed Airflow (3e génération) 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