Os atributos de HBase

HBase

Conteúdo

(Hadoop Banco de Dados) é uma implementação Java do BigTable do Google. Google BigTable define como um # 147-esparsa, distribuídos, mapa classificadas multidimensional persistente. # 148- É completamente uma definição concisa, mas você também vai concordar que é um pouco no lado complexa. Para quebrar a complexidade do BigTable um pouco, seguindo-se uma discussão de cada atributo.

HBase é esparsa

Como você deve ter adivinhado, o BigTable distribuídos sistema de armazenamento de dados foi projetado para atender às demandas de grandes dados. Agora, aplicações de dados grandes armazenar grandes quantidades de dados, mas o conteúdo de dados grande, também é muitas vezes variável. Imagine uma mesa tradicional em uma informação de contato do cliente de banco de dados da empresa armazenar, como mostrado:

Tradicional Customer Contact Information Table
Identificação do ClienteÚltimo nomePrimeiro nomeNome do meioEndereço de e-mailEndereço
00001ferreiroJoãoTimothy 1 Hadoop Lane, NY 11111
00002CorçaJaneNULONULO7 HBase Ave, CA 22222

A empresa ou indivíduo pode exigir um registro completo de dados para cada um dos seus clientes ou constituintes. Um bom exemplo é o seu médico, que precisa de todas as suas informações de contato, a fim de fornecê-lo com o cuidado adequado. Outras empresas ou indivíduos apenas podem exigir informações de contato parcial ou pode precisar de aprender essa informação ao longo do tempo.

Por exemplo, uma empresa de serviço ao cliente pode processar chamadas ou mensagens de e-mail para pedidos de serviço. Os clientes podem ou não optar por dar às empresas de serviços todas as suas informações de contato. No entanto, com cada interação com o tempo, as empresas podem saber mais sobre seus clientes que lhes permitam prestar um melhor serviço - emitindo alertas de serviço proativas, por exemplo.

Neste contexto, escasso significa que os campos em linhas pode ser vazia ou NULL, mas que não traz HBase a um ponto insuportável. HBase pode lidar com o fato de que você não (ainda) sabe o nome e e-mail meio de Jane Doe, por exemplo.

Aqui está outro exemplo: um banco de dados para o armazenamento de imagens de satélite. Acontece que o Google usa a tecnologia BigTable para armazenar imagens de satélite da terra. Em quase todos os casos, sempre que as imagens são armazenadas, metadados também é mantido com o mesmo.

Os metadados podem incluir o endereço da imagem ou somente a latitude e longitude se a imagem é capturada desde o deserto. Os metadados é variável em conteúdo para alguns campos será nulo - e isso é OK.


Em ambos os exemplos, os conjuntos de dados que são recolhidos podem ser extremamente grande - especialmente no segundo exemplo. bases de dados de imagens são quase sempre medido em terabytes ou às vezes em petabytes.

HBase é projetado para o armazenamento de dados grandes, mas também é projetado para armazenar registros de dados esparsos, sem nenhum custo. Esta preocupação é crucial quando você está usando aplicativos de dados grandes! Armazenar alguns registros NULL mais de um milhão de linhas é um desperdício, mas tente imaginar os resíduos mais de um quatrilhão de linhas!

Felizmente, esta foi uma consideração importante para os designers do Google e da comunidade HBase. dados esparsos é suportado sem desperdício de espaço de armazenamento caro.



E não pára por aí. Considere o poder de um armazenamento de dados sem esquema. A tabela mostra uma tabela de contato com o cliente clássico. Quando as empresas projetar essas tabelas, eles sabem de antemão o que eles querem armazenar. Em outras palavras, o esquema é fixo- É definido mesmo antes do primeiro byte de informação é armazenado na tabela.

Agora, o que se, ao longo do tempo, um novo campo é necessário para um cliente? Como sobre uma alça de Twitter ou um novo número de telefone celular? Você está aparentemente preso com um esquema que já não funciona para você.

Bem, HBase resolve este desafio, bem como - você pode não só ignorar campos, sem nenhum custo quando você não tem os dados, mas também adicionar dinamicamente campos (ou colunas no vernáculo HBase) ao longo do tempo sem ter que redesenhar o esquema ou interromper as operações.

Assim, você pode pensar em HBase como um store- de dados sem esquema que é, é fluido - você pode adicionar, subtrair, ou modificar o esquema que você vá junto.

HBase é distribuído e persistente

BigTable é um sistema de arquivos distribuído e persistente. Persistente significa simplesmente que os dados armazenados em BigTable (e HBase, para que o assunto) vai persistir ou permanecer após o seu programa ou sessão termina. Isso é bastante simples - persistente significa que persiste - mas você deve gastar um pouco mais tempo pensando sobre como os dados são persistiu.

No seu documento de BigTable, o Google descreveu o sistema de arquivos distribuídos conhecido como Google File System ou GFS. Acontece que, como HBase é uma implementação open source do BigTable, HDFS é uma implementação open source do GFS.

Por padrão, o HBase aproveita HDFS para persistir seus dados para armazenamento em disco. Embora outros armazenamentos de dados distribuídos pode ser usado com HBase, a grande maioria dos HBase instalações alavancagem HDFS. Isso faz sentido dado que HBase é o # 147 Hadoop banco de dados # 148- - Ei, é embutido no nome, pelo amor de Deus.

HDFS é uma tecnologia chave que permite não só para Hadoop, mas também para HBase. Ao armazenar dados no HDFS, HBase oferece confiabilidade, disponibilidade, escalabilidade sem costura, alta performance e muito mais - tudo no custo de servidores distribuídos eficazes!

HBase tem um mapa classificadas multidimensional

A partir dos conceitos básicos, um mapa (Também conhecido como um matriz associativa) É uma coleção abstrata de pares chave-valor, onde a chave é única. Esta definição é crucial para a sua compreensão de HBase porque o modelo de dados HBase é frequentemente descrito de maneiras diferentes - muitas vezes de forma incompleta como uma loja orientada para a coluna.

HBase é, no fundo, um armazenamento de dados de valores-chave, onde cada tecla é único - o que significa que aparece no máximo uma vez no armazenamento de dados HBase. Além disso, o mapa é classificado e multidimensional. As chaves são armazenados em HBase e classificados em ordem byte-lexicográfica. Cada valor pode ter várias versões, o que torna o modelo de dados multidimensional. Por padrão, as versões de dados são implementados com um timestamp.