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. Exemplo de dadostracA indexaรงรฃo 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.

Trabalhando com dados estruturados usando Hive

Na imagem acima, podemos observar o seguinte,

  1. Criaรงรฃo da tabela โ€œemployees_guruโ€
  2. 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.

Trabalhando com dados estruturados usando Hive

โ€“ 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.

Trabalhando com dados semiestruturados usando Hive

Na captura de tela acima, podemos observar o seguinte

  1. Criaรงรฃo da tabela โ€œxmlsample_guruโ€
  2. Carregando dados do test.xml na tabela โ€œxmlsample_guruโ€

Passo 2) Utilizar painรฉis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefรญcios: XPath () poderemos buscar os dados armazenados dentro de tags XML.

Trabalhando com dados semiestruturados usando Hive

Na captura de tela acima, podemos observar o seguinte

  1. Usando o mรฉtodo XPATH( ) estamos buscando os valores armazenados em /emp/esal/ e /emp/ename/
  2. 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โ€.

Trabalhando com dados semiestruturados usando Hive

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.

Code Snippet:

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.

Json para tabela Hive

Na captura de tela acima, podemos observar o seguinte

  1. Criaรงรฃo da tabela โ€œjson_guruโ€
  2. Carregando dados de test.json na tabela โ€œjson_guruโ€
  3. 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

Json para tabela Hive

Na captura de tela acima, podemos observar o seguinte

  1. 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
  2. Valores armazenados dentro da hierarquia JSON em json_guru

Code fragmento

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

Json complexo para tabela Hive

Na captura de tela acima, podemos observar o seguinte

  1. Criaรงรฃo na tabela complexjson_guru com campo de coluna รบnica como tipo de dados string
  2. 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.

Json complexo para tabela Hive

Passo 3) Nesta etapa, usando o comando โ€œSelectโ€, conseguimos ver dados JSON complexos armazenados na tabela โ€œcomplexjson_guruโ€

Json complexo para tabela Hive

-Amostra Code Trecho,

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:

Ao

  • 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

Resuma esta postagem com: