BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Du SQL interactif dans Apache Hadoop avec Impala et Hive

Du SQL interactif dans Apache Hadoop avec Impala et Hive

Favoris

Deux projets open source, Impala et Hive, faisant partie du projet Stinger, sont en concurrence pour le leadership de la course au SQL interactif dans le domaine du Big Data. Cloudera a récemment annoncé que Impala était 6 à 69 fois plus rapide que Hive 0.12 et était deux fois plus rapide qu'un SGBD non mentionné. La possibilité d'utiliser du SQL interactif dans les clusters Hadoop pourrait vouloir dire que les données ont simplement besoin d'être stockées sur HDFS pour être traitées et analysées sans nécessiter de transfert de données en aval.

A l'aide d'une version modifiée du standard industriel de benchmarks TPC-DS, Cloudera déclare que Impala est non seulement plus rapide que Hive, qui s'appuie aussi sur Hadoop, mais est aussi plus rapide qu'un SGBD qui s'appuie sur un stockage natif orienté colonnes. Dirk de Roos de chez IBM, entre autres, a critiqué ces résultats car ils se basaient sur un sous-ensemble du jeu de requêtes de TPC-DS plutôt que sur la totalité des requêtes. Dans un second point qu'il a soulevé, utiliser une seule table de faits dans les tests de Cloudera à la place des six que TPC-DS utilise, peut avoir aidé à obtenir de telles performances.

En plus de la vitesse pure, les utilisateurs métier de Hadoop ont besoin de la flexibilité que les outils et les standards SQL offrent. En supportant le SQL Standard, comme Cascading Lingual le fait, peut permettre aux outils de business intelligence qui s'appuient sur ODBC de travailler indépendamment avec Hive et Impala. Le support des sous-requêtes et des fonctions de windowing et d'agrégation proposé par Impala est en dessous de ce que propose Hive dans le domaine. Par ailleurs, installer Impala sur un cluster Hadoop existant implique un nouvel ensemble de processus qui s'exécutent sur le cluster, alors que Hive qui s'appuie sur la JVM coexiste dans l'environnement d'exécution de Hadoop.

Hive 0.12 a pour nom de code, chez Hortonworks, Stinger phase 2. Les utilisateurs précoces peuvent installer une preview technique de Stinger phase 3. Dans Stinger, phase 3 Hive s'appuie sur Tez, le framework construit au-dessus de Apache Hadoop NextGen MapReduce(YARN). Une autre amélioration dans l'optimisation des performances est l'exécution vectorielle des requêtes qui est analogue à la génération de code au runtime d'Impala. Comme Eric Hanson, Ingénieur chez HDInsight de Microsoft, l'explique, l'exécution vectorielle des requêtes peut améliorer les performances particulièrement dans les scénarios de requêtes qui nécessitent une utilisation intensive du CPU. Stinger phase 3 peut apporter une nette amélioration des performances et une meilleure utilisation des ressources dans un certain nombre de cas d’utilisation.

Dans le paysage des technologies de SQL interactif open source, un nouveau candidat, qui vient de la même société qui a rendu Hive open source il y a cinq ans, est récemment arrivé. Presto, de Facebook, est basé sur du SQL standard et promet des analyses ad hoc à l'échelle du pétaoctet. Le code est disponible sur GitHub.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT