Apache Airflow : Orchestration de workflows de données
Apache Airflow est devenu l'outil de référence pour orchestrer les workflows de données complexes. Dans cet article, je vous partage mon expérience d'utilisation chez Enedis et les meilleures pratiques.
Pourquoi Apache Airflow ?
Lors de mon expérience chez Enedis, j'ai compris l'importance d'une orchestration robuste et scalable. Airflow offre :
- Une approche "Infrastructure as Code" avec les DAGs
- Un monitoring avancé et des alertes
- Une excellente scalabilité
- Une grande flexibilité avec les opérateurs
- Une communauté active et mature
Les concepts clés
1. Les DAGs (Directed Acyclic Graphs)
Un DAG est une représentation de votre workflow. Il définit l'ordre d'exécution des tâches et leurs dépendances.
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime
def task_a():
return "Task A executed"
def task_b():
return "Task B executed"
default_args = {
'start_date': datetime(2025, 1, 1),
'retries': 2,
}
with DAG('my_dag', default_args=default_args) as dag:
task1 = PythonOperator(task_id='task_a', python_callable=task_a)
task2 = PythonOperator(task_id='task_b', python_callable=task_b)
task1 >> task22. Les Opérateurs
Airflow propose une multitude d'opérateurs pour différentes tâches : PythonOperator, BashOperator, KubernetesPodOperator, etc.
3. Le Scheduling
Vous pouvez planifier l'exécution de vos DAGs selon une cadence (hourly, daily, etc.) ou déclencher l'exécution d'autres DAGs.
Best practices
- Garder les tâches idempotentes
- Utiliser les variables et connexions Airflow
- Monitorer les logs et les alertes
- Versioner vos DAGs avec git
- Tester vos DAGs avant de les déployer
Conclusion
Apache Airflow m'a permis chez Enedis de gérer des pipelines complexes de manière fiable et scalable. Si vous travaillez avec de la data engineering, c'est un outil que je vous recommande vivement.
À propos de l'auteur
Développeur IA et Full Stack à Epitech Marseille. J'ai travaillé chez Enedis sur des pipelines Airflow et partage mon expertise à travers mes articles.