Vous êtes sur la page 1sur 4

HBase vs Hive : lequel choisir pour mon projet Big Data ?

Bonjour,

Nous espérons que vous allez bien.

Aujourd'hui, Hive fait partie intégrale du paysage technologique des systèmes BI


(Business Intelligence). Mêmes les entreprises qui vont à pleine force dans le Big
Data utilisent Hive d'une façon ou d'une autre. Vous y serez donc très souvent
confrontés pendant l'exercice de vos fonctions.

Précédemment, nous avons parlé de la gestion des données massives avec HBase.
Un collègue m'a posé une question récemment : "Juvénal, quelle est la différence
entre Hive et HBase ?"

Cette question très pertinente, m'est posée sans cesse.


Cette question fait sens, car Hive est toujours présenté comme une base de
données, un Data Warehouse, ce qui crée la confusion avec HBase. Dans cette
chronique, je vais donner mon opinion personnelle sur cette question. Ma réponse
sera basée sur l'expertise et l'expérience professionnelle que je possède sur ces 2
technologies.

1. CE QUE HIVE N'EST PAS


Pour commencer, nous allons expliquer ce qu'est Hive, et pour ce faire, nous allons
procéder de façon inverse. Nous allons le définir à partir de ce qu'il n'est pas. Cela
est plus efficace et nous permet en même temps de démanteler les fausses idées.

#1 - Hive n'est pas une base de données (ou data store); Hive s’appuie
sur une couche d'abstraction installée sur Hadoop (HCatalog), pour stocker
les métadonnées des fichiers qui sont placés dans le HDFS et les requêtes
des utilisateurs. Ces méta données incluent la structure des fichiers, le
nombre de lignes, le chemin d'accès des données qui les constituent, la
date de création, les autorisations, ...etc). Hortonworks a récemment
rajouter des fonctionnalités ACID des bases de données relationnelles,
mais celà ne change pas la nature fondamentale de Hive, qui est d'exécuter
d'interroger des données stockées sur le HDFS (nous y reviendrons en
profondeur dans la série sur l'interrogation des données en Big Data).
#2 - Hive n'est pas un Data warehouse. Il est très similaire à un SGBD
de Data warehouse, mais n'en est pas un. On le considère comme tel parce
qu'il fournit des services de requêtage et de traitement de grosses
volumétries de données. (nous y reviendrons en profondeur dans la série
sur l'interrogation des données en Big Data).

Grâce à sa couche de requêtage qui expose un langage très proche du SQL, Hive
permet aux utilisateurs d'imposer un schéma relationnel sur les données qui sont
stockées sur le HDFS. L'utilisateur a l'impression qu'il travaille avec des tables, mais
en réalité c'est juste une couche d'abstraction, plus précisément HCatalog qui
présente les métadonnées des données stockées sur le HDFS. L'utilisateur peut
exécuter des requêtes SQL sur ces schémas et en arrière plan, ces requêtes sont
transformées en job MapReduce et exécutées par Hadoop sur le cluster. Pour faire
simple, Hive n'est pas une base de données, mais un moteur de calcul MapReduce
basé sur une surcouche SQL qui s'exécute sur le HDFS.
Encore une fois, nous y reviendrons sur l'interrogation des données à large échelle.

2. HBASE
Comme nous l'avons expliqué dans la chronique dédiée, HBase est l'un des
SGBD NoSQL les plus populaires du Big Data. Il est de plus en plus utilisé dans
beaucoup d’entreprises qui gèrent des données même de volumétrie modeste, cela
à cause de sa structure familière aux utilisateurs métier et sa grande capacité de
gestion de données. HBase est un SGBD distribué, orienté-colonne qui fournit
l'accès en temps réel aussi bien en lecture qu'en écriture aux données stockées sur
le HDFS. Là où le HDFS fournit un accès séquentiel aux données en batch, non-
approprié pour des problématiques d’accès rapide à la donnée comme
le Streaming, HBase couvre ces lacunes et offre un accès rapide aux données
stockées sur le HDFS.

En réalité, HBase n'est pas un SGBD au sens strict du terme. Il n'implémente pas
un schéma de base de données modélisé à l'aide d'un MCD, et ne fournit pas les
fonctionnalités de gestion de ce schéma telles que le typage des données, les
mécanismes de clés primaires, de clés étrangères, d'indexes, les transactions, le
langage d'interrogation de données, la cohérence ACID, ou encore la gestion des
transactions. A la place de "système de gestion de base de données", HBase est
plus ce qu'on pourrait qualifier d' "entrepôt de stockage de données". Là où les
SGBD assurent à la fois le stockage et le traitement des données, HBase lui
est plus spécialisé sur le stockage des données. Il utilise des modèles de calcul
externe comme le MapReduce pour leur requêtage.
Facebook utilise HBase pour l'analytics en temps réel, le comptage des likes et des
messages instantanés pour tous ses 3 milliards d'utilisateurs. Pinterest utilise
HBase pour stocker les données de graphe.

3. HIVE VS HBASE : LES CAS D'USAGE


Maintenant que vous comprenez Hive et HBase individuellement, il est temps de
souligner leurs différences. J'en ai relevé personnellement 4 :

Hive est un service de requêtage des données stockées sur le HDFS,


tandis que HBase est un SGBD distribué qui tourne sur Hadoop.
Hive est principalement utilisé pour le batch processing (OLAP), tandis que
HBase est principalement utilisé pour les traitements transactionnels dans
lesquels la latence de réponse des requêtes est faible, souvent de l'ordre
de la seconde (OLTP).
Hive et HBase peuvent être utilisés ensemble sur le même cluster Hadoop.
Hive peut être utilisé comme outil d'ETL pour exécuter des requêtes sur les
tables HBase (Cf. l'ouvrage Maîtrisez l'utilisation des technologies
Hadoop).

Voilà, nous espérons que vous avez à présent une vision claire sur HBase, Hive et
leurs cas d'utilisation. Si vous avez d'autres questions relatives au Big Data,
n'hésitez pas à nous les adresser à contact@data-transitionnumerique.com. Moi
ou un membre de l'équipe projet DTN vous apporterons une réponse honnête.

Bonne journée

Juvénal

Ps 1 : Référez-vous respectivement au chapitre 3 (page 79) et au chapitre 6 (page


169) de l'ouvrage "Maîtrisez l'utilisation des technologies Hadoop" pour
comprendre plus en profondeur Hive et HBase. Vous y trouverez comment imposer
un schéma relationnel aux tables HBase et y exécuter des requêtes SQL à l'aide de
Hive. C'est relativement simple.

Ps 2 : si à ce stade, vous n'avez pas compris le jargon que nous avons utilisé dans
cette chronique (en supposant que ce ne soit pas le cas), notamment les concepts
de cluster, traitement distribué, traitement parallèle, couches d'abstraction,
Hadoop, HDFS, et MapReduce, nous vous recommandons de commencer avec
l'ouvrage "Hadoop Devenez opérationnel dans le monde du Big Data avant de
revenir sur l'écosystème Hadoop.

Vous aimerez peut-être aussi