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 :
- des connecteurs convertissent le code SQL au format MapReduce
- 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
- 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).