HBase offre un moyen tolérant aux pannes de stocker des jeux de données clairsemés, courants dans de nombreux cas d’utilisation du big data. Il est particulièrement adapté au traitement des données en temps réel ou à l’accès aléatoire en lecture/écriture à de grands volumes de données.
Contrairement aux systèmes de bases de données relationnelles, HBase ne prend pas en charge un langage de requête structuré tel que SQL. De fait, HBase n’est pas du tout un entrepôt de données relationnelles. Les applications HBase sont écrites en Java, tout comme une application Apache MapReduce classique. HBase prend en charge l’écriture d’applications dans Apache Avro, REST et Thrift.
Un système HBase est conçu pour évoluer de manière linéaire. Il comprend un ensemble de tables standard avec des lignes et des colonnes, tout comme une base de données traditionnelle. Chaque table doit avoir un élément défini comme clé primaire, et toutes les tentatives d’accès aux tables HBase doivent utiliser cette clé primaire.
En tant que composant, Avro prend en charge un ensemble complet de types de données primitives, dont les données numériques, binaires et les chaînes de caractères, ainsi qu’un certain nombre de types complexes, notamment les tableaux, les cartes, les énumérations et les enregistrements. Un ordre de tri peut également être défini pour les données.
HBase s’appuie sur ZooKeeper pour une coordination haute performance. ZooKeeper est intégré à HBase, mais si vous exécutez un cluster de production, il est recommandé de disposer d’un cluster ZooKeeper dédié intégré à votre cluster HBase.
HBase s’intègre parfaitement à Hive, un moteur de requête pour le traitement par lots du big data, afin de permettre des applications tolérantes aux pannes.