photobank.kiev.ua - Fotolia

Moteurs SQL-On-Hadoop : des performances inégales selon les requêtes

La société AtScale publie les résultats d’un benchmark sur les performances de 3 moteurs SQL-on-Hadoop. Verdict : des inégalités en fonction du type de requêtes.

Il existe de nombreux moteurs SQL-On-Hadoop qui permettent accéder aux données stockées dans HDFS avec SQL. Tous ont l’air prometteurs, tous supportent SQL de façon avancée. Mais lequel est le plus rapide ? Les performances jouent en effet un rôle clé, surtout lorsque les utilisateurs métiers s’appuient sur des outils de BI pour accéder aux Big Data en exploitant ces technologies.

Lequel donc est le plus rapide pour un traitement ad-hoc et interactif, de type OLAP des données? Jusqu’à présent, peu d’information était disponible sur ce sujet. AtScale vient rompre ce silence et a publié les résultats d’un benchmark qui compare trois des principaux moteurs SQL-In-Hadoop du marché : Apache Hive, Cloudera Impala et Spark SQL. Si les benchmarks TPC-H et TPC-DS existent, ils ne prennent pas en compte ce type de traitement.

AtScale est un éditeur américain qui propose une interface SQL pour les données stockées dans Hadoop. Pour cela, il s’appuie sur ces fameux moteurs SQL-On-Hadoop. La société a ainsi pu mettre au point un benchmark pour des traitements basés sur des requêtes ad-hoc interactives. Celui-ci est défini à partir du Star Schema Benchmark, complété par AtScale avec une définition des requêtes de type OLAP. Ces requêtes peuvent être classées selon 3 types (« quick metric queries », « product insigth queries », « customer insight queries »), toutes représentant le type de requêtes présents dans les environnements de BI comme Business Objects, Tableau, Excel et Qlik.

Les résultats en matière de performances sont intéressants, même s’ils ont de quoi surprendre. L’un des premiers enseignements par exemple est qu’aucun des moteurs affiche un niveau de performances identiques pour chaque type de requêtes. Pour certaines, Hive est le plus rapide, pour d’autres, il s’agit de Spark SQL ou Impala.

Ce qui complique quelque peu la vie des entreprises. Cela signifie par exemple que lorsqu’une entreprise souhaite privilégier la rapidité, elle ne peut le faire d’une façon simple ou n’en sélectionner qu’un. Ce benchmark en lui-même est intéressant car certains spécialistes ont un moteur SQL-On-Hadoop préféré et pensent toujours que celui-ci est le plus rapide. Ce qui n’est donc pas une évidence si l’on considère de près les résultats de ce test.

Il faut bien comprendre que chacun des trois moteurs cités ont la capacité d’accéder aux mêmes fichiers HDFS et aux mêmes descriptions de tables documentées dans la HCatalog. Ce qui signifie au final que les éditeurs de solutions comme AtScale ou celles générant du code SQL pour ces moteurs SQL-On-Hadoop (ce que font certains ETL), doivent supporter ces 3 technologies pour accéder aux données dans HDFS. Ces solutions doivent également être suffisamment intelligentes pour appliquer l’outil le plus adapté. En fait, tous les éditeurs d’outils de visualisation de données et de BI pour Hadoop qui génèrent du code SQL pour ces moteurs doivent au final connaître les points forts et les faiblesses de ces moteurs.

Il est intéressant de savoir comment cela va évoluer dans les années à venir. AtScale a permis de se poser les bonnes questions et de conclure qu’au final, nous ne pouvons pas déterminer de façon précise quel moteur SQL-On-Hadoop est  le plus performant.

Traduit par la rédaction

Pour approfondir sur Big Data et Data lake