Definition

SQL-on-Hadoop

SQL-on-Hadoop est une classe d'outils d'application analytique qui combine une interrogation classique de style SQL à des éléments d'infrastructure de données Hadoop.

Par sa prise en charge de requêtes SQL familières, SQL-on-Hadoop permet à un groupe plus large d'analystes métier et de développeurs de travailler avec Hadoop sur des clusters. Sachant que le langage SQL a été initialement développé pour les bases de données relationnelles, il a dû être modifié pour le modèle Hadoop 1, qui fait appel au système de fichiers HDFS (Hadoop Distributed File System) et à MapReduce, ou pour le modèle Hadoop 2, qui fonctionne sans HDFS ni MapReduce.

Il existe trois méthodes pour exécuter un code SQL dans un environnement Hadoop :

  1. des connecteurs convertissent le code SQL au format MapReduce
  2. des systèmes de type « push down » ignorent le traitement MapReduce axé sur les lots et exécutent le code SQL au sein même des clusters Hadoop
  3. des systèmes répartissent les tâches SQL entre des clusters HDFS MapReduce et des clusters HDFS bruts, en fonction de la charge de travail

L'un des premiers projets visant à combiner SQL et Hadoop a débouché sur l'entrepôt de données Hive, qui intégrait le logiciel HiveQL pour traduire les requêtes SQL en tâches MapReduce.

D'autres outils contribuent à la prise en charge de SQL-on-Hadoop, notamment BigSQL, Drill, Hadapt, Hawq, H-SQL, Impala, JethroData, Polybase, Presto, Shark (Hive on Spark), Spark, Splice Machine, Stinger et Tez (Hive on Tez).

Cette définition a été mise à jour en mars 2016

Pour approfondir sur Outils décisionnels et analytiques