Hive ETL: Carregando JSON, XML, exemplos de dados de texto

Índice:

Anonim

O Hive como uma ferramenta de armazenamento de dados e ETL no topo do ecossistema Hadoop 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 carregamento de dados estruturados e semiestruturados, bem como consulta de dados com base nos requisitos.

Para o processamento em lote, vamos escrever scripts personalizados usando um mapa personalizado e reduzir os scripts usando uma linguagem de script. Ele fornece um ambiente semelhante ao SQL e suporte para consultas fáceis.

Neste tutorial, você aprenderá-

  • Trabalho com dados estruturados usando Hive
  • Trabalho com dados semiestruturados usando Hive (XML, JSON)
  • Projetos Hive em tempo real - quando e onde usar

Trabalho com dados estruturados usando Hive

Dados estruturados significam que os dados estão no formato adequado de linhas e colunas. É mais parecido com dados RDBMS com linhas e colunas adequadas.

Aqui vamos carregar dados estruturados presentes em arquivos de texto no Hive

Etapa 1) Nesta etapa estamos criando a tabela "workers_guru" com nomes de colunas como Id, Nome, Idade, Endereço, Salário e Departamento dos funcionários com tipos de dados.

Na captura de tela acima, podemos observar o seguinte,

  1. Criação da tabela "workers_guru"
  2. Carregando dados de Employees.txt na tabela "workers_guru"

Etapa 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.

- Amostra 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;

Trabalho com dados semiestruturados usando Hive (XML, JSON)

O Hive executa funcionalidades ETL no ecossistema Hadoop agindo como ferramenta ETL. Pode ser difícil realizar a redução do mapa em alguns tipos de aplicativos, o Hive pode reduzir a complexidade e fornecer a melhor solução para os aplicativos de TI em termos de setor de data warehouse.

Dados semiestruturados, como XML e JSON, podem ser processados ​​com menos complexidade usando o Hive. Primeiro, veremos como podemos usar o Hive para XML.

TABELA XML PARA HIVE

Nisto, vamos carregar dados XML nas tabelas Hive e buscar 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

  1. Criação da tabela "xmlsample_guru"
  2. Carregando dados do test.xml na tabela "xmlsample_guru"

Etapa 2) Usando o método XPath (), poderemos buscar os dados armazenados nas tags XML.

Na captura de tela acima, podemos observar o seguinte

  1. Usando o método XPATH (), estamos obtendo os valores armazenados em / emp / esal / e / emp / ename /
  2. Os valores apresentam tags XML internas. Nesta etapa, estamos exibindo os valores reais armazenados em tags XML na tabela "xmlsample_guru"

Etapa 3) Nesta etapa, buscaremos e exibiremos 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 única tag, é com "emp" como tag pai com "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 (JavaScript Object Notation)

Os dados do Twitter e dos 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.

TABELA JSON PARA HIVE

Nisto, vamos carregar dados JSON nas tabelas Hive e buscar os valores armazenados no esquema JSON.

Etapa 1) Nesta etapa, criaremos o nome da tabela JSON "json_guru". Uma vez criado, carrega e exibe o conteúdo do esquema real.

Na captura de tela acima, podemos observar o seguinte

  1. Criação da mesa "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

Etapa 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

  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 de sal ename da tabela json_guru
  2. 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, vamos carregar dados JSON complexos em tabelas Hive e buscaremos os valores armazenados no esquema JSON

Etapa 1) Criação de complexjson_guru com campo de coluna única

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 de string
  2. Carregando dados em complexjson_guru a partir do arquivo JSON complexo emp.json

Etapa 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.

Etapa 3) Nesta etapa, usando o comando "Select", podemos realmente ver dados JSON complexos armazenados dentro da tabela "complexjson_guru"

- Snippet de código de amostra,

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;

Projetos Hive 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 de tipo SQL e consultar como SQL usando HIVEQL
  • Para usar e implantar mapas personalizados especificados e scripts de redutor para os requisitos específicos do cliente