Home / BIG DATA / Importando dados do MySQL para o Hbase e realizando consultas com o hive

Importando dados do MySQL para o Hbase e realizando consultas com o hive

O Apache HBase é um banco de dados não relacional (NoSQL) de código aberto, distribuído, baseado no paper do Google Bigtable: A Distributed Storage System for Structured Data / sistema de armazenamento distribuído para dados estruturados Google

O objetivo do projeto é conseguir realizar o armazenamento de tabelas realmente grandes (bilhões de linhas x milhões de colunas) utilizando clusters comuns.

Com isto dito, vamos realizar um projeto aonde buscaremos informações de um banco de dados MySQL com Sqoop, salvando os dados em uma base Hbase.

Utilizaremos a VM Cloudera. A VM Cloudera conta com todas as ferramentas necessárias para nosso exemplo.

Vamos utilizar também a base de dados MySQL que utilizamos em nosso post: Hadoop: copiando dados de um banco relacional MySQL para o HDFS utilizando Sqoop e consultando dados utilizando Hive

Vamos abrir o terminal de nossa VM e digitar:

Vamos criar agora nossa tabela employees:

Isto criará nossa tabela employeesHBASE. Digite exit para voltarmos ao inicio do terminal.

Precisamos integrar o serviço do Hbase e do Hive para que seja possível o Hive acessar os dados vindos do Hbase, como mostra a documentação da Cloudera:
https://www.cloudera.com/documentation/enterprise/5-13-x/topics/cdh_ig_hive_hbase.html

Vamos agora importar os dados da nossa tabela employees de nosso banco relacional MySQL para nosso banco NoSQL Hbase

Vamos visualizar agora estes dados em nosso HUE. Em seu navegador firefox, clique no atalho do HUE, clique no botão hbase e e em seguida em nossa tabela criada:

Excelente. Para facilitar nossas consultas, o ideal seria se fosse possível utilizarmos SQL para isso. Como não estamos trabalhando com um banco relacional, o Hive irá nos ajudar nesta tarefa, utilizando seu HQL. Para isso, vamos criar uma EXTERNAL TABLE, que ficará “em cima” de nossa table Hbase, tornando-se possível estas consultas.

INTERNAL TABLE – Hive Managed Tables

Quando criamos uma tabela no Hive, ela, por padrão, gerencia os dados. Isso significa que o Hive move os dados para o diretório do warehouse.

EXTERNAL TABLE

Nós também podemos criar uma tabela externa. Ele diz ao Hive para se referir aos dados que estão em um local existente fora do diretório do warehouse.
Fonte: https://data-flair.training/blogs/hive-internal-tables-vs-external-tables/

Vamos então criar nossa external table:

Conseguimos agora dar um SELECT em nossa tabela Hbase:

Se preferir, use o HUE também:

Check Also

Pandas get_dummies x Sklearn DictVectorizer

Em machine learning, uma das partes mais importantes é a feature engineering. Este post tratará …

Leave a Reply

Your email address will not be published. Required fields are marked *