Descrever o Apache HBase

Concluído

O Apache HBase é um banco de dados NoSQL open-source que se baseia no Apache Hadoop. O HBase fornece acesso aleatório e coerência forte para grandes quantidades de dados não estruturados e semiestruturados em um banco de dados sem esquema e organizado por famílias de colunas. Os clusters HBase do HDInsight 4.0 vêm com o Apache HBase 2.1.6 e o Apache Phoenix 5.

Do ponto de vista do usuário, o HBase é semelhante a um banco de dados. Os dados são armazenados nas linhas e colunas de uma tabela e os dados em uma linha são agrupados por família de colunas. O HBase é um banco de dados sem esquema, no aspecto de que nem as colunas nem os tipos de dados armazenados nelas precisam ser definidos antes de serem utilizados. O código-fonte aberto é dimensionado linearmente para lidar com petabytes de dados em milhares de nós.

O HBase tem os seguintes recursos que o tornam exclusivo

  • Leituras e gravações consistentes

  • Operações de baixa latência

  • Fragmentação automática

  • Failovers de servidor de região automáticos

  • Integração ao Hadoop/HDFS/MapReduce

  • API de cliente Java

  • Dá suporte a Thrift e REST para front-ends não Java

  • Bloqueio de cache e filtros de Bloom

O HBase do Azure HDInsight com o Apache Phoenix tem os benefícios adicionais a seguir

  • Interfaces SQL e NoSQL

  • Planejamento de capacidade flexível

  • Distribuição global e replicação com a rede do Azure

  • Separação de computação e armazenamento

  • Integração total aos recursos de segurança do HDInsight Enterprise

  • Gravações aceleradas do HBase no HDInsight para leituras e gravações de latência ultrabaixa

  • Apache Phoenix para consultas tipo SQL em tempo real

Usar o Azure HDInsight com o HBase permite executar bancos de dados NoSQL em grande escala. Como Engenheiro de Dados da Contoso, você precisa ser capaz de executar testes de parâmetro de comparação para entender o desempenho e a escala do HBase do HDInsight antes de usar a plataforma para cenários de produção de missão crítica.

O HBase no HDInsight é executado com a separação entre computação e armazenamento. Os clusters HBase do HDInsight são configurados para armazenar dados diretamente no Armazenamento do Azure, o qual fornece baixa latência e maior elasticidade nas escolhas de desempenho e custo. Essa propriedade permite que os clientes criem sites interativos que funcionam com grandes conjuntos de dados; para criar serviços que armazenem dados de sensor e telemetria de milhões de pontos de extremidade e para analisar esses dados com tarefas do Hadoop. O HBase e o Hadoop são bons pontos de partida para projetos de Big Data no Azure. Os serviços podem habilitar aplicativos em tempo real para trabalharem com grandes conjuntos de dados. As implementações do HBase no HDInsight usam uma arquitetura de expansão do HBase para fornecer uma fragmentação de tabelas automática. E também fornece uma consistência forte para leituras e gravações, além de failover automático. O desempenho é aprimorado pelo cache na memória para leituras e streaming de alta produtividade para gravações. O cluster do HBase pode ser criado dentro da rede virtual. Para obter detalhes, confira Criar clusters do HDInsight na Rede Virtual do Azure.

HBase architecture

Como Engenheiro de Dados, você precisa determinar o tipo mais apropriado de cluster do HDInsight a ser criado para criar sua solução. Você usará clusters HBase no HDInsight para um banco de dados NoSQL que é dimensionado linearmente, obtendo uma grande quantidade de taxa de transferência, e que fornece leituras de baixa latência e armazenamento ilimitado a um custo muito mais baixo.

Veja, a seguir, os principais cenários para usar o HBase no HDInsight.

Repositório de valor-chave

O HBase geralmente é usado como um repositório de chave-valor, sendo adequado para gerenciar sistemas de mensagens.

Dados de sensor

O HBase é útil para capturar dados que são coletados incrementalmente de várias fontes, incluindo análise social e série temporal, o que mantém os painéis interativos atualizados com as tendências e os contadores, além de gerenciar sistemas de log de auditoria.

Consulta em tempo real

O Apache Phoenix é um mecanismo de consulta SQL para o Apache HBase. Ele é acessado como um driver JDBC e permite consultar e gerenciar tabelas do HBase com o SQL.

HBase como uma plataforma

Os aplicativos podem ser executados sobre o HBase utilizando-o como um armazenamento de dados. Exemplos incluem Phoenix, OpenTSDB, Kiji e Titan. Os aplicativos também podem ser integrados ao HBase. Os exemplos incluem Apache Hive, Apache Pig, Solr, Apache Flume, Apache Impala, Apache Spark, Ganglia e Apache Drill.

No HDInsight, o HBase pode ser usado como aplicativo autônomo ou pode ser implantado junto com outros aplicativos de análise de Big Data, como Spark, Hadoop, Hive ou Kafka.

HBase in the context of a Lambda architecture

O modelo de dados do HBase armazena dados semiestruturados com diferentes tipos de dados, e variação de tamanhos de coluna e tamanhos de campo. O layout do modelo de dados do HBase facilita o particionamento e a distribuição de dados por todo o cluster. O modelo de dados do HBase é composto por vários componentes lógicos, como chaves de linha, família de colunas, nome da tabela, carimbo de data/hora etc.

Uma chave de linha é usada para identificar de modo exclusivo as linhas em tabelas do HBase. No HDInsight, você pode gravar os dados diretamente no HBase por meio das várias APIs disponíveis, como HBase REST, HBase RPC Phoenix Query Server, o carregamento em massa do HBase, ou usar a integração com várias estruturas de Big Data, como Apache Spark, Hive etc.

Você pode aproveitar o recurso de gravações aceleradas do HBase para habilitar a alta taxa de transferência de gravação. Para saber mais sobre a arquitetura e as melhores práticas do HBase, confira o Guia do HBase.