Chaves linha no Modelo de Dados HBase

armazenamentos de dados HBase consistem em uma ou mais tabelas, que são indexados por chaves de linha. Os dados são armazenados em linhas com colunas e linhas pode ter várias versões. Por padrão, o controle de versão de dados para linhas é implementado com selos de tempo.

Visão Lógica de Informação ao Cliente Fale em HBase
Row KeyColuna Família: {coluna Qualifier: Versão: Valor}
00001CustomerName: { 'FN': 1383859182496: 'John',
'LN': 1383859182858: 'Smith',
'MN': 1383859183001: 'Timóteo',
'MN': 1383859182915: 'T'}
ContactInfo: { 'EA': 1383859183030:'[email protected] ',
'SA': 1383859183073: «1 Hadoop Lane, NY11111 '}
00002CustomerName: { 'FN': 1383859183103: 'Jane',
'LN': 1383859183163: 'Doe',
Informação de contacto: {
'SA': 1383859185577: «7 HBase Ave, CA22222 '}

Para fins de ilustração, a tabela tem duas chaves de linha simples: 00001 e 00002. As chaves de linha são implementados como matrizes de bytes, e são classificados em ordem byte-lexicográfico, que significa simplesmente que as chaves de linha são classificadas, byte por byte, a partir da esquerda para direita.

Se você pensar em termos de valores numéricos ao projetar chaves de linhas, então a classificação é simples. Dadas duas chaves, se o byte no índice 1 na chave 1 é menor do que o byte no Índice 1 em Key 2, linha de chave 1 será sempre armazenado antes de linha de chave 2, não importa o que é o próximo na seqüência de bytes.

No entanto, é comum o uso de caracteres imprimíveis (ASCII), em vez de valores numéricos para as chaves de linha em HBase e se você fizer isso, você precisa entender que a linguagem Java representa caracteres usando o padrão Unicode. O exemplo a seguir ilustra esta consideração projeto para Latim básico (ASCII).

"LinhaA" precede "linhaA" "Row-1" precede "Row11" "Row1" precede "linhaA"

Você pode se perguntar por que você iria se preocupar com este detalhe fino em relação à linha chaves. A razão para essa atenção especial é que o design chave apropriada linha é crucial para alcançar um bom desempenho em HBase - não fazê-lo significa que você não vai perceber o valor integral do seu cluster HBase. chaves de linhas classificado pode ajudar você a acessar seus dados mais rapidamente.

menu