Les paires de clés de valeur dans le modèle de données HBase

Le modèle de données logique HBase est simple mais élégant, et il fournit un mécanisme de stockage de données pour organiser toutes sortes de données - de grands ensembles de données non structurées en particulier. Toutes les parties du modèle de données convergent en une paire clé-valeur.

Tout d'abord, dans un monde où vous pouvez penser de la clé de ligne que la clé primaire pour les données stockées dans HBase, comment vous retrouvez-vous tirer parti le reste des composants du modèle de données? Eh bien, tout dépend de la quantité de données que vous souhaitez renvoyer dans les requêtes et combien de temps vous êtes prêt à attendre.

En ne spécifiant que la clé de ligne peut potentiellement revenir une tonne de données, car une ligne individuelle peut avoir des millions de colonnes. Aussi, avec seulement la clé de ligne de travailler à partir, HBase peut revenir chaque colonne de qualification, la version et la valeur liée à la touche de ligne.




Que faire si vous voulez seulement une colonne ou une version particulière de vos données? Dans l'exemple montré, pouvez-vous voir ce qui se passe si vous voulez seulement le nom d'un client en particulier? La solution est de construire une touche plus complexe de spécifier exactement ce que vous avez besoin. Une paire clé-valeur peut ressembler à ceci: RowKey: (Colonne Famille: Colonne Qualifier: Version) => Valeur

Vue Logique du client Informations de contact dans HBase
Key RowColonne Famille: {Colonne Qualifier: Version: Valeur}
00001CustomerName: {«FN»: 1383859182496: «John»,
'LN': 1383859182858: «Smith»,
«MN»: 1383859183001: Timothy '',
«MN»: 1383859182915: 'T'}
ContactInfo: {'EA': 1383859183030:'[email protected] »,
«SA»: 1383859183073: «1 Hadoop Lane, NY11111 '}
00002CustomerName: {«FN»: 1383859183103: «Jane»,
'LN': 1383859183163: «Doe»,
Informations de contact: {
«SA»: 1383859185577: «7 HBase Ave, CA22222 '}

Après avoir spécifié la clé, le reste est optionnel. Le plus précis vous faites la requête, cependant (de gauche à droite), le plus granulaire les résultats. Votre performance va empirer, parce que le système doit passer plus de temps de localiser la valeur exacte ou des valeurs dont vous avez besoin, mais moins de données est renvoyée lorsque la requête est terminée.

Donc touches sont plus complexes que vous pouvez l'imaginer à partir de l'étude de la table. Par exemple, si vous voulez le plus récent prénom (ou le seul prénom jusqu'à présent) du client dans la rangée '00001', la paire clé-valeur résultant devrait ressembler à ceci: '00001: CustomerName: MN' => ' Timothy '

Rappelez-vous que les versions sont implémentées en utilisant des timbres de temps par défaut et sont classés par ordre décroissant de sorte que vous obtenez automatiquement la valeur la plus récente, si vous ne spécifiez pas une version. Si vous voulez un milieu initial avant pour votre client (voir le tableau 12-2), votre paire clé-valeur résultant devrait ressembler à ceci: '00001: CustomerName: MN: 1383859182915' => 'T'

Nous espérons que les différentes descriptions de HBase commencent à prendre forme dans votre esprit. Plus précisément, HBase est à la fois une famille orientée magasin de données de la colonne et un magasin de données clé-valeur-paire. Se référant à HBase simplement comme un “ colonne orientée ” magasin de données laisse beaucoup à l'imagination.

Dans le cas où vous étiez curieux, il n'y a aucun types de données dans HBase - valeurs dans HBase sont seulement un ou plusieurs octets. Encore une fois, simple mais puissant parce que vous pouvez stocker quoi que ce soit!


» » » » Les paires de clés de valeur dans le modèle de données HBase