26 mars 2021 842 mots, 4 min. de lecture Dernière mise à jour : 24 octobre 2023

Benchmark ETL : quel temps faut-il pour traiter 1 milliard de lignes ?

Par Pierre-Nicolas Schwab Docteur en marketing, directeur de IntoTheMinds
Dans un article précédent, je mettais en avant l’importance de la vitesse de traitement pour le choix d’une solution de data preparation (ETL). J’avais réalisé un premier benchmark entre Alteryx, Tableau Prep et Anatella sur un fichier de 108 millions […]

Dans un article précédent, je mettais en avant l’importance de la vitesse de traitement pour le choix d’une solution de data preparation (ETL). J’avais réalisé un premier benchmark entre Alteryx, Tableau Prep et Anatella sur un fichier de 108 millions de lignes. Cette fois-ci j’ai répété l’opération sur 1,039 milliard de lignes et j’ai ajouté Talend au benchmark. Les résultats sont inattendus puisque les vitesses de traitement varient dans une proportion allant de 1 à 20.

TEASER : dans mon prochain article je vous montrerai comment encore augmenter votre vitesse d’un facteur 10. Revenez vite !

crédits : Shutterstock

Introduction

En matière de data preparation la vitesse est à mon sens un des facteurs différenciants des solutions de type « ETL ».  De nombreuses opérations de data preparation se font toujours avec des fichiers extraits des systèmes d’information. Or, manipuler des fichiers de grande taille peut vite rendre le travail de préparation des données très laborieux.

Dans mon premier test j’avais montré qu’une différence de 39% existait entre le temps de traitement sous Alteryx et sous Anatella pour un fichier de 108 millions de lignes.  Le traitement réalisé était des plus simple : ouverture d’un fichier plat (csv) puis un tri sur la première colonne. Pour le test d’aujourd’hui on passe à la vitesse supérieure avec un fichier plat d’un milliard de lignes (presque 50 Gb !).


crédits : Shutterstock

Méthodologie

Pour ce test j’ai préparé un fichier .csv comprenant 1,039 milliard de lignes et 9 colonnes. Le fichier « pesait » au final 48 Gb et j’ai tout stocké sur un disque dur classique.

J’ai mis au point un processus de data préparation très simple constitué de 3 étapes :

  • ouverture du fichier csv
  • tri décroissant sur la première colonne
  • « group by » sur les valeurs de la 7ème colonne (qui ne contenait que des 0 et des 1)

Pour ce benchmark, j’ai comparé 4 solutions de data preparation bien connues :

  • Talend Open Studio v7.3.1
  • Anatella v2.35
  • Tableau Prep 2020.2.1
  • Alteryx 2020.1

Tous les tests ont été effectués sur une machine de bureau équipée de 96 GB de Ram et d’un processeur i7 de 7ème génération.

Les données étaient stockées sur un disque dur de type HDD Western Digital de 6To.



La solution ETL sur la première place du podium est 19 fois plus rapide que celle qui arrive en dernière position.



Résultats

Les résultats sont assez étonnants et totalement inattendus en ce qui me concerne.  J’avais en effet réalisé des tests sur de plus petits jeux de données, et j’observe que le temps de traitement n’augmente pas de façon linéaire dans tous les outils .

Solution Temps de traitement (secondes)
Alteryx 2290
Talend 13954
Anatella 730
Tableau Prep 2526

Je reproduis ci-dessous les captures d’écran des différents pipelines et des durées de processing associées.

Les résultats de ce test sont étonnants puisqu’on constate des différences assez gigantesques sur des traitements similaires.

La solution la plus performance est Anatella v2.35 proposée par Timi. Le traitement est effectué en à peine 730 secondes.

La solution la moins performante est Talend Open Studio v7.3.1 qui met plus de 4 heures pour traiter le même jeu de données. Talend Studio est donc 19 fois plus lent qu’Anatella ! Imaginez le pauvre data scientist qui doit travailler avec Talend Studio. Le matin il lance le traitement de ses données et il commence à travailler dessus lorsqu’il revient de sa pause déjeuner vers 13h.

Les 2ème et 3ème places du classement sont occupées respectivement par Alteryx et Tableau Prep dont les performances ne sont séparées que de +/- 4 minutes.


Processing 1 bn line in Tableau Prep

Résultat du processing d’un jeu de données d’un milliard de lignes dans Tableau Prep.


processing 1 bn Talend

Processing d’un milliard de lignes dans Talend.


processing 1 bn Alteryx

Processing d’un dataset d’un milliard de lignes dans Alteryx.


processing of one billion rows in anatella

Pipeline de test pour le traitement d’un milliard de lignes sous Anatella.



crédits : Shutterstock

Conclusion

Les différences sont gigantesques entre les différentes solutions testées. On parle quand même d’un facteur 20 entre la solution la plus performante et celle qui montrait les moins bonnes performantes.

On touche ici du doigt l’importance de la vitesse de traitement dans le processus de data preparation. Les solutions qui fonctionnent en mode « No Code » sont loin d’être toutes optimisées de la même façon. Le travail du data scientist peut donc s’en voir fortement impacté et, par voie de conséquence, ralenti.

Des solutions pour accélérer le traitement existent toutefois (utilisation d’un format propriétaire en entrée, stockage des données sur un SSD plutôt que sur un HDD). Elles feront l’objet d’un prochain test ce qui nous permettra de mettre en avant les marges de progression de chacun des ETL testés.

 



Publié dans Data et IT.

Donnez votre avis

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *