Hive ETL: carregando JSON, XML, exemplos de dados de texto
Hive como uma ferramenta de ETL e armazenamento de dados além de Hadoop O ecossistema fornece funcionalidades como modelagem de dados, manipulação de dados, processamento de dados e consulta de dados. Extração de dados no Hive significa a criação de tabelas no Hive e o carregamento de dados estruturados e semiestruturados, bem como a consulta de dados com base nos requisitos.
Para processamento em lote, escreveremos scripts personalizados usando um mapa personalizado e reduziremos scripts usando uma linguagem de script. Ele fornece SQL como ambiente e suporte para consultas fáceis.
Trabalhando com dados estruturados usando Hive
Dados Estruturados significa que os dados estão no formato adequado de linhas e colunas. Isso é mais parecido RDBMS dados com linhas e colunas adequadas.
Aqui vamos carregar dados estruturados presentes em arquivos de texto no Hive
Passo 1) Nesta etapa estamos criando a tabela “employees_guru” com nomes de colunas como Id, Nome, Idade, Endereço, Salário e Departamento dos funcionários com tipos de dados.
Na imagem acima, podemos observar o seguinte,
- Criação da tabela “employees_guru”
- Carregando dados de Employees.txt na tabela “employees_guru”
Passo 2) Nesta etapa estamos exibindo o conteúdo armazenado nesta tabela usando o comando “Selecionar”. Podemos observar o conteúdo da tabela na captura de tela a seguir.
– Exemplo de trecho de código
Consultas a serem realizadas
1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) > Row format delimited > Fields terminated by ','; 2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru; 3) select * from employees_guru;
Trabalhando com dados semiestruturados usando Hive (XML, JSON)
O Hive executa funcionalidades ETL no ecossistema Hadoop atuando como Ferramenta ETL. Pode ser difícil executar a redução de mapa em alguns tipos de aplicativos, o Hive pode reduzir a complexidade e fornecer a melhor solução para aplicativos de TI em termos de setor de armazenamento de dados.
Dados semiestruturados como XML e JSON podem ser processados com menos complexidade usando Hive. Primeiro veremos como podemos usar Hive para XML.
XML PARA TABELA HIVE
Neste, carregaremos dados XML nas tabelas Hive e buscaremos os valores armazenados dentro das tags XML.
Passo 1) Criação da Tabela “xmlsample_guru” com coluna str com tipo de dados string.
Na captura de tela acima, podemos observar o seguinte
- Criação da tabela “xmlsample_guru”
- Carregando dados do test.xml na tabela “xmlsample_guru”
Passo 2) utilização XPath () poderemos buscar os dados armazenados dentro de tags XML.
Na captura de tela acima, podemos observar o seguinte
- Usando o método XPATH( ) estamos buscando os valores armazenados em /emp/esal/ e /emp/ename/
- Valores presentes nas tags XML. Nesta etapa, estamos exibindo valores reais armazenados em tags XML na tabela “xmlsample_guru”
Passo 3) Nesta etapa, iremos buscar e exibir o XML bruto da tabela “xmlsample_guru”.
Na captura de tela acima, podemos observar o seguinte
- Os dados XML reais exibidos com tags
- Se observarmos uma tag única, é com “emp” como tag pai e “ename” e “esal” como tags filhas.
Fragmento de código:
Consultas a serem realizadas
1) create table xmlsample_guru(str string); 2) load data local inpath '/home/hduser/test.xml' overwrite into table xmlsample_guru; 3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;
JSON (JavaNotação de Objeto de Script)
Os dados do Twitter e de sites são armazenados no formato JSON. Sempre que tentarmos buscar dados de servidores online, ele retornará arquivos JSON. Usando o Hive como armazenamento de dados, podemos carregar dados JSON nas tabelas do Hive criando esquemas.
JSON PARA TABELA HIVE
Neste, carregaremos dados JSON nas tabelas Hive e buscaremos os valores armazenados no esquema JSON.
Passo 1) Nesta etapa, vamos criar a tabela JSON com o nome “json_guru”. Uma vez criado, carrega e exibe o conteúdo do esquema real.
Na captura de tela acima, podemos observar o seguinte
- Criação da tabela “json_guru”
- Carregando dados de test.json na tabela “json_guru”
- Exibindo o esquema real do arquivo JSON armazenado nas tabelas json_guru
Passo 2) Usando o método get_json_object() podemos buscar os valores de dados armazenados na hierarquia JSON
Na captura de tela acima, podemos observar o seguinte
- Usando get_json_object (str,'$.ecode) ele pode buscar valores de ecode da tabela json_guru. Da mesma forma, usando get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) ele irá buscar os valores ename sal da tabela json_guru
- Valores armazenados dentro da hierarquia JSON em json_guru
Fragmento de código
Consultas a serem realizadas
1) create table json_guru(str string); 2) load data inpath 'home/hduser/test.json' into table json_guru; 3) select * from json1; 4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;
JSON complexo para tabela HIVE
Neste, carregaremos dados JSON complexos em tabelas Hive e buscaremos os valores armazenados no esquema JSON
Passo 1) Criando complexjson_guru com campo de coluna única
Na captura de tela acima, podemos observar o seguinte
- Criação na tabela complexjson_guru com campo de coluna única como tipo de dados string
- Carregando dados em complexjson_guru do arquivo JSON complexo emp.json
Passo 2) Usando get_json_object podemos recuperar o conteúdo real armazenado dentro da hierarquia de arquivos JSON.
Na captura de tela a seguir, podemos ver a saída dos dados armazenados em complexjson_guru.
Passo 3) Nesta etapa, usando o comando “Select”, conseguimos ver dados JSON complexos armazenados na tabela “complexjson_guru”
-Exemplo de trecho de código,
Consultas a serem realizadas
1) create table complexjson_guru(json string); 2) load data inpath 'home/hduser/emp.json' into table complexjson_guru; 3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru; 4) select * from complexjson_guru;
Hive em projetos em tempo real – quando e onde usar
Quando e onde usar o Hive no ecossistema Hadoop:
Quando
- Ao trabalhar com funções estatísticas fortes e poderosas no ecossistema Hadoop
- Ao trabalhar com processamento de dados estruturados e semiestruturados
- Como ferramenta de data warehouse com Hadoop
- Ingestão de dados em tempo real com HBASE, Hive pode ser usado
Onde
- Para facilitar o uso de ETL e ferramenta de armazenamento de dados
- Para fornecer ambiente do tipo SQL e consultar como SQL usando HIVEQL
- Para usar e implementar scripts de mapa e redutor especificados personalizados para os requisitos específicos do cliente