denisismagilov - Fotolia
Tests de performances : 4 moteurs SQL-on-Hadoop passés au crible
Dans un benchmark de la société AtScale, Presto, SparkSQL, Impala et Hive affichent de bonnes performances, mais se montrent séparément plus adaptés à certaines workloads de BI.
Les moteurs SQL-On-Hadoop Open Source, Presto, SparkSQL, Impala et Hive sont tous mûrs pour supporter les besoins en matière de Business Intelligence. C’est ce que révèlent les résultats d’un test de performance réalisé par la société AtScale, qui commercialise une technologie de cube OLAP s’adossant à Hadoop.
Car justement. Citant un rapport de 2015 sur le niveau de maturité d’Hadoop dans les entreprises, AtScale explique qu’à 69% des entreprises ayant été interrogées dans ce cadre affirme souhaiter migrer vers Hadoop pour équiper leurs systèmes de BI. Cela nécessite donc un dispositif capable d’effectuer des requêtes SQL sur le cluster. A 56%, les cas d’usages portent sur la data science, et à 51% sur des opérations d’ETL (Extract, Transform and Load – les bases de l’intégration de données).
Les résultats de ce benchmark ont été calculés à partir d’une batterie de tests qui exploite les modèles de données Star Schema Benchmark (SSB), une version modifiée du modèle proposé par le benchmark TPC-H. Dans le détail, AtScale a confronté les 4 technologies à ces jeux de données, via 13 typologies différentes de requêtes, censées représenter les usages les plus courants dans la BI (tant sur de grands - 6 milliards de lignes- que de petits de jeux de données). Les tests portent aussi sur la capacité à supporter le niveau de concurrence.
Un gain de performance d’une version à l’autre
Ainsi, d’une façon générale, et c’est un point important, les 4 moteurs SQL-On-Hadoop affichent tous une augmentation des performances de 2 à 4 fois supérieur au précédent benchmark. Mieux, à l’exception de Presto (supporté par Teradata), les 3 autres moteurs ont même vu leurs performances faire un bond en avant d’une version à l’autre. C’est particulièrement visible pour Spark. Entre sa version 1.6 et 2.0, le moteur augmente d’un ratio de 2,4 ses performances dans le traitement de requêtes sur de larges volumes de données. Mais le benchmark parle d’un bond de 340% entre les versions 1.2 à 2.1 de Hive - la plus forte du benchmark. Cela est notamment dû à l’intégration de la fonction Live Long and Process (LLAP), explique AtScale.
Autre enseignement de ce test, aucun moteur ne se détache particulièrement. Mais certains sont plus adaptés à des profils type de traitement. Si Hive se distingue dans les grands jeux de données, il reste plus timide dans les jeux de données réduits. Impala, de son côté, affiche un niveau de performance 2,8 fois plus élevé entre les versions 2.3 et 2.6 sur de grands jeux de données, mais ne montre que peu d’améliorations sur les petits volumes de données. Même constat pour Spark.
En revanche, l’écart est plus marqué lorsqu’on aborde la notion de requêtes concurrentes. Si en général, les 4 moteurs ont été capables de supporter 25 requêtes concurrentes –avec toutefois des dégradations de performances à noter-, Impala (supporté par Cloudera) passe plus facilement à l’échelle que Spark ou Hive, note le test. Presto affiche aussi de bonnes performances, grâce à son architecture massivement parallèle.
Conclusion donnée enfin par AtScale, il est donc possible que la mise en place d’une stratégie de BI sur Hadoop nécessite bien le déploiement de plusieurs moteurs SQL-On-Hadoop. Ce qui devrait attirer certains acteurs décidés à fondre le meilleur de ces mondes.