Dags Airflow

Introduction à Apache Airflow en Python

Mike Metzger

Data Engineer

Qu’est-ce qu’un Dag ?

Dag, ou Directed Acyclic Graph :

  • Directed : le flux entre composants représente les dépendances
  • Acyclic : pas de boucles ni de répétitions
  • Graph : l’ensemble des composants

Graphe orienté acyclique avec des nœuds reliés par des flèches à sens unique et sans boucles

Introduction à Apache Airflow en Python

Dag dans Airflow

  • Écrit en Python (mais peut utiliser des composants dans d’autres langues)
  • Composé de tâches à exécuter, comme des operators ou des sensors
  • Contient des dépendances définies explicitement ou implicitement
    • ex. : Copier le fichier sur le serveur avant de l’importer dans le service de base de données.

  Dag Airflow de tâches connectées montrant l’ordre des dépendances

Introduction à Apache Airflow en Python

Définir un Dag

Exemple de Dag (Taskflow API) :

from airflow.sdk import dag

from pendulum import datetime @dag( dag_id='etl_workflow', email='[email protected]', start_date=datetime(2026, 3, 15, tz="UTC") )
def etl_workflow(): ...
etl_workflow()
Introduction à Apache Airflow en Python

Dags en ligne de commande

 

  • La ligne de commande airflow contient de nombreux sous-commandes
  • airflow -h : aide et description des sous-commandes

 

  • Sous-commandes Dag

    • airflow dags list : afficher tous les Dags reconnus
    • airflow dags reserialize : forcer Airflow à recharger les fichiers Dag
    • airflow tasks test : exécuter une tâche spécifique
Introduction à Apache Airflow en Python

Ligne de commande vs Python

Utilisez l’outil en ligne de commande pour :

  • Démarrer les processus Airflow
  • Exécuter manuellement des Dags / tâches
  • Obtenir les journaux d’Airflow

Terminal exécutant l’outil en ligne de commande airflow

Utilisez Python pour :

  • Créer un Dag
  • Modifier les propriétés individuelles d’un Dag

Illustration représentant du code Python

Introduction à Apache Airflow en Python

Passons à la pratique !

Introduction à Apache Airflow en Python

Preparing Video For Download...