Caractéristiques-clefs
- Home URL
- https://airflow.apache.org
- Licence
- Apache License v2.0
Description
Présentation rapide et historique
Apache Airflow est un logiciel libre de gestion de flux de travail (ou workflow) créé en 2014 par Maxime Beauchêne. Initialement développé par Airbnb pour gérer les tâches de traitement de données, Airflow a rapidement gagné en popularité et est sorti en version 1.0 en 2019. Écrit en Python, le logiciel utilise PostgreSQL en tant que système de gestion de base de données. Airflow est conçu pour être extensible et flexible, permettant aux utilisateurs de créer des workflows complexes et distribués.
Le projet a été conçu pour répondre aux besoins croissants de gestion des tâches et des flux de travail dans les environnements de traitement de données. Airflow permet de définir, planifier et surveiller des workflows de manière programmatique, ce qui en fait un outil puissant pour les data engineers et les data scientists. Depuis sa création, Airflow a été adopté par de nombreuses entreprises et organisations pour automatiser et orchestrer leurs processus de traitement de données.
Caractéristiques et fonctionnalités
- Programmation des tâches: Airflow permet de planifier et de gérer des tâches (ou jobs) qui peuvent être exécutées localement ou à distance sur des machines virtuelles.
- Orchestration des workflows: Airflow fournit un moteur d'orchestration qui permet de gérer les flux de travail en fonction des dépendances entre les tâches.
- Surveillance des workflows: Airflow permet de suivre l'état des workflows en temps réel, y compris les tâches qui sont en cours d'exécution, celles qui sont terminées ou celles qui ont échoué.
- Utilisation d'opérateurs: Airflow fournit une gamme d'opérateurs pour effectuer des tâches courantes, telles que l'envoi de courriels, la lecture et l'écriture de fichiers, l'exécution de commandes Bash, etc.
- Intégration avec d'autres outils: Airflow peut être intégré avec d'autres outils de gestion de données, tels que Apache Hive, Apache Spark, Apache Hadoop, Amazon S3, Google Cloud Storage, etc.
- Administration des utilisateurs: Airflow fournit une interface web pour gérer les utilisateurs et leurs rôles, ainsi que les autorisations pour accéder aux workflows et aux tâches.
- Extensibilité: Airflow est conçu pour être extensible, ce qui permet aux utilisateurs de créer leurs propres opérateurs et plugins pour répondre à leurs besoins spécifiques.
Architectures et composants
L'architecture d'Apache Airflow se compose de plusieurs composants clés :
- Le serveur Web (Webserver): Il s'agit de l'interface web principale pour gérer les workflows et les tâches.
- Le scheduler (Orchestrator): Il s'agit du composant qui gère les flux de travail en fonction des dépendances entre les tâches.
- La base de données (Database): Elle stocke les informations sur les workflows, les tâches et les utilisateurs.
- Les workers (Workers): Ce sont les machines qui exécutent les tâches.
Langages et APIs
Apache Airflow prend en charge plusieurs langages de programmation, y compris Python, Java et Scala. Les API pour interagir avec Airflow incluent :
- L'API REST (Representational State of Resource): Elle permet de créer, de lire et de mettre à jour les workflows et les tâches.
- L'API Python: Elle permet de créer et de gérer les workflows et les tâches à l'aide de la bibliothèque logicielle Python Airflow.