Comparatif des bases de données NoSQL HBase : le NoSQL au service du Big Data

 À choisir pour : HBase est un choix intéressant uniquement si vous prévoyez de gérer un volume de données très important. Basé sur Hadoop, il permet de distribuer les données en utilisant le système de fichiers distribué HDFS (Hadoop Distributed File System) d'Hadoop. Cela n'a donc pas de sens de vouloir utiliser HBase sur un système non distribué. De plus, sa mise en œuvre est relativement complexe.

des bonnes feuilles issues de l'ouvrage 'les bases de données nosql' de rudi
Des bonnes feuilles issues de l'ouvrage "Les bases de données NoSQL" de Rudi Bruchez, chez Eyrolles. © Eyrolles

 Types de données manipulées : base de données orientée colonnes. Les données sont organisées selon des clés de ligne (row key), puis en familles de colonnes, puis en colonnes. La cellule est composée d'un nom de colonne, de la valeur et d'un timestamp. La valeur est simplement stockée sous forme d'octets, il est inutile de définir des types de données ou de prédéfinir les colonnes, seules les familles de colonnes doivent être prédéfinies.

 Maintien de la cohérence : garantie ACID sur une ligne (c'est-à-dire plusieurs familles de colonnes) depuis HBase 0.92. Cela veut dire que des commandes qui appliquent des modifications sur plusieurs lignes ne constituent pas une opération atomique, mais une suite de modifications de lignes individuellement atomiques, qui vont retourner un état de succès ou d'erreur pour chaque ligne.

 Mode de distribution : basé sur Hadoop et HDFS, avec maître centralisé. Un cluster HBase est constitué d'un maître (HMaster) qui maintient les métadonnées du cluster et gère des serveurs de région (RegionServer). Chaque région contient une partie des données.

 Développé en : Java. Toute la pile Hadoop, HDFS et HBase est en Java.

 Licence et support : Apache 2.0. HBase est un projet de la fondation Apache. La société américaine Cloudera distribue une édition de Hadoop et HBase avec support nommée Cloudera Enterprise.

 Protocole : REST et Thrift. Il existe également une API Java native et une interface Avro.

 Points forts : à utiliser pour le Big Data, très bonne montée en charge horizontale, solidité de la conception et excellente tolérance au partitionnement. HBase est utilisé par des acteurs comme Facebook pour stocker tous les messages de ce réseau social, ce qui représentait en 2009 plus de 150 téraoctets de nouvelles données par mois. Sa popularité fait qu'il est en constante amélioration de par le développement de Cloudera et les contributions de la communauté. Par exemple, Facebook a apporté de nombreuses améliorations au moteur.