Orchestrer des pipelines de données avec Apache Airflow
Orchestrer des pipelines avec Airflow est un cours de niveau avancé de 5 leçons (environ 1 h 40), avec 17 exercices et 15 questions de quiz. Prérequis : Transformer les données avec dbt, Python intermédiaire (fonctions, modules, POO). Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.
- Data engineering
- Avancé
- 5 leçons
- 1 h 40
- 17 exercices
- Environnement de projet complet (phase 2)
Le cours en bref
Ce cours vous apprend à transformer des scripts isolés en pipelines fiables orchestrés par Apache Airflow 3. Vous écrivez des DAG avec TaskFlow, maîtrisez dates logiques, rattrapage et backfill, rendez vos tâches idempotentes et résistantes aux pannes, attendez des données externes avec des capteurs et des assets, puis testez, surveillez et déployez vos DAG. Les exercices en Python pur reproduisent les mécanismes du planificateur pour que vous les compreniez en profondeur.
Ce que tu sauras faire
- Écrire un DAG Airflow 3 avec TaskFlow et des opérateurs, et prévoir son ordre d'exécution
- Planifier un DAG et exploiter date logique, intervalle de données, catchup et backfill
- Rendre un pipeline robuste avec reprises, délais, idempotence et règles de déclenchement
- Attendre des données externes avec des capteurs et enchaîner des DAG par les assets
- Tester, surveiller et déployer des DAG en gérant correctement connexions et secrets
Programme des 5 leçons
- Expliquer ce qu'apporte un orchestrateur par rapport à une simple tâche cron
- Écrire un DAG Airflow 3 avec l'API TaskFlow et des opérateurs classiques
- Déclarer des dépendances et prévoir l'ordre d'exécution des tâches
DAG (graphe orienté acyclique)API TaskFlowOpérateursDépendances entre tâchesXCom
- 02
Planification, dates logiques et rattrapage
- Configurer la planification d'un DAG avec une expression cron ou un préréglage
- Distinguer date logique, intervalle de données et moment réel d'exécution
- Maîtriser catchup et backfill pour retraiter une période passée
- Utiliser les variables de modèle (templates) pour cibler la bonne partition
Planification (cron, préréglages)Date logiqueIntervalle de donnéesRattrapage et backfillModèles Jinja
- 03
Reprises, idempotence et règles de déclenchement
- Configurer les reprises automatiques et les délais d'une tâche
- Concevoir des tâches idempotentes qui peuvent être rejouées sans effet de bord
- Choisir une règle de déclenchement adaptée (nettoyage, alerte, branche optionnelle)
Reprises automatiquesIdempotenceRègles de déclenchementCallbacks d'échecDélais d'exécution
- 04
Capteurs et dépendances entre pipelines
- Attendre une condition externe avec un capteur bien configuré
- Choisir entre les modes poke, reschedule et différé (deferrable)
- Enchaîner des DAG par les données avec les assets
CapteursModes poke et rescheduleOpérateurs différésAssets et planification par les données
- 05
Surveillance, tests et déploiement
- Tester des DAG avant leur mise en production
- Surveiller les exécutions et diagnostiquer un échec à partir des journaux
- Décrire l'architecture d'Airflow 3 et choisir un mode de déploiement
- Gérer connexions, variables et secrets sans les écrire dans le code
Tests de DAGSurveillance et alertesArchitecture et exécuteursConnexions, variables et secretsDéploiement
Projet final
Pipeline quotidien de ventes orchestré et robuste
Concevez un DAG Airflow 3 qui attend le fichier de ventes quotidien d'un partenaire fictif, le nettoie, le charge de façon idempotente dans une table partitionnée par jour, puis publie un asset qui déclenche un second DAG de calcul d'indicateurs. Le pipeline doit supporter un backfill d'un mois sans doublon, alerter en cas d'échec définitif et passer des tests d'intégrité en intégration continue.
Livrables
- Le dépôt Git avec les deux fichiers de DAG et le module de transformations
- Les tests pytest : intégrité des DAG et logique de transformation
- La démonstration d'un backfill sur un mois, avec le nombre de lignes avant et après une seconde exécution
- Le fichier de déploiement (Docker Compose ou valeurs Helm) et la gestion des connexions sans secret dans le code
- Une courte note d'exploitation : délais des capteurs, politique de reprises, alertes
Critères d'évaluation
- Les tâches utilisent la date logique et sont idempotentes (aucun doublon après relance)
- Les reprises, délais et capteurs sont réglés de façon justifiée (timeout, mode, backoff)
- Les dépendances entre DAG passent par des assets
- Les tests d'intégrité et de logique passent en intégration continue
- Aucun identifiant n'apparaît dans le code ; le déploiement est reproductible
Questions fréquentes
Ce cours porte-t-il sur Airflow 2 ou Airflow 3 ?
Sur Airflow 3. Les différences qui comptent avec Airflow 2 sont signalées : imports depuis airflow.sdk, assets (anciennement datasets), catchup désactivé par défaut, planification cron par déclenchement ponctuel, nouvelle commande de backfill.
Faut-il installer Airflow pour suivre le cours ?
Les exercices de code tournent en Python pur dans le navigateur et reproduisent les mécanismes du planificateur. Les tâches pratiques se font dans un environnement Airflow, par exemple celui fourni par le fichier Docker Compose de la documentation officielle.
Quelle différence entre Airflow et cron ?
cron lance des commandes à heure fixe. Airflow gère en plus les dépendances entre tâches, les reprises, l'historique, le rattrapage de périodes passées, l'attente de données externes et une interface de suivi.
Airflow traite-t-il les données lui-même ?
Non. Airflow orchestre : il déclenche et surveille des tâches qui s'appuient sur d'autres outils (SQL, Spark, dbt, scripts Python). Les gros volumes ne doivent pas transiter par Airflow.
Ce cours, raconté pour ton métier
Dis ce que tu veux savoir faire : « Orchestrer des pipelines avec Airflow » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.