Qu’est-ce qu’Airflow (Apache Airflow) ?

videoimg

Qu’est-ce qu’Airflow (Apache Airflow) ?

424 lecteurs
Sommaire de l'article

Une brève introduction à Apache Airflow

Qu’est-ce qu’Airflow exactement ?

Airflow est une plateforme créée par la communauté pour programmer la création et l’ordonnancement de workflows. L’apprentissage automatique est un sujet passionnant dans le domaine. Il ne serait pas aussi passionnant sans le traitement des données qu’il implique.

Airflow est un outil de gestion de flux de travail ETL (Extract Transform and Load) qui est utilisé dans les pipelines pour la transformation des données.

Airflow et ses utilisations

Imaginez que vous disposez d’un modèle ML qui effectue une analyse des sentiments sur Twitter. Vous aimeriez maintenant utiliser ce modèle sur vos utilisateurs Twitter les plus populaires pour leurs tweets quotidiens. Un tel flux de travail serait similaire à celui-ci.

Vous pouvez clairement voir que les informations circulent d’un côté à l’autre du pipeline. Il pourrait y avoir des branches, mais ce ne sont pas des cycles.

Quels problèmes Airflow résout-il ?

La tradition des couronnes est une méthode ancienne d’organisation des tâches.

Avec cron, créer et maintenir une connexion entre les tâches peut être un défi mais, avec Airflow, c’est aussi facile que d’écrire du code Python. Cron nécessite un support externe pour suivre, enregistrer et contrôler les tâches. L’interface utilisateur d’Airflow vous permet de surveiller et de contrôler l’exécution des flux de travail . Les tâches ne peuvent pas être reproduites à moins d’être configurées en externe. Airflow conserve un enregistrement d’audit de tous les travaux exécutés.

Extensible
Quel est le workflow d’Airflow ?
Les workflows sont créés en utilisant des fichiers Python.

DAG
Airflow utilise la classe Python DAG pour créer un graphe acyclique dirigé. Une image du workflow.

Voir Aussi  Cmocean : espace client du Crédit Mutuel Ocean sur www.cmocean.fr

Airflow a quatre composants principaux.

Serveur Web
Le serveur Web est la partie qui est responsable de la gestion de l’ensemble de l’interface utilisateur ainsi que des API REST.

Planificateur
Le planificateur examine les DAGs toutes les secondes et assigne ensuite la tâche à exécuter.

L’ordonnanceur comprend également un composant interne appelé Executor. Les exécuteurs sont responsables de la rotation des travailleurs et de l’exécution de la tâche jusqu’à son achèvement.

Travailleur
Les employés exécutent la tâche qui leur est assignée par leur Executor.

Types d’exécuteurs
SequentialExecutor
SequentialExecutor est capable d’exécuter une seule tâche à la fois. Les travailleurs utilisent de la même manière que l’ordonnancement.

  • Pour :
    • Simple et facile à installer et
    • Bon pour tester les DAGs en cours de développement
    • Contre :
      • Pas facilement extensible
      • Il n’est pas capable de gérer plusieurs tâches simultanément.
      • Inadapté à une utilisation en production
      • Exécuteur local
      • L’exécuteur local est exactement l’équivalent de l’exécuteur séquentiel, sauf qu’il est capable d’exécuter plusieurs tâches en même temps.

Pour :

  • Peut exécuter plusieurs tâches
  • Bon pour le fonctionnement du DSM pendant le développement

Contre :

  • N’est pas extensible
  • Une source de défaillance
  • Insuffisant pour la production
  • CeleryExecutor
  • Celery peut être utilisé pour exécuter des tâches Python asynchrones distribuées.

CeleryExecutor fait donc partie d’Airflow depuis un certain temps avant Kubernetes.

CeleryExecutor a un nombre défini d’employés qui sont capables d’exécuter des tâches au moment où elles sont programmées.

Pour

  • Il fournit une certaine capacité.
  • Celery est celui qui supervise les travailleurs. Si les workers échouent, Celery en exécute un nouveau.

Dans une lutte contre

  • Celery a besoin de RabbitMQ/Redis pour être mis en file d’attente, ce qui revient à créer une nouvelle roue pour Airflow. Airflow est déjà en place.
  • Cela rend également l’installation compliquée.
  • KubernetesExecutor
  • KubernetesExecutor exécute chaque tâche dans chaque pod Kubernetes. Contrairement à CeleryCelery, il exécute les worker pods en quelques minutes pour assurer une utilisation maximale des ressources.
Voir Aussi  IAD intranet : connexion à mon espace conseiller IAD France

Pour

  • Il combine les avantages de l’évolutivité avec la simplicité de CeleryExecutor et LocalExecutor.
  • Un contrôle précis des ressources allouées aux tâches. Vous pouvez déterminer la quantité de mémoire et de CPU nécessaire à chaque tâche.

Pour
Kubernetes est une nouvelle fonctionnalité d’Airflow et la documentation n’est pas facile à suivre.

4.8/5 - (18 votes)
Marine
Marine

Passionnée par l'entreprenariat depuis plus de 10 ans, je suis à la tête d'une société française visant à favoriser la communication des entreprises. Également attiré par la finance, je partage mes conseils et expériences au travers mes articles de blog.

Retour en haut