Middle
Qu'est-ce qu'Apache Airflow?
sobes.tech IA
Réponse de l'IA
Apache Airflow est une plateforme pour créer, planifier et surveiller des flux de travail (workflows) sous forme de graphes orientés acycliques (DAG). Il est utilisé pour gérer les processus ETL/ELT, lancer des tâches selon un calendrier et automatiser diverses opérations.
Composants principaux :
- Scheduler : Responsable du déclenchement des tâches et de leur transmission à l'exécution.
- Webserver : Fournit une interface utilisateur pour surveiller les DAG, gérer les tâches et visualiser les logs.
- Worker : Exécute les tâches (Operators).
- Database : Stocke l'état d'Airflow, les métadonnées des DAG, les informations sur les tâches et les exécutions.
Caractéristiques et avantages :
- Python : Les workflows sont écrits en Python.
- Dynamique : Les DAGs peuvent être générés dynamiquement.
- Extensible : Facile de créer des opérateurs et hooks personnalisés.
- Scalable : L'architecture permet de faire évoluer horizontalement les composants.
- GUI : Interface web informative pour le monitoring et le débogage.
Exemple d'un DAG simple :
from __future__ import annotations
import pendulum
from airflow.models.dag import DAG
from airflow.operators.bash import BashOperator
with DAG(
dag_id="simple_bash_dag",
start_date=pendulum.datetime(2023, 1, 1, tz="UTC"),
schedule=None,
catchup=False,
tags=["example"],
) as dag:
task1 = BashOperator(
task_id="print_date",
bash_command="date",
)
task2 = BashOperator(
task_id="sleep_5",
bash_command="sleep 5",
)
task3 = BashOperator(
task_id="print_hello",
bash_command="echo hello",
)
task1 >> task2 >> task3 # Définition de l'ordre d'exécution des tâches