Avis d’expert : Maitriser l’ordonnancement des flux de données avec Airflow dans SAP BTP

Avr 13, 2022

Qu’est ce que l’ordonnancement de données ?

La problématique de l’ordonnancement dans les opérations de traitement de données est un réel enjeu face à l’explosion des sources hétérogènes de données. Il est de plus en plus primordial de séquencer les flux de manière cohérente et efficace afin d’obtenir le résultat attendu pour l’analyse décisionnelle. SAP Business Technology Platform, en tant que plateforme majeure de la valorisation des données, bénéficie grandement d’un contrôle accru sur ses flux de données qui sont difficiles à superviser quand un trop grand nombre de tâches entre en jeu.

 

Existe-t-il un service d’ordonnancement sur SAP BTP ?

SAP BTP dispose déjà d’un outil d’ordonnancement dans son outil SAP HANA XS Advanced Model, toutefois, il est limité dans ses fonctionnalités de planification et de surveillance. De plus, son intégration est complexe à effectuer notamment, car chaque tâche doit être associée à une application disposant de droits d’exécution sur les bases de données concernées. Ainsi, une simple requête SQL à exécuter de façon récurrente implique obligatoirement la création d’une application au sein de la plateforme. Cela contribue donc à augmenter de façon inutile le nombre d’applications à surveiller et à gérer. Heureusement, il est possible de déployer ses propres applications dans SAP BTP. Ainsi, il est possible de contourner ces limites en s’appuyant sur sa propre solution d’ordonnancement : un des outils open-source le plus connu est la solution Apache Airflow.

 

Pourquoi Apache Airflow ?

ordonnancement des données dans BTP avec apache airflow

Apache Airflow est une application open-source qui propose non seulement un service d’ordonnancement, mais aussi une interface web qui permet de contrôler le bon fonctionnement de ses tâches et de les démarrer ou les interrompre manuellement au besoin.

 

La solution est divisée en 3 sous-modules :

  • Airflow Scheduler : le module en charge de la planification des tâches,
  • Airflow Executor : le module dédié à l’exécution des tâches,
  • Airflow Webserver : le module qui permet le contrôle de la bonne exécution des tâches planifiées.

En parallèle de cela, une base de données support PostgreSQL ou MySQL est nécessaire afin de conserver les données de la solution (historique et statut des tâches, variables, etc.).
Grâce à l’application, il est possible de mettre en place des tâches qui se déclenchent régulièrement à certaines périodes ou qui se déclenchent quand certaines conditions sont remplies (lors du dépôt d’un fichier sur un serveur SFTP par exemple).
De plus, le fait que cette solution repose sur Python pour l’écriture de ses tâches permettant une très grande polyvalence : tout ce qui est faisable en Python est faisable sur Airflow. Cela implique toutefois une montée en compétence plus ou moins importante en développement Python en fonction de la complexité des tâches à mettre en place.
Une fois ces dernières mises en place, il est possible de les organiser sous forme de graphes (appelés dans Airflow Directed Acyclic Graph ou DAG) afin de rendre certaines tâches dépendantes à d’autres ou au contraire permettre l’exécution de certaines tâches en parallèle. Un grand nombre d’options permet de contrôler et d’ordonner le flux de tâches à effectuer.
L’interface web permet de visualiser les DAG et, ainsi, d’aisément déterminer quelles étapes sont bloquantes en cas d’erreur.

 

DAG airflow

Exemple de DAG – source : documentation Apache Airflow

Monitoring des taches dans airflow

Monitoring des tâches

D’autres outils de surveillance de l’interface Web permettent de déterminer l’efficacité des tâches et des DAG.

 

Execution des tâches dans Airflow

Durée d’exécution d’une tâche – source documentation Apache Airflow

diagramme de Gantt dans Airflow

Diagramme de Gantt d’un DAG – source documentation Apache Airflow

 

La présence de modèles déjà créés pour certaines tâches (Opérations SQL, envoi de mail ou encore exécution de requêtes HTTP) et la possibilité d’activer un système d’authentification pour accéder à l’application font d’Airflow une solution très complète.

Comment déployer Airflow sur SAP BTP

Pour déployer Airflow sur SAP BTP, la solution la plus simple est de packager une image via Docker et de la pousser vers Cloud Foundry qui sera en charge du déploiement de l’application. L’image d’Airflow mise à disposition par Apache peut servir de base, mais il est nécessaire d’y apporter des modifications afin de la configurer et de l’adapter à l’environnement cible. Il faudra par exemple configurer la connexion à la base de données support ou adapter le nombre de tâches à effectuer en parallèle en fonction de la configuration où sera déployée Airflow.
Une fois poussée vers Cloud Foundry, sous réserve que l’image a été configurée correctement, le service est prêt à l’emploi après quelques minutes.

 

déploiement de Airflow sur BTPLe Web Server (1) d’Airflow permet à l’utilisateur de monitorer les tâches via une interface Web (hébergée ici par Cloud Foundry via l’application) et d’assurer la transmission (2) des statuts des planificateurs. Les planificateurs et l’état des tâches sont stockés dans la base de données (3). Le Scheduler assure (4) le déclenchement des tâches initiées par le planificateur et l’Executor (5), l’exécution des jobs.

 

 

 

 

Airflow, un complément indispensable ?

Les opérations de traitement de données se complexifient inévitablement au fur à mesure du cycle de vie d’un projet. Il est donc nécessaire d’avoir une vision claire et complète ainsi qu’un contrôle sur les flux de données et de traitement. C’est pour cela qu’une solution d’ordonnancement et de monitoring sont essentiels, en particulier au sein d’une plateforme comme SAP BTP qui a vocation de faire interagir plusieurs services en parallèle et en continue.
Airflow est une solution qui permet de couvrir tous ces besoins grâce à ses principales fonctionnalités :

  • Simplicité d’implémentation
  • Centralisation du monitoring
  • Facilité de maintenance
  • Contrôle accru des flux

SAP BTP permettant d’héberger cette solution, il est donc pertinent d’intégrer cette solution dès le début du projet afin de pouvoir construire la suite sur une base solide et pérenne.

Vous avez des projets Data ? Entourez-vous d’experts de la Data Intelligence : Contactez-nous !

Dernières news

Seenovate participe aux Journées des Adhérents du SIB

Le numérique responsable Nous sommes heureux de participer à la dixième édition des Journées des Adhérents du SIB les 17 et 18 mars prochains au Palais du Grand Large à Saint-Malo. Le thème du numérique responsable sera le fil rouge de ces deux journées qui seront...

lire plus

Seenovate accueille son 100è Seemate

Bienvenue à notre 100ème collaborateur   Et de 100 ! Sur 2021 et ce début d’année 2022, nous avons recruté pas moins de 34 collaborateurs et nous sommes heureux d’accueillir ce mois-ci, notre 100ème Seemate ! Être un Seemate, c’est partager des valeurs communes...

lire plus

Contactez-nous !

Vous avez besoin de plus d'information ? Vous voulez un autre regard sur votre projet ? Nous sommes à votre disposition pour en discuter ouvertement. Alors, n'hésitez pas...

Pin It on Pinterest