Índice:
Vídeo: Big Data a favor dos negócios 2024
HBase (base de dados Hadoop) é uma implementação Java do BigTable do Google. O Google define o BigTable como um "mapa ordenado multidimensional disperso, distribuído e disperso. "É uma definição bastante concisa, mas você também concordará que é um pouco do lado complexo. Para quebrar a complexidade do BigTable um pouco, a seguir é uma discussão de cada atributo.
Hbase é esparso
Como você pode ter adivinhado, o sistema de armazenamento de dados distribuído BigTable foi projetado para atender às demandas de dados importantes. Agora, os grandes aplicativos de dados armazenam muitos dados, mas o conteúdo de dados grandes também é frequentemente variável. Imagine uma tabela tradicional em um banco de dados da empresa armazenando as informações de contato do cliente, como mostrado:
ID do cliente | Sobrenome | Primeiro nome | Nome do meio | Endereço de e-mail | Endereço |
---|---|---|---|---|---|
00001 | Smith | John | Timothy | 1 Hadoop Lane, NY 11111 | |
00002 | Doe | Jane | NULL | NULL | 7 HBase Ave, CA 22222 |
Uma empresa ou pessoa física pode exigir um registro de dados completo para cada um de seus clientes ou componentes. Um bom exemplo é o seu médico, que precisa de todas as suas informações de contato para lhe fornecer cuidados adequados. Outras empresas ou indivíduos podem exigir apenas informações parciais de contato ou talvez precisem aprender essas informações ao longo do tempo.
Por exemplo, uma empresa de atendimento ao cliente pode processar chamadas telefônicas ou mensagens de e-mail para solicitações de serviço. Os clientes podem ou não escolher fornecer às empresas de serviços todas as suas informações de contato. No entanto, com cada interação ao longo do tempo, as empresas podem aprender mais sobre seus clientes, o que lhes permitirá oferecer um melhor serviço - por meio da emissão de alertas de serviço proativos, por exemplo.
Neste contexto, esparso significa que os campos em linhas podem estar vazios ou NULL, mas que não traz HBase para uma parada brusca. HBase pode lidar com o fato de que você não (ainda) conhece o nome do meio e o endereço de e-mail de Jane Doe, por exemplo.
Aqui está outro exemplo: um banco de dados para armazenar 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, os metadados também são armazenados com ele.
Os metadados podem incluir o endereço da imagem ou apenas a latitude e a longitude se a imagem for capturada na região selvagem. Os metadados são variáveis no conteúdo, então alguns campos serão NULL - e está OK.
Em ambos os exemplos, os conjuntos de dados coletados podem ser extremamente grandes - especialmente no segundo exemplo.As bases de dados de imagens são quase sempre medidas em terabytes ou às vezes em petabytes.
O HBase foi projetado para armazenar dados importantes, mas também foi projetado para armazenar registros de dados escassos, sem nenhum custo. Esta preocupação é crucial quando você está usando grandes aplicativos de dados! Armazenar alguns registros NULL ao longo de um milhão de linhas é um desperdício, mas tente imaginar o desperdício em um quadrillion de linhas!
Felizmente, essa foi uma consideração fundamental para os designers do Google e a comunidade HBase. Dados esparcidos são suportados sem desperdício de espaço de armazenamento dispendioso.
E não pára por aí. Considere o poder de um armazenamento de dados sem esquemas. A tabela mostra uma tabela de contato do cliente clássica. Quando as empresas projetam essas tabelas, eles sabem em frente o que querem armazenar. Em outras palavras, o esquema é fixo ; É definido mesmo antes do primeiro byte de informação ser armazenado na tabela.
Agora, e se, ao longo do tempo, um novo campo for necessário para um cliente? Que tal um identificador do Twitter ou um novo número de celular? Você está aparentemente preso com um esquema que não funciona mais para você.
Bem, a HBase resolve esse desafio também - você não pode simplesmente pular campos sem custos quando você não possui os dados, mas também adiciona dinamicamente campos (ou colunas no HBase vernáculo) tempo sem ter que redesenhar o esquema ou interromper as operações.
Então você pode pensar no HBase como uma loja de dados sem esquemas; ou seja, é fluido - você pode adicionar, subtrair ou modificar o esquema conforme você acompanha.
HBase é distribuído e persistente
O BigTable é um armazenamento de dados distribuído e persistente. Persistente significa simplesmente que os dados que você armazena no BigTable (e HBase, para esse assunto) persistirão ou permanecerão após o término do seu programa ou sessão. Isso é bastante direto - persistente significa que ele persiste - mas você deve passar um pouco mais de tempo pensando em como os dados são persistidos.
Em seu artigo BigTable, o Google descreveu o sistema de arquivos distribuídos conhecido como Google File System ou GFS. Acontece que, assim como o HBase é uma implementação de código aberto do BigTable, o HDFS é uma implementação de fonte aberta do GFS.
Por padrão, o HBase utiliza o HDFS para persistir seus dados no armazenamento em disco. Embora outras lojas de dados distribuídos possam ser usadas com a HBase, a grande maioria das instalações da HBase alavancam o HDFS. Isso faz todo o sentido, dado que a HBase é o "banco de dados Hadoop" - ei, é incorporado ao nome, por causa de Deus.
HDFS é uma tecnologia de habilitação chave não só para Hadoop, mas também para HBase. Ao armazenar dados no HDFS, a HBase oferece confiabilidade, disponibilidade, escalabilidade contínua, alto desempenho e muito mais - tudo em servidores distribuídos com custo efetivo!
HBase tem um mapa ordenado multidimensional
A partir do básico, um mapa (também conhecido como uma matriz associativa ) é uma coleção abstrata de pares de valores-chave, onde A chave é única. Esta definição é crucial para a sua compreensão da HBase porque o modelo de dados HBase é frequentemente descrito de diferentes maneiras - muitas vezes, de forma incompleta, como uma loja orientada a colunas.
O HBase é, no fundo, um armazenamento de dados de valor-chave onde cada chave é única - o que significa que aparece no máximo uma vez na loja de dados HBase. Além disso, o mapa está classificado e multidimensional. As chaves são armazenadas no HBase e ordenadas por ordem leteográ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 implementadas com um timestamp.