Sobes.tech
Middle

Qu'est-ce qu'Apache Airflow?

sobes.tech IA

Réponse de l'IA

Airflow est une plateforme open-source pour la création, la planification et la surveillance des workflows. Il permet de définir des tâches et leurs dépendances dans du code Python, de visualiser leur graphique (DAG), d’exécuter des tâches selon un calendrier ou des déclencheurs, et de suivre leur exécution via une interface web.

Composants principaux d’Airflow:

  • Scheduler : Lance les workflows planifiés.
  • Webserver : Fournit l’interface utilisateur pour la gestion et la surveillance.
  • Worker(s) : Exécutent les tâches (dépend de l’Executor).
  • Database : Stocke l’état des workflows, des tâches, la configuration et l’historique.

DAG (Directed Acyclic Graph) est la principale notion d’Airflow. Un DAG représente un ensemble de tâches (opérateurs), reliées par des dépendances sous forme de graphe orienté sans cycles.

Exemples d’opérateurs:

  • BashOperator : Exécute une commande bash.
  • PythonOperator : Exécute une fonction Python.
  • PostgresOperator : Exécute une requête SQL dans PostgreSQL.

L’architecture distribuée permet de faire évoluer Airflow en utilisant différents exécutants:

  • SequentialExecutor : Pour les tests, exécute les tâches séquentiellement.
  • LocalExecutor : Exécute les tâches en parallèle sur une seule machine.
  • CeleryExecutor : Utilise Celery pour l’exécution distribuée sur plusieurs workers.
  • KubernetesExecutor : Exécute chaque tâche dans un pod Kubernetes séparé.

Avantages d’Airflow:

  • Création par programmation : Les workflows sont définis en code Python.
  • Dynamique : Les DAGs peuvent être générés dynamiquement.
  • Extensible : Facile de créer ses propres opérateurs et hooks.
  • Scalabilité : L’architecture permet de faire évoluer le système.
  • Interface utilisateur : Interface web conviviale pour la surveillance et la gestion.