26 maart 2021 712 woorden, 3 min. gelezen

ETL benchmark: hoe lang duurt het om 1 miljard rijen te verwerken?

Door Pierre-Nicolas Schwab Gepromoveerd in marketing, directeur van IntoTheMinds
In een vorig artikel wees ik al op het belang van de verwerkingssnelheid bij de keuze van een data preparation-software (ETL). Ik maakt een eerste benchmark tussen Alteryx, Tableau Prep en Anatella op een bestand van 108 miljoen rijen. Deze […]

In een vorig artikel wees ik al op het belang van de verwerkingssnelheid bij de keuze van een data preparation-software (ETL). Ik maakt een eerste benchmark tussen Alteryx, Tableau Prep en Anatella op een bestand van 108 miljoen rijen. Deze keer herhaalde ik de operatie op 1,039 miljard rijen en voegde Talend aan de benchmark toe. De resultaten zijn onverwacht aangezien de verwerkingssnelheden variëren met een factor 1 tot 20.

TEASER : In mijn volgende artikel zal ik je laten zien hoe je je snelheid met een factor 10 kunt verhogen. Kom snel terug!

crédits : Shutterstock

Inleiding

Bij data preparation is snelheid volgens mij een van de factoren die het verschil uitmaken “ETL”-softwares. Veel handelingen van gegevensvoorbereiding gebeuren met bestanden die uit informatiesystemen zijn getrokken. De verwerking van grote bestanden kan de voorbereiding van de gegevens echter al snel zeer omslachtig maken.

In mijn eerste test toonde ik aan dat er een verschil van 39% bestond tussen de verwerkingstijd onder Alteryx en onder Anatella voor een bestand van 108 miljoen regels.  De verwerking was heel eenvoudig: openen van een plat bestand (csv) en sorteren op de eerste kolom. Voor de test van vandaag gaan we naar het volgende niveau met een flat file van een miljard rijen (bijna 50 Gb!).


crédits : Shutterstock

Methode

Voor deze test heb ik een .csv-bestand gemaakt met 1.039 miljard rijen en 9 kolommen. Het bestand “woog” uiteindelijk 48 Gb en ik heb alles opgeslagen op een standaard harde schijf.

Ik heb een zeer eenvoudig proces voor de voorbereiding van gegevens ontwikkeld dat uit 3 stappen bestaat:

  • openen van het csv-bestand
  • sorteren in aflopende volgorde op de eerste kolom
  • “group by” op de waarden van de 7e kolom (die alleen 0’s en 1’s bevatte)

Voor deze benchmark heb ik 4 bekende datavoorbereidingsoplossingen vergeleken:

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

Alle tests werden uitgevoerd op een desktopmachine met 96 GB Ram en een 7e generatie i7-processor.

De gegevens werden opgeslagen op een Western Digital HDD van 6 TB.



De bovenste ETL-oplossing is 19 keer sneller dan de onderste.



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’est pas linéaire.

Oplossing Verwerkingstijd (seconden)
Alteryx 2290
Talend 13954
Anatella 730
Tableau Prep 2526

Ik reproduceer hieronder de screenshots van de verschillende pipelines en de bijbehorende verwerkingstijden.

De resultaten van deze test zijn verbluffend, aangezien we vrij grote verschillen zien bij vergelijkbare verwerkingen.

De best presterende software is Anatella v2.35 van Timi. De verwerking is klaar in slechts 730 seconden.

De slechtst presterende is Talend Open Studio v7.3.1, dat meer dan 4 uur nodig heeft om dezelfde dataset te verwerken. Talend Studio is dus 19 keer langzamer dan Anatella! Stel je de arme datawetenschapper voor die met Talend Studio moet werken. s’ Morgens start hij de verwerking van zijn gegevens en hij kan eraan beginnen werken wanneer hij rond 13.00 uur terugkomt van zijn lunchpauze.

De tweede en derde plaats in de rangschikking worden ingenomen door respectievelijk Alteryx en Tableau Prep, waarvan de prestaties slechts +/- 4 minuten verschillen.


Processing 1 bn line in Tableau Prep

Resultaat van de verwerking van een dataset van een miljard rijen in Tableau Prep


processing 1 bn Talend

Een miljard rijen verwerken in Talend


processing 1 bn Alteryx

Verwerking van een dataset van een miljard rijen in Alteryx


processing of one billion rows in anatella

Test-pipeline voor het verwerken van een miljard lijnen onder Anatella



crédits : Shutterstock

Conclusie

De verschillen tussen de verschillende geteste oplossingen zijn enorm. We hebben het over een factor 20 tussen de best presterende oplossing en die welke het slechtst presteerde.

Hier komt het belang van de verwerkingssnelheid in het proces van gegevensvoorbereiding om de hoek kijken. Oplossingen die in de “No Code”-modus werken, zijn lang niet allemaal op dezelfde manier geoptimaliseerd. Het werk van de datawetenschapper kan daardoor sterk worden beïnvloed en als gevolg daarvan worden vertraagd.

Er bestaan echter oplossingen om de verwerking te versnellen (gebruik van een eigen invoerformaat, opslag van gegevens op een SSD in plaats van een HDD). Zij zullen het onderwerp zijn van een toekomstige test, die ons in staat zal stellen de voortgangsmarges van elk van de geteste ETL’s te belichten.



Posted in Data en IT.

Plaats uw mening

Je e-mailadres zal niet getoond worden. Vereiste velden zijn gemarkeerd met *