Descrever o Apache HBase
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.
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.
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.