Vue d'ensemble

Apache Airflow 3.0, publie le 15 mars 2025, est une reecriture majeure introduisant les Assets, un nouveau systeme de backfill et une interface d'execution de taches (TEI).

Fonctionnalites principales

Assets (ex-Datasets)

Les Datasets sont renommes en Assets avec une API enrichie. Les DAGs peuvent etre declenches par des evenements sur les assets, permettant une orchestration data-driven.

python
from airflow.sdk import Asset, DAG, task

donnees_brutes = Asset('s3://bucket/raw/data.csv')
donnees_propres = Asset('s3://bucket/clean/data.parquet')

@task
def nettoyer(source: Asset) -> Asset:
    # Traitement des donnees
    return donnees_propres

with DAG('etl', schedule=[donnees_brutes]):
    nettoyer(donnees_brutes)

Backfills ameliores

Le systeme de backfill est entierement repense. Les backfills peuvent etre lances, mis en pause et annules via l'UI ou l'API, avec un suivi de progression detaille.

python
# CLI Airflow 3.0
# airflow backfills create --dag-id etl \
#   --from-date 2025-01-01 --to-date 2025-03-01

# API REST
# POST /api/v2/backfills
# {"dag_id": "etl",
#  "from_date": "2025-01-01",
#  "to_date": "2025-03-01"}

Task Execution Interface (TEI)

La nouvelle interface d'execution de taches (TEI) decouple l'execution des taches du scheduler. Les executeurs peuvent tourner sur des workers distants avec une communication via API.

python
# airflow.cfg
# [core]
# executor = airflow.executors.local_executor.LocalExecutor

# La TEI permet aux workers distants
# de communiquer via l'API Airflow
# au lieu d'acceder directement a la BDD

# Lancer un worker distant :
# airflow worker --executor-url http://airflow-api:8080

Sources