HBase et Hive sont deux structures d’entrepôt de données basées sur Hadoop qui diffèrent considérablement quant à la manière dont elles stockent et interrogent les données. La gestion et le traitement d’énormes volumes de données basées sur le web deviennent de plus en plus difficiles avec les outils classiques de gestion de bases de données. C’est là que HBase entre en scène. HBase est un choix privilégié pour traiter de grandes quantités de données. Par exemple, si vous devez filtrer un énorme stock de courriels pour en extraire un à des fins d’audit ou pour toute autre raison, HBase sera parfaitement adapté à ce cas d’utilisation. Hive, quant à lui, s’apparente davantage à un système de reporting d’entrepôt de données traditionnel qui s’exécute au-dessus de Hadoop. Hive propose un langage de requête de type SQL qui permet d’interroger les données semi-structurées stockées dans Hadoop. Il n’est donc pas nécessaire d’écrire du code MapReduce. Bien que HBase et Hive soient tous deux utilisés comme magasins de données pour stocker des données non structurées, ils sont différents.
Qu’est-ce que Hbase ?
HBase est un système de gestion de base de données open-source, non relationnel, inspiré de l’architecture Big Table de Google et écrit en Java. HBase est fondamentalement une base de données NoSQL distribuée, orientée colonnes, qui fonctionne au-dessus du système de fichiers distribué Hadoop (HDFS). Elle est conçue et développée par de nombreux ingénieurs dans le cadre de la Apache Software Foundation. Elle repose sur Apache Hadoop et s’appuie sur une structure de fichiers distribués tolérante aux pannes, connue sous le nom de HDFS. Il permet de stocker des ensembles de données éparses, ce qui est courant dans les cas d’utilisation des big data. Il permet de lire rapidement des données à accès aléatoire à partir de grandes quantités de données basées sur les valeurs clés. Cependant, il n’est pas conçu pour effectuer des agrégations de données.
Qu’est-ce que Hive ?
Hive n’est pas exactement une base de données mais un logiciel d’entreposage de données construit sur Hadoop. Hive est une technologie différente de HBase ; elle structure les données dans un ensemble de tables qui peuvent être jointes, agrégées et interrogées à l’aide d’un langage d’interrogation appelé Hive Query Language (HQL) qui est très similaire à SQL, utilisé pour le traitement par lots des données volumineuses. Il permet d’interroger les données semi-structurées stockées dans Hadoop, qui sont ensuite transformées en un travail MapReduce, exécuté soit localement, soit sur un cluster MapReduce distribué. Hive est essentiellement un système d’entrepôt de données pour Hadoop qui facilite la synthèse des données, les requêtes ad hoc et l’analyse des grands ensembles de données stockés dans les systèmes de fichiers compatibles avec Hadoop. Les données peuvent être lues et écrites à partir de Hive et de HBase et vice-versa. Cependant, il ne peut pas être utilisé pour le traitement en temps réel des données.
Différence entre HBase et Hive
Technologie
– Bien que HBase et Hive soient tous deux des structures d’entrepôt de données basées sur Hadoop et utilisées pour stocker et traiter de grandes quantités de données, ils diffèrent considérablement quant à la manière dont ils stockent et interrogent les données. HBase est fondamentalement une base de données NoSQL distribuée, orientée colonnes, qui s’exécute au-dessus du système de fichiers distribués Hadoop (HDFS) et offre un moyen tolérant aux pannes de stocker des ensembles de données éparses, ce qui est courant dans les cas d’utilisation des big data. Hive, quant à lui, n’est pas exactement une base de données mais un progiciel d’entreposage de données construit sur Hadoop. Hive s’apparente davantage à un système de reporting traditionnel d’entreposage de données.
Architecture
– HBase est une base de données NoSQL et une implémentation open-source de l’architecture Big Table de Google qui repose sur Apache Hadoop et s’appuie sur une structure de fichiers distribués tolérante aux pannes connue sous le nom de HDFS. Il s’agit d’une solution de stockage évolutive permettant d’accueillir une quantité pratiquement infinie de données. Il s’agit d’une architecture de stockage de données utilisée pour stocker des données non structurées. Hive, quant à lui, est un moteur SQL construit au-dessus de HDFS et s’appuyant sur MapReduce en interne, permettant d’interroger les données stockées sur HDFS via un langage d’interrogation de type SQL appelé HQL (Hive Query Language).
Utiliser
– HBase est utilisé pour construire une couche de services peu coûteuse, flexible et facile à maintenir – le système d’information géographique basé sur Hadoop (HBGIS) – afin de stocker des données massives. Il s’agit d’un format de stockage en colonnes sur disque qui permet de stocker des ensembles de données éparses, ce qui est courant dans les cas d’utilisation des big data. Il permet de lire rapidement des données à accès aléatoire à partir de grandes quantités de données basées sur les valeurs clés. Hive, quant à lui, est un standard pour les requêtes SQL sur des pétaoctets de données dans Hadoop et fournit un langage de requête similaire à SQL appelé HQL pour interroger les données stockées dans un cluster Hadoop.
Résumé
Bien que HBase et Hive soient tous deux des structures d’entrepôt de données basées sur Hadoop et utilisées pour stocker et traiter de grandes quantités de données, ils diffèrent considérablement quant à la manière dont ils stockent et interrogent les données. HBase est un système de gestion de base de données orienté colonnes utilisé pour le stockage de données massives et permet de stocker des ensembles de données éparses, ce qui est courant dans plusieurs cas d’utilisation des big data. Hive, quant à lui, ressemble davantage à un système de reporting d’entrepôt de données traditionnel construit sur Hadoop et utilisé pour exécuter des traitements par le biais de tâches planifiées, puis pour charger les résultats dans un tableau récapitulatif qui peut être interrogé par des applications clientes.