Hive ETL: carregando JSON, XML, exemplos de dados de texto
โก Resumo Inteligente
O Hive ETL transforma arquivos de texto, XML e JSON em tabelas consultรกveis, carregando-os no Hive e executando-os.tracA manipulaรงรฃo de valores com xpath() e get_json_object() proporciona aos analistas uma interface SQL sobre dados Hadoop semiestruturados.

Hive como ferramenta de ETL e armazenamento de dados sobre o 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, vamos escrever scripts personalizados usando scripts de mapeamento e reduรงรฃo personalizados em uma linguagem de script. Isso fornece um SQL como ambiente e suporte para consultas fรกceis.
Trabalhando com dados estruturados usando Hive
Dados estruturados significam que os dados estรฃo no formato adequado de linhas e colunas. Isso รฉ mais parecido com... 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.
A partir da captura de tela acima, podemos observar o seguinte:
- Criaรงรฃo da tabela โemployees_guruโ
- Carregando dados do arquivo 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.
Trecho de cรณdigo de exemplo
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 de ETL no ecossistema Hadoop atuando como um... Ferramenta ETLA implementaรงรฃo do MapReduce pode ser complexa em alguns tipos de aplicaรงรตes; o Hive reduz essa complexidade e oferece a melhor soluรงรฃo para aplicaรงรตes de TI no setor de armazenamento de dados.
Dados semiestruturados, como XML e JSON, podem ser processados โโcom menos complexidade usando o Hive. Primeiro, veremos como podemos usar o 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 uma coluna str do tipo de dados string.
A partir da captura de tela acima, podemos observar o seguinte:
- Criaรงรฃo da tabela โxmlsample_guruโ
- Carregando dados do arquivo test.xml na tabela โxmlsample_guruโ
Passo 2) Com o XPath Com o mรฉtodo xpath(), poderemos obter os dados armazenados dentro das tags XML.
A partir da captura de tela acima, podemos observar o seguinte:
- Utilizando o mรฉtodo xpath(), estamos buscando os valores armazenados em /emp/esal/ e /emp/ename/.
- Valores presentes dentro das tags XML. Nesta etapa, estamos exibindo os valores reais armazenados sob as tags XML na tabela โxmlsample_guruโ.
Note que xpath() retorna uma matriz de strings; xpath_string(), xpath_int() e xpath_double() retornam um รบnico valor tipado.
Passo 3) Nesta etapa, iremos obter e exibir o XML bruto da tabela โxmlsample_guruโ.
A partir da captura de tela acima, podemos observar o seguinte:
- Os dados XML reais exibidos com tags
- Se observarmos uma รบnica tag, ela terรก โempโ como tag principal e โenameโ e โesalโ como tags filhas.
Code trecho:
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 de redes sociais e sites sรฃo geralmente armazenados em formato JSON. Sempre que tentamos obter dados de servidores online, eles retornam arquivos JSON. Usando o Hive como banco de dados, podemos carregar dados JSON em tabelas do Hive criando esquemas.
JSON para tabela Hive
Neste tutorial, vamos carregar dados JSON em tabelas do Hive e recuperar os valores armazenados no esquema JSON.
Passo 1) Nesta etapa, vamos criar uma tabela JSON chamada โjson_guruโ. Depois de criada, carregamos e exibimos o conteรบdo do esquema propriamente dito.
A partir da captura de tela acima, podemos observar o seguinte:
- Criaรงรฃo da tabela โjson_guruโ
- Carregando dados do arquivo test.json na tabela โjson_guruโ
- Exibindo o esquema real do arquivo JSON armazenado na tabela json_guru.
Passo 2) Utilizando o mรฉtodo get_json_object(), podemos obter os valores de dados armazenados na hierarquia JSON.
A partir da captura de tela acima, podemos observar o seguinte:
- Usando `get_json_object(str,'$.ecode')`, รฉ possรญvel obter os valores de `ecode` da tabela `json_guru`. Da mesma forma, usando `get_json_object(str,'$.ename')` e `get_json_object(str,'$.sal')`, serรฃo obtidos os valores de `ename` e `sal` da tabela `json_guru`.
- Valores armazenados dentro da hierarquia JSON em json_guru
Como get_json_object() analisa o documento uma vez por chamada, json_tuple() รฉ mais eficiente quando vรกrias chaves sรฃo necessรกrias, e um JSON SerDe mapeia o documento em colunas tipadas no momento do carregamento.
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 json_guru; 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 tutorial, vamos carregar dados JSON complexos em tabelas do Hive e recuperar os valores armazenados no esquema JSON.
Passo 1) Criando complexjson_guru com um campo de coluna รบnica.
A partir da captura de tela acima, podemos observar o seguinte:
- Criaรงรฃo da tabela complexjson_guru com um รบnico campo de coluna do tipo de dados string.
- Carregando dados do arquivo JSON complexo emp.json no complexjson_guru
Passo 2) Ao usar a funรงรฃo `get_json_object`, podemos recuperar o conteรบdo real armazenado na hierarquia do arquivo JSON.
Na captura de tela a seguir, podemos ver a saรญda dos dados armazenados em complexjson_guru.
Passo 3) Nesta etapa, utilizando o comando โSelectโ, conseguimos visualizar os dados JSON complexos armazenados na tabela โcomplexjson_guruโ.
Trecho de cรณdigo de exemplo
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 robustas e poderosas no ecossistema Hadoop, รฉ importante considerar os desafios inerentes ao 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, onde o Hive pode ser utilizado.
Onde
- Para facilitar o uso como ferramenta de ETL e armazenamento de dados.
- Para fornecer um ambiente do tipo SQL e realizar consultas semelhantes a SQL usando HiveQL.
- Utilizar e implementar scripts de mapa e redutor personalizados para atender a requisitos especรญficos do cliente.










