Pares de valores-chave no Modelo de Dados HBase

O modelo de dados HBase lógica é simples, mas elegante, e oferece um mecanismo de armazenamento de dados natural para todos os tipos de dados - especialmente não estruturados grandes conjuntos de dados. Todas as partes do modelo de dados convergem para um par de chave-valor.

Primeiro, em um mundo onde você pode pensar da chave de linha como chave primária para os dados armazenados no HBase, como é que você acaba alavancando o resto dos componentes do modelo de dados? Bem, tudo depende da quantidade de dados que você deseja retornado em consultas e quanto tempo você está disposto a esperar.

Especificando apenas a chave de linha pode potencialmente retornar uma tonelada de dados, porque uma linha individual pode ter milhões de colunas. Além disso, apenas com a chave de linha para trabalhar, HBase pode retornar todos os qualifier coluna, a versão eo valor relacionado com a chave de linha.

E se você quiser apenas uma coluna específica ou versão de seus dados? A partir do exemplo mostrado, você pode ver o que acontece se você quiser apenas o último nome de um determinado cliente? A solução é construir uma chave mais complexo para especificar exatamente o que você precisa. Um par de valores-chave pode ter esta aparência: RowKey: (Coluna Família: Coluna Qualifier: Version) => Valor

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

Depois de especificar a chave, o resto é opcional. Quanto mais específico você fazer a consulta, no entanto (da esquerda para a direita), o mais granular os resultados. Seu desempenho vai piorar, porque o sistema tem que gastar mais tempo para localizar o valor exato ou valores que você precisa, mas menos dados são retornados quando a consulta for concluída.

Então as chaves são mais complexas do que você pode imaginar a partir do estudo da mesa. Por exemplo, se você quiser o nome do meio mais recente (ou o único nome do meio até agora) do cliente na linha '00001', o par chave-valor resultante ficaria assim: '00001: CustomerName: MN' => ' Timothy '

Lembre-se que as versões são implementados usando selos de tempo por padrão e são classificadas em ordem decrescente, para que você obtenha automaticamente o valor mais recente, se você não especificar uma versão. Se você quer uma inicial do meio prévia para o seu cliente (consulte a Tabela 12-2), o seu par de chaves-valor resultante ficaria assim: '00001: CustomerName: MN: 1383859182915' => 'T'

Esperamos que as várias descrições de HBase estão começando a tomar forma em sua mente. Especificamente, HBase é tanto um repositório de dados orientada para a família de coluna e um armazenamento de dados de valor par de chaves. Referindo-se como uma simples HBase # 147-coluna orientada armazenamento de dados # 148- deixa muito para a imaginação.

Em caso você estava curioso, não há tipos de dados no HBase - valores em HBase são apenas um ou mais bytes. Mais uma vez, simples, mas poderosa, porque você pode armazenar qualquer coisa!

menu