Vidéo: La révélation des Pyramides - Le film en français 2024
Le modèle de données HBase logique est simple mais élégant, et il fournit un mécanisme naturel de stockage de données pour toutes sortes de données - Big Data non structurés 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 considérer la clé de ligne comme la clé primaire pour les données stockées dans HBase, comment finissez-vous par exploiter le reste des composants du modèle de données? Eh bien, tout dépend de la quantité de données que vous voulez renvoyer dans les requêtes et combien de temps vous êtes prêt à attendre.
Spécifier uniquement la clé de ligne peut potentiellement renvoyer une tonne de données, car une ligne individuelle peut contenir des millions de colonnes. En outre, avec seulement la clé de ligne à partir de laquelle travailler, HBase peut renvoyer chaque qualificateur de colonne, version et valeur liés à la clé de ligne.
Que faire si vous ne voulez qu'une colonne ou une version particulière de vos données? Dans l'exemple illustré, pouvez-vous voir ce qui se passe si vous voulez seulement le nom de famille d'un client particulier? La solution consiste à construire une clé plus complexe pour spécifier exactement ce dont vous avez besoin. Une paire clé-valeur peut ressembler à ceci: RowKey: (Famille de colonne: Qualificateur de colonne: Version) => Value
Row Row | Famille de colonnes: {Qualificateur de colonne: Version: Valeur} |
---|---|
00001 | CustomerName: {'FN':
1383859182496: 'John', 'LN': 1383859182858: 'Smith', 'MN': 1383859183001: 'Timothée', 'MN': 1383859182915: 'T'} > ContactInfo: {'EA': 1383859183030: 'John. Smith @ xyz. com ', ' SA ': 1383859183073:' 1 Hadoop Lane, NY 11111 '} 00002 |
NomClientèle: {' FN ': | 1383859183103:' Jane ',
'LN': 1383859183163: 'Doe', ContactInfo: { 'SA': 1383859185577: '7 HBase Ave, CA 22222'}
|
Les clés sont donc plus complexes que vous ne pourriez l'imaginer en étudiant la table. Par exemple, si vous voulez que le deuxième prénom (ou le deuxième prénom) du client soit dans la ligne '00001', la paire clé-valeur résultante ressemblera à ceci: '00001: CustomerName: MN' => ' Timothy '
Rappelez-vous que les versions sont implémentées en utilisant des horodatages par défaut et sont triées par ordre décroissant afin que vous obteniez automatiquement la valeur la plus récente si vous ne spécifiez pas de version. Si vous voulez une initiale initiale pour votre client (reportez-vous au tableau 12-2), la paire clé-valeur résultante ressemblerait à 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 un magasin de données orienté famille de colonnes et un magasin de données de paire clé-valeur. Faire référence à HBase simplement comme un magasin de données «orienté colonne» laisse beaucoup à l'imagination.
Dans le cas où vous seriez curieux, il n'y a pas de type de données dans HBase - les valeurs dans HBase sont juste un ou plusieurs octets. Encore une fois, simple mais puissant car vous pouvez stocker n'importe quoi!