Vue d'ensemble

Airflow 2.1, publié le 22 mai 2021, introduit les dépendances cross-DAG et une vue calendrier pour mieux visualiser les exécutions planifiées.

Fonctionnalités principales

Dépendances cross-DAG

Les opérateurs ExternalTaskSensor et les dépendances cross-DAG permettent de créer des pipelines où un DAG attend la fin d'une tâche dans un autre DAG avant de s'exécuter.

python
from airflow import DAG
from airflow.operators.python import PythonOperator
from airflow.sensors.external_task import ExternalTaskSensor
from datetime import datetime

with DAG('dag_consommateur', start_date=datetime(2021, 1, 1)) as dag:
    # Attendre que le DAG producteur ait fini
    attendre = ExternalTaskSensor(
        task_id='attendre_extraction',
        external_dag_id='dag_producteur',
        external_task_id='extraire_donnees',
        timeout=3600,
    )

    traiter = PythonOperator(
        task_id='traiter',
        python_callable=lambda: print('Traitement'),
    )

    attendre >> traiter

Vue calendrier

La nouvelle vue calendrier dans l'interface web affiche les exécutions de DAG sur un calendrier mensuel, facilitant l'identification des échecs et des tendances d'exécution.

python
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime, timedelta

# DAG quotidien visible dans la vue calendrier
with DAG(
    'rapport_quotidien',
    start_date=datetime(2021, 1, 1),
    schedule_interval='@daily',
    catchup=False,
) as dag:
    generer = PythonOperator(
        task_id='generer_rapport',
        python_callable=lambda: print('Rapport généré'),
    )

Sources