1 / 8 DAGLe pipeline, décrit en Python
Graphe orienté sans cycle qui regroupe les tâches et leurs dépendances, avec une planification et une date de début.
Exemple Copier
@dag(schedule="@daily",
start_date=pendulum.datetime(2025, 1, 1, tz="Europe/Paris"),
catchup=False)
def chargement_ventes():
...2 / 8 TaskUne étape du pipeline
Unité de travail exécutée par un worker. Avec l’API TaskFlow, une simple fonction décorée devient une tâche.
Exemple Copier
@task
def extraire():
return lire_api_crm()3 / 8 OperatorUn modèle de tâche prêt à l’emploi
Classe qui définit un type de travail : lancer une commande, exécuter du SQL, appeler un service cloud. Les providers en apportent des centaines.
Exemple Copier
BashOperator(task_id="dbt_build", bash_command="dbt build")4 / 8 SensorAttend qu’une condition soit remplie
Tâche qui vérifie régulièrement une condition (fichier présent, partition disponible). Le mode reschedule libère le worker entre deux vérifications.
Exemple Copier
FileSensor(task_id="attendre_fichier",
filepath="/data/in/ventes.csv",
poke_interval=60, mode="reschedule")5 / 8 ScheduleQuand le DAG s’exécute
Expression cron, préréglage (@daily, @hourly) ou déclenchement sur la mise à jour d’un jeu de données.
Exemple Copier
schedule="0 6 * * 1-5" # 6 h, du lundi au vendredi6 / 8 XComÉchange de petites valeurs entre tâches
Passe des métadonnées d’une tâche à l’autre (chemin, identifiant, compteur). Jamais de gros volumes : ils restent dans le stockage.
Exemple Copier
donnees = extraire()
charger(donnees) # TaskFlow passe la valeur par XCom7 / 8 RetriesRelance automatique en cas d’échec
Nombre de nouvelles tentatives et délai entre elles, définis par tâche ou pour tout le DAG via default_args.
Exemple Copier
default_args={"retries": 3,
"retry_delay": timedelta(minutes=5)}8 / 8 BackfillRejoue des exécutions passées
Exécute le DAG sur une plage de dates passée, par exemple après une correction. Les tâches doivent être idempotentes.
Exemple Copier
# Airflow 2
airflow dags backfill -s 2025-01-01 -e 2025-01-31 chargement_ventes
# Airflow 3
airflow backfill create --dag-id chargement_ventes \
--from-date 2025-01-01 --to-date 2025-01-31