HBase - Visão geral

Desde 1970, o RDBMS é a solução para problemas relacionados ao armazenamento e manutenção de dados. Após o advento do big data, as empresas perceberam os benefícios do processamento de big data e começaram a optar por soluções como o Hadoop.

O Hadoop usa o sistema de arquivos distribuído para armazenar big data e MapReduce para processá-lo. O Hadoop se destaca no armazenamento e processamento de dados enormes em vários formatos, como arbitrário, semi-estruturado ou até mesmo não estruturado.

Limitações do Hadoop

O Hadoop pode executar apenas processamento em lote e os dados serão acessados ​​apenas de maneira sequencial. Isso significa que é necessário pesquisar todo o conjunto de dados, mesmo para os trabalhos mais simples.

Um enorme conjunto de dados quando processado resulta em outro enorme conjunto de dados, que também deve ser processado sequencialmente. Neste ponto, uma nova solução é necessária para acessar qualquer ponto de dados em uma única unidade de tempo (acesso aleatório).

Bancos de dados de acesso aleatório Hadoop

Aplicativos como HBase, Cassandra, couchDB, Dynamo e MongoDB são alguns dos bancos de dados que armazenam grandes quantidades de dados e acessam os dados de maneira aleatória.

O que é HBase?

HBase é um banco de dados orientado a colunas distribuído construído sobre o sistema de arquivos Hadoop. É um projeto de código aberto e escalonável horizontalmente.

HBase é um modelo de dados semelhante à grande mesa do Google, projetado para fornecer acesso aleatório rápido a grandes quantidades de dados estruturados. Ele aproveita a tolerância a falhas fornecida pelo Hadoop File System (HDFS).

É uma parte do ecossistema Hadoop que fornece acesso aleatório de leitura / gravação em tempo real aos dados no Hadoop File System.

É possível armazenar os dados no HDFS diretamente ou por meio do HBase. O consumidor de dados lê / acessa os dados no HDFS aleatoriamente usando o HBase. O HBase se baseia no Hadoop File System e fornece acesso de leitura e gravação.

HBase e HDFS

HDFS HBase
HDFS é um sistema de arquivos distribuído adequado para armazenar arquivos grandes. HBase é um banco de dados construído sobre o HDFS.
O HDFS não oferece suporte a pesquisas rápidas de registros individuais. O HBase fornece pesquisas rápidas para tabelas maiores.
Ele fornece processamento em lote de alta latência; nenhum conceito de processamento em lote. Ele fornece acesso de baixa latência a linhas únicas de bilhões de registros (acesso aleatório).
Ele fornece apenas acesso sequencial aos dados. O HBase usa tabelas Hash internamente e fornece acesso aleatório e armazena os dados em arquivos HDFS indexados para pesquisas mais rápidas.

Mecanismo de armazenamento em HBase

HBase é um column-oriented databasee as tabelas nele são classificadas por linha. O esquema da tabela define apenas famílias de colunas, que são os pares de valores-chave. Uma tabela tem vários grupos de colunas e cada grupo de colunas pode ter qualquer número de colunas. Os valores das colunas subsequentes são armazenados de forma contígua no disco. Cada valor de célula da tabela possui um carimbo de data / hora. Resumindo, em um HBase:

  • A tabela é uma coleção de linhas.
  • Linha é uma coleção de famílias de colunas.
  • Família de colunas é uma coleção de colunas.
  • A coluna é uma coleção de pares de valores-chave.

A seguir, é fornecido um exemplo de esquema de tabela no HBase.

Rowid Família de coluna Família de coluna Família de coluna Família de coluna
col1 col2 col3 col1 col2 col3 col1 col2 col3 col1 col2 col3
1
2
3

Orientado a coluna e orientado a linha

Bancos de dados orientados a colunas são aqueles que armazenam tabelas de dados como seções de colunas de dados, em vez de linhas de dados. Em breve, eles terão famílias de colunas.

Banco de dados orientado a linha Banco de dados orientado a coluna
É adequado para o Processo de Transação Online (OLTP). É adequado para processamento analítico online (OLAP).
Esses bancos de dados são projetados para um pequeno número de linhas e colunas. Bancos de dados orientados a colunas são projetados para tabelas enormes.

A imagem a seguir mostra famílias de colunas em um banco de dados orientado a colunas:

HBase e RDBMS

HBase RDBMS
O HBase não tem esquema, não tem o conceito de esquema de colunas fixas; define apenas famílias de colunas. Um RDBMS é governado por seu esquema, que descreve toda a estrutura das tabelas.
Foi concebido para mesas largas. O HBase é escalonável horizontalmente. É fino e feito para pequenas mesas. Difícil de escalar.
Não há transações no HBase. O RDBMS é transacional.
Possui dados desnormalizados. Terá dados normalizados.
É bom para dados semiestruturados e também estruturados. É bom para dados estruturados.

Recursos do HBase

  • O HBase é linearmente escalonável.
  • Possui suporte a falhas automáticas.
  • Ele fornece leitura e gravação consistentes.
  • Ele se integra ao Hadoop, tanto como origem quanto como destino.
  • Possui API Java fácil para cliente.
  • Ele fornece replicação de dados entre clusters.

Onde usar o HBase

  • O Apache HBase é usado para ter acesso aleatório de leitura / gravação em tempo real ao Big Data.

  • Ele hospeda tabelas muito grandes em cima de clusters de hardware comum.

  • Apache HBase é um banco de dados não relacional modelado de acordo com o Bigtable do Google. O Bigtable atua no Google File System, da mesma forma que o Apache HBase funciona no Hadoop e HDFS.

Aplicações de HBase

  • É usado sempre que houver necessidade de escrever aplicativos pesados.
  • O HBase é usado sempre que precisamos fornecer acesso aleatório rápido aos dados disponíveis.
  • Empresas como Facebook, Twitter, Yahoo e Adobe usam o HBase internamente.

História HBase

Ano Evento
Novembro de 2006 O Google divulgou o artigo no BigTable.
Fevereiro de 2007 O protótipo inicial do HBase foi criado como uma contribuição do Hadoop.
Out 2007 O primeiro HBase utilizável junto com o Hadoop 0.15.0 foi lançado.
Janeiro de 2008 HBase se tornou o subprojeto do Hadoop.
Outubro de 2008 HBase 0.18.1 foi lançado.
Janeiro de 2009 HBase 0.19.0 foi lançado.
Setembro de 2009 HBase 0.20.0 foi lançado.
Maio de 2010 HBase se tornou o projeto de nível superior do Apache.