Il était une fois dans le SQL sous Hadoop

Si MapReduce s’impose pour traiter de grands volumes de données en mode batch, si Storm apparait comme le meilleur moteur d’intégration temps-réel, les choses sont beaucoup moins claires dans le domaine de l’analyse de données. Déçu par les performances de Hive qui sont loin des standards habituels de la Business Intelligence, de nombreuses initiatives ont été lancées afin de proposer des solutions plus satisfaisantes. Portées par les distributions Hadoop ou des éditeurs, la guerre fait rage au pays du SQL sous Hadoop.

SQL sous Hadoop : un monde sans foi ni loi

Il était une fois dans l'ouest... SQL sous Hadoop

Il était une fois dans l’ouest

 

 

 

Les protagonistes

Apache Hive

Hive a été développé à l’origine par Facebook. C’est la solution d’origine présente dans presque toutes les distributions Hadoop.

Les données sont chargées physiquement dans des tables Hive via des scripts. Dans certains cas, on peut également utiliser l’outil HCatalog pour créer des vues sur des données HDFS sans déplacer les données.

Hive convertit les requêtes SQL en plusieurs traitements MapReduce. L’intérêt de Hive est de proposer un accès SQL aux données Hadoop à nos outils classiques d’analyse de données (BO, Cognos, etc) via un driver ODBC.

Apache TEZ

Considéré par certains comme le futur de Hive, Tez est un projet initié par Hortonworks. Les premiers résultats sont encourageants mais sans plus.

Cloudera Impala

Impala est un projet open source initié par Cloudera. Comme Hive, l’objectif d’Impala est de fournir un moyen d’accéder aux données par des requêtes SQL. Mais contrairement à Hive, Impala n’utilise pas MapReduce. Il dispose en effet de son propre moteur de traitement qui doit être installé sur les noeuds de votre cluster Hadoop. Afin de bénéficier de toutes les capacités de l’architecture Impala, il vous faudra stocker les données dans un format particulier parquet. Les résultats obtenus sont prometteurs.

Apache Drill

Drill est également un projet open source. Inspiré de Google Dremel, le projet a été lancé par MapR, la troisième distribution Hadoop du marché. Comme Impala, Drill nécessite de déployer un moteur de traitement spécifique en sus de MapReduce. Le principal avantage de Drill est sa forte compatibilité puisqu’il peut travailler sur des données HDFS, HBase, Parquet, MongoDB ou JSON.

Autres outils

Il existe bien d’autres outils sur le marché. On peut citer par exemple BigSQL (IBM) fourni avec le produit BigInsight ou encore HAWQ (Pivotal). En open source, on retrouve Presto (Facebook) ou encore Apache Phoenix (accélérateur HBase).

 

Spark SQL: la solution ultime in-Memory ?

L'Homme des hautes plaines - SQL sous Hadoop

L’Homme des hautes plaines

 

Spark sera peut-être la solution qui va réconcilier tous les acteurs. En effet, Spark s’appuie sur une infrastructure Hadoop existante et des ressources matérielles pour traiter de larges volumes de données. Le moteur fait tourner des programmes (Scala, Java ou Python) jusqu’à 100 fois plus vite que MapReduce en mémoire et jusqu’à 10 fois avec des données stockées sur disque.

Spark dispose de son propre éco-système avec plusieurs sous projets comme Streaming (Intégration temps réel), MLib (Machine Learning) ou GraphX. Spark SQL constitue l’outil privilégié pour l’analyse de données. Outre les performances, Spark a déjà réussi à fédérer de nombreux acteurs:

  • le projet Shark a rejoint le projet Spark SQL
  • Hortonworks intègre l’outil dans la dernière version de sa distribution (HDP 2.2)
  • Cloudera, comme MapR, comme IBM proposent dès à présent le support de Spark

Un benchmark instructif illustre par ailleurs les performances de Spark SQL (Shark) face à ses principaux concurrents (Impala et Tez).

L’avenir semble donc radieux pour Spark SQL. Rendez-vous dans 1 an pour faire le bilan.

  • A propos
  • Derniers articles

2 Comments

  1. Et alors ? Ce bilan ?

Laissez un commentaire

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

*