Table des matières:
Vidéo: XebiConFr 15 - À la découverte des mécanismes internes de Cassandra 2024
HBase (Hadoop Database) est une implémentation Java de BigTable de Google. Google définit BigTable comme une «carte triée multidimensionnelle persistante, distribuée et éparse». "C'est une définition assez concise, mais vous serez également d'accord que c'est un peu complexe. Pour décomposer un peu la complexité de BigTable, voici une description de chaque attribut.
Hbase est clairsemée
Comme vous l'avez peut-être deviné, le système de stockage de données distribué BigTable a été conçu pour répondre aux exigences du big data. Maintenant, les applications Big Data stockent beaucoup de données mais le contenu Big Data est aussi souvent variable. Imaginez une table traditionnelle dans une base de données d'entreprise stockant des informations de contact client, comme indiqué:
ID client | Nom de famille | Prénom | Deuxième prénom | Adresse e-mail | Adresse |
---|---|---|---|---|---|
00001 | Smith | John | Timothée | 1 Hadoop Lane, NY 11111 | |
00002 | Doe | Jane | NULL | NULL | 7 HBase Ave, CA 22222 |
Une entreprise ou un particulier peut exiger un enregistrement complet de données pour chacun de ses clients ou constituants. Un bon exemple est votre médecin, qui a besoin de toutes vos informations de contact afin de vous fournir des soins appropriés. D'autres entreprises ou individus peuvent ne demander que des informations de contact partielles ou peuvent avoir besoin d'apprendre ces informations au fil du temps.
Par exemple, une entreprise de service à la clientèle peut traiter des appels téléphoniques ou des messages électroniques pour des demandes de service. Les clients peuvent ou non choisir de fournir aux sociétés de services toutes leurs informations de contact. Cependant, avec chaque interaction au fil du temps, les entreprises peuvent en apprendre davantage sur leurs clients, ce qui leur permettra de fournir un meilleur service - en émettant des alertes de service proactives, par exemple.
Dans ce contexte, sparse signifie que les champs des lignes peuvent être vides ou NULL, mais cela n'entraîne pas un arrêt brutal de HBase. HBase peut gérer le fait que vous ne connaissez pas (encore) le deuxième prénom et l'adresse e-mail de Jane Doe, par exemple.
Voici un autre exemple: une base de données pour stocker des images satellites. Il s'avère que Google utilise la technologie BigTable pour stocker des images satellite de la Terre. Dans presque tous les cas, chaque fois qu'une image est stockée, les métadonnées sont également stockées avec celle-ci.
Les métadonnées peuvent inclure l'adresse municipale de l'image ou seulement la latitude et la longitude si l'image est capturée dans le désert. Les métadonnées sont de contenu variable, donc certains champs seront NULL - et c'est OK.
Dans les deux exemples, les ensembles de données collectés peuvent être extrêmement volumineux - en particulier dans le second exemple.Les bases de données d'imagerie sont presque toujours mesurées en téraoctets ou parfois en pétaoctets.
HBase est conçu pour stocker des données volumineuses, mais il est également conçu pour stocker des enregistrements de données clairsemées sans frais. Cette préoccupation est cruciale lorsque vous utilisez des applications Big Data! Stocker quelques enregistrements NULL sur plus d'un million de lignes est un gaspillage, mais essayez d'imaginer le gaspillage sur un quadrillion de rangées!
Heureusement, c'était une considération clé pour les concepteurs de Google et la communauté HBase. Les données fragmentées sont prises en charge sans gaspillage d'espace de stockage coûteux.
Et ça ne s'arrête pas là. Considérez la puissance d'un magasin de données sans schéma. Le tableau vous montre une table de contact client classique. Lorsque les entreprises conçoivent ces tables, elles savent à l'avance ce qu'elles veulent stocker. En d'autres termes, le schéma est fixé ; il est défini avant même que le premier octet d'information ne soit stocké dans la table.
Maintenant, que faire si, au fil du temps, un nouveau champ est nécessaire pour un client? Que diriez-vous d'un pseudo Twitter ou d'un nouveau numéro de téléphone mobile? Vous êtes apparemment coincé avec un schéma qui ne fonctionne plus pour vous.
Eh bien, HBase résout ce problème aussi - vous pouvez non seulement ignorer les champs gratuitement lorsque vous n'avez pas les données, mais aussi ajouter dynamiquement des champs (ou colonnes dans la langue vernaculaire HBase) sur sans avoir à redessiner le schéma ou à perturber les opérations.
Vous pouvez donc considérer HBase comme un magasin de données sans schéma. c'est-à-dire qu'il est fluide - vous pouvez ajouter, soustraire ou modifier le schéma au fur et à mesure.
HBase est distribué et persistant
BigTable est un magasin de données distribué et persistant. Persistant signifie simplement que les données que vous stockez dans BigTable (et HBase, d'ailleurs) persisteront ou resteront après la fin de votre programme ou de votre session. C'est assez simple - persistant signifie qu'il persiste - mais vous devriez passer un peu plus de temps à penser à comment les données sont conservées.
Dans son article BigTable, Google décrivait le système de fichiers distribué connu sous le nom de Google File System ou GFS. Il s'avère que, tout comme HBase est une implémentation Open Source de BigTable, HDFS est une implémentation open source de GFS.
Par défaut, HBase exploite HDFS pour conserver ses données sur le stockage sur disque. Bien que d'autres banques de données distribuées puissent être utilisées avec HBase, la grande majorité des installations HBase exploitent HDFS. Cela est parfaitement logique étant donné que HBase est la "base de données Hadoop" - hé, elle est intégrée dans le nom, pour l'amour de Dieu.
HDFS est une technologie d'activation clé non seulement pour Hadoop, mais aussi pour HBase. En stockant les données dans HDFS, HBase offre la fiabilité, la disponibilité, l'évolutivité transparente, la haute performance et bien plus encore - le tout sur des serveurs distribués rentables!
HBase a une carte triée multidimensionnelle
À partir des bases, une carte (également connue sous le nom de tableau associatif ) est une collection abstraite de paires clé-valeur, où la clé est unique. Cette définition est cruciale pour votre compréhension de HBase, car le modèle de données HBase est souvent décrit de différentes façons - souvent incomplètement comme un magasin axé sur les colonnes.
HBase est, au fond, un magasin de données à valeur-clé où chaque clé est unique, ce qui signifie qu'elle apparaît au plus une fois dans le magasin de données HBase. De plus, la carte est triée et multidimensionnelle. Les clés sont stockées dans HBase et triées par ordre byte-lexicographique. Chaque valeur peut avoir plusieurs versions, ce qui rend le modèle de données multidimensionnel. Par défaut, les versions de données sont implémentées avec un horodatage.