La gestion des données massives demeure un immense défi pour les entreprises data-driven, chez lesquelles la prise de décisions stratégiques se fonde sur l’analyse et l’interprétation des données. Pour les aider, il existe de nombreuses solutions de data engineering qui aide à la génération d’outils de traitement de gros volumes de données en toute sécurité. Airflow d’Apache compte justement parmi les moyens à disposition des entreprises en quête de plateformes et outils de data science.

Apache Airflow : de quoi s’agit-il ?

 Airflow est un projet open source signé Apache Software Foundation. Il s’agit d’une plateforme logicielle de workflow, destinée globalement à la gestion des flux de travail ETL (Extraction, Transformation, Chargement) en entreprise. Il est issu d’un projet du géant de la location de logements entre particuliers (« bed and breakfast ») : Airbnb. En 2014, en pleine expansion, celui-ci reconnaît un besoin croissant de traiter un volume de données large et exponentiel qu’il fallait maîtriser. Cette société se dote alors d’une équipe de concepteurs dont les travaux aboutissent à la mise en place d’un outil de création, de planification et de suivi de flux de travail par programmation. Codé en python, Apache Airflow va écrire des workflows en python. Il présente un environnement collaboratif permettant aux utilisateurs de mettre en œuvre un monitoring efficace, tout en évaluant facilement les processus.

Fonctionnement d’Apache Airflow

 Apache Airflow fonctionne en créant ce qu’on appelle des directed Acyclic graphs (graphe orienté acyclique) ou DAG. Ceux-ci correspondent à des graphes orientés de dépendances entre les différentes tâches du travail (nœuds) à exécuter, selon un ordre et un minutage établi (heure, jour, etc.), ou en fonction d’autres déclencheurs. En orchestrant les workflows via les DAGs, Airflow met en œuvre un panel de composants, pour ne citer que :

  • Le scheduler s’occupe du déclenchement des workflows planifiés et de la soumission des tâches à l’exécuteur, après avoir passé en revue tous les DAG.
  • L’executor : exécute toutes les tâches à l’intérieur du scheduler.
  • Un serveur web déclenche et débogue le processus d’exécution des tâches et le comportement des DAGs. Ce composant gère toutes les API de l’UI.
  • Un dossier de fichiers DAG, lu par le scheduler et l’exécuteur (et tous les opérateurs).
  • Une méta-database, utilisée par le scheduler, l’executor et le serveur Web pour stocker l’état.

Utilisations d’Airflow

 

L’outil Apache Airflow est mis à contribution dans un large panel d’opérations. Il est notamment utilisé pour :

  • l’administration ou le lancement de processus de machine learning qui s’exécutent sur un cluster spark externe,
  • la collecte et l’intégration de mises à jour en vue de reporting,
  • le chargement et l’analyse de données analytiques, etc.

En tout cas, Airflow est utile dans presque tous les cas où il faut automatiser les tâches data. Il est ainsi efficace pour :

  • rassembler et transformer les données non traitées depuis un Data Lake vers des Data Warehouses.
  • Lancer et effectuer des tâches  de calculs distribués, en parallèle avec des outils spécifiques de calcul distribué comme Apache Spark.
  • Automatiser l’entraînement de modèles ML.
  • Créer des sauvegardes et des tâches DevOps de manière automatisée.

À noter tout de même que vis-à-vis de certaines situations opérationnelles ou de certaines tâches qu’on pourrait attacher aux fonctions de Airflow, celui-ci n’est pas recommandé : équipe de data science de taille élevée ou hétérogène regroupée au sein d’une même plateforme Airflow, automatisation du marketing, etc. Différentes équipes témoignent avoir vécu des problématiques de sécurité, de performance, ainsi de suite.

Airflow : utilité et avantages

 Airflow est principalement conçu pour planifier et exécuter, de manière simple, fluide et sécurisée, les pipelines de données complexes en lot. La coordination des tâches est optimale et chaque opération dispose des ressources nécessaires. Airflow est de plus en plus populaire, notamment auprès des développeurs, en raison de l’importance qu’il accorde à la “configuration as a code”. Airflow est considéré comme un outil distribué et bien adapté pour gérer l’orchestration d’une logique métier complexe.

Ses utilisateurs bénéficieront de sa grande élasticité et de son intégration robuste, mais aussi de ses nombreux plug-ins et son caractère « scalable », permettant de réaliser d’innombrables tâches au quotidien. Sinon, cet outil de gestion de pipelines de données disposent également d’une interface utilisateur conviviale et intuitive, pour une prise en main facile par les opérateurs. 

Vous souhaitez vous former au Big Data ? Retrouvez les formations Data Full Stack et Data Analyst qui vous forment aux métiers de Data Analyst, Data Scientist, Data Engineer et AI Scientist.
Merci pour votre lecture ! Si vous souhaitez lire nos prochains articles autour de la Data et de l’IA, vous pouvez nous suivre sur Facebook, LinkedIn et Twitter pour être notifié lorsqu’un nouvel article est publié !