Choosing the right Data Warehouse SQL Engine : Apache Hive LLAP vs Apache Impala

Deux super-héros ne valent-ils pas mieux qu’un seul ?

Certains des résultats les plus puissants proviennent de la combinaison de super-pouvoirs complémentaires, et le  » duo dynamique  » d’Apache Hive LLAP et d’Apache Impala, tous deux inclus dans Cloudera Data Warehouse, en est une nouvelle preuve. Impala et Hive peuvent tous deux fonctionner à une échelle massive et sans précédent, avec plusieurs pétaoctets de données. Les deux sont 100% Open source, ce qui vous permet d’éviter le verrouillage du fournisseur tout en utilisant vos outils de BI préférés, et de bénéficier de l’innovation menée par la communauté.

L’Impala et le Hive LLAP semblent chacun fonctionner parfaitement pour mes cas d’utilisation d’entrepôt de données, alors pourquoi dois-je vraiment décider entre les deux ? La réponse est simple, chacun a ses propres spécialités uniques, et selon le type d’analyse que vous voulez faire, vous pourriez trouver qu’un est mieux adapté que l’autre. Cependant, il y a un secret que je garde jusqu’à la fin du blog, qui rend la décision encore plus facile pour l’utilisateur : si facile en fait que vous n’avez même pas à décider vous-même.

Avant d’entrer dans les différences entre ces moteurs SQL, il est important de noter que Impala et Hive LLAP partagent les mêmes données et métadonnées (par le biais du Metastore de Hive), donc non seulement vous pouvez passer de l’un à l’autre si vous changez d’avis, mais vous pouvez même exécuter différentes charges de travail en utilisant différents choix de moteurs sur les mêmes données, en même temps. Une véritable situation de  » meilleur des deux mondes « .

Alors, pourquoi choisir ? Eh bien, de manière générale, Impala fonctionne mieux lorsque vous interagissez avec un data mart, qui est généralement un grand ensemble de données avec un schéma dont la portée est limitée. Hive LLAP, quant à lui, est un meilleur choix pour traiter des cas d’utilisation dans le cadre plus large d’un entrepôt de données d’entreprise. Ces cas d’utilisation impliquent souvent plusieurs départements et une variété d’applications en aval, ce qui se traduit par un éventail plus large de modèles de requête. Nous voyons également qu’Impala est un bon choix pour les requêtes interactives et ad hoc, surtout si vous avez des centaines ou des milliers d’utilisateurs qui travaillent de leur côté.

Vous pouvez également mélanger les deux, en utilisant Impala pour certaines requêtes et certaines tables, et Hive LLAP pour d’autres requêtes et d’autres tables.

Impala a été conçu pour la vitesse.

Écrit en C++, qui est très efficace au niveau du CPU, avec un planificateur de requêtes très rapide et une mise en cache des métadonnées, Impala est optimisé pour les requêtes à faible latence. Pour cette raison, Impala est un moteur idéal pour une utilisation avec un data mart, car les personnes travaillant avec des data marts exécutent principalement des requêtes en lecture seule et non des écritures à grande échelle.

Impala possède également un cadre d’exécution très efficace, utilisant la génération de code, la communication entre processus, le parallélisme massif et la mise en cache des métadonnées. Pour cette raison, Impala est également excellent lorsque vous travaillez avec des requêtes ad hoc, comme lorsque vous explorez en creusant itérativement dans les données. Vous voudrez modifier votre requête encore et encore, à tout moment, et avoir des temps de réponse très rapides pour ne pas attendre éternellement chaque itération.

Hive LLAP a été conçu pour la sophistication.

Hive LLAP a de nombreuses capacités sophistiquées qui peuvent rendre un peu plus difficile la prise en main et l’utilisation efficace pour les développeurs. Dans Hive LLAP, une requête prend parfois plus de temps pour passer par la planification et la montée en puissance pour l’exécution. Cependant, Hive est conçu pour être très tolérant aux pannes. Si un fragment d’une requête de longue durée échoue, Hive le réaffecte et réessaie. Hive met en cache les fichiers de données ainsi que les résultats des requêtes, avec des algorithmes sophistiqués, ce qui signifie que les données les plus fréquemment demandées restent en cache avec le LLAP. Hive LLAP supporte la fédération de requêtes, en permettant aux requêtes de s’exécuter sur plusieurs composants et bases de données. Par conséquent, Hive LLAP compense tout  » démarrage lent  » dans les cas d’utilisation EDW, car il est beaucoup plus robuste, et présente de meilleures performances, à long terme.

En raison de cette sophistication et de cette flexibilité, Hive LLAP est mieux adapté aux cas d’utilisation EDW (Enterprise Data Warehouse). Avec un EDW, vous prenez en charge des rapports et des tableaux de bord de Business Intelligence, des marts de données dépendants, d’autres applications d’entreprise, des systèmes externes, et plus encore. Ces charges de travail prennent souvent en compte de multiples dimensions et, par conséquent, les EDW doivent souvent traiter des exigences SQL plus complexes que les data marts, avec un plus grand besoin de types de données complexes, de requêtes plus programmées et d’orchestration de requêtes pour alimenter les data marts ou générer des extraits de données réguliers.

La capacité de Hive à gérer de manière plus robuste des requêtes plus longues et plus complexes, sur des ensembles de données à grande échelle, en fait souvent le meilleur choix pour ces types d’applications. Dans les requêtes ad-hoc à action rapide, les temps de démarrage de Hive LLAP peuvent le ralentir par rapport à Impala, mais avec des requêtes plus longues, ce coût de démarrage est une partie relativement insignifiante du temps d’exécution total. Hive LLAP devient un meilleur choix pour EDW également en raison de sa tolérance aux pannes (qui veut qu’une requête échoue si vous attendez longtemps le résultat ?) et de ses meilleures performances sur des requêtes plus complexes.

Utilisation de Impala et Hive LLAP

Impala Hive LLAP
Data mart Enterprise data warehouse
  • Bon choix pour l’analyse interactive et ad-ad hoc, notamment avec le libre-service à haute concurrence
  • Bon choix pour les requêtes de longue durée nécessitant des transformations lourdes ou des jointures multiples
  • Bon choix pour l’analyse interactive et ad-ad hoc utilisant des fonctionnalités non disponibles dans Impala
  • Bon choix pour les outils de Business Intelligence qui permettent aux utilisateurs de modifier rapidement les requêtes
  • Bon choix pour les tableaux de bord qui sont prédéfinis et non personnalisables.définis et non personnalisables par le visualisateur
  • Utilise Parquet comme format de fichier préféré
  • Utilise ORC comme format de fichier préféré
  • Fait mieux avec JSON qu’Impala

Alors que les ensembles de données massives se combinent avec la croissance des cas d’utilisation, choisir le bon moteur SQL d’entrepôt de données pour obtenir des résultats opportuns fait toute la différence.

Rejoignez-nous pour la course aux résultats ! Data Warehouse – Impala vs Hive LLAP, un débat animé entre experts, le 20 octobre 2020, 10h00 heure pacifique américaine, 13h00 heure de l’est américaine, complété par des exemples de cas d’utilisation clients, et suivi d’une q&a en direct.

David Dichmann
David Dichmann

Directeur du marketing produit

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.