Touches de ligne dans le modèle de données HBase

Hbase magasins de données sont constitués d'une ou plusieurs tables qui sont indexées par les touches de ligne. Les données sont stockées dans des lignes avec des colonnes et rangées peut avoir plusieurs versions. Par défaut, le versioning des données pour les lignes est mis en œuvre avec horodatage.

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 '}

Par souci d'illustration, le tableau a deux touches de lignes simples: les touches 00001 et 00002. lignes sont mises en œuvre comme des tableaux d'octets, et sont classés par ordre de byte-lexicographique, ce qui signifie tout simplement que les touches de ligne sont triés, octet par octet, à partir de de gauche à droite.




Si vous pensez en termes de valeurs numériques lors de la conception des touches de ligne, puis le tri est simple. Étant donné deux touches, si l'octet à l'index 1 à Key 1 est inférieur à l'octet à l'index 1 à Key 2, rangée de touches 1 sera toujours stocké avant Key Row 2, peu importe quelle est la prochaine dans la séquence d'octets.

Cependant, il est courant d'utiliser des caractères ASCII () imprimables plutôt que des valeurs numériques pour les touches de ligne dans HBase et si vous le faites, vous devez comprendre que le langage Java représente caractères selon le standard Unicode. L'exemple suivant illustre cette considération de conception pour Latin de base (ASCII).

"Rangée A" précède "la rangée A" "Ligne-1" précède "Row11" "Row1" précède "la rangée A"

Vous pouvez vous demander pourquoi vous embêter avec cette finesse des détails par rapport à la rangée des touches. La raison de cette attention particulière est que la conception clé de ligne appropriée est cruciale pour réaliser de bonnes performances dans HBase - ne pas le faire signifie que vous ne serez pas réaliser la pleine valeur de votre cluster HBase. Touches de lignes triées peuvent vous aider à accéder à vos données plus rapidement.


» » » » Touches de ligne dans le modèle de données HBase