Hive ETL: caricamento di JSON, XML, esempi di dati di testo

Sommario:

Anonim

Hive come strumento ETL e di data warehousing in cima all'ecosistema Hadoop fornisce funzionalità come modellazione dei dati, manipolazione dei dati, elaborazione dei dati e query dei dati. Estrazione dati in Hive significa la creazione di tabelle in Hive e il caricamento di dati strutturati e semi strutturati, nonché l'esecuzione di query sui dati in base ai requisiti.

Per l'elaborazione batch, scriveremo script definiti personalizzati utilizzando una mappa personalizzata e ridurremo gli script utilizzando un linguaggio di scripting. Fornisce un ambiente simile a SQL e il supporto per una facile query.

In questo tutorial imparerai-

  • Lavorare con i dati strutturati utilizzando Hive
  • Lavorare con dati semi strutturati utilizzando Hive (XML, JSON)
  • Progetti Hive in Real time - Quando e dove utilizzarli

Lavorare con i dati strutturati utilizzando Hive

Dati strutturati significa che i dati sono nel formato corretto di righe e colonne. Questo è più simile ai dati RDBMS con righe e colonne appropriate.

Qui andremo a caricare i dati strutturati presenti nei file di testo in Hive

Passaggio 1) In questo passaggio creiamo la tabella "Employee_guru" con nomi di colonne come Id, Nome, Età, Indirizzo, Salario e Reparto dei dipendenti con tipi di dati.

Dallo screenshot qui sopra, possiamo osservare quanto segue,

  1. Creazione della tabella "dipendenti_guru"
  2. Caricamento dei dati da Employees.txt nella tabella "dipendenti_guru"

Passaggio 2) In questo passaggio vengono visualizzati i contenuti memorizzati in questa tabella utilizzando il comando "Seleziona". Possiamo osservare il contenuto della tabella nella seguente schermata.

- Esempio di frammento di codice

Query da eseguire

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;

Lavorare con dati semi strutturati utilizzando Hive (XML, JSON)

Hive esegue funzionalità ETL nell'ecosistema Hadoop agendo come strumento ETL. Può essere difficile eseguire la riduzione della mappa in alcuni tipi di applicazioni, Hive può ridurre la complessità e fornisce la migliore soluzione alle applicazioni IT in termini di settore del data warehousing.

I dati semistrutturati come XML e JSON possono essere elaborati con minore complessità utilizzando Hive. Per prima cosa vedremo come possiamo usare Hive per XML.

XML TO HIVE TABLE

In questo, caricheremo i dati XML nelle tabelle Hive e recupereremo i valori memorizzati nei tag XML.

Passaggio 1) Creazione della tabella "xmlsample_guru" con colonna str con tipo di dati stringa.

Dallo screenshot qui sopra, possiamo osservare quanto segue

  1. Creazione della tabella "xmlsample_guru"
  2. Caricamento dei dati da test.xml nella tabella "xmlsample_guru"

Passaggio 2) Utilizzando il metodo XPath () saremo in grado di recuperare i dati memorizzati all'interno dei tag XML.

Dallo screenshot qui sopra, possiamo osservare quanto segue

  1. Usando il metodo XPATH () stiamo recuperando i valori memorizzati in / emp / esal / e / emp / ename /
  2. I valori presenti all'interno dei tag XML. In questo passaggio, vengono visualizzati i valori effettivi memorizzati nei tag XML nella tabella "xmlsample_guru"

Passaggio 3) In questo passaggio, recupereremo e visualizzeremo il Raw XML della tabella "xmlsample_guru".

Dallo screenshot qui sopra, possiamo osservare quanto segue

  • I dati XML effettivi visualizzati con i tag
  • Se osserviamo un singolo tag, è con "emp" come tag principale con "ename" e "esal" come tag secondari.

Snippet di codice:

Query da eseguire

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 (notazione oggetto JavaScript)

I dati di Twitter e dei siti Web vengono archiviati in formato JSON. Ogni volta che proviamo a recuperare i dati dai server online, restituirà file JSON. Usando Hive come archivio dati possiamo caricare i dati JSON nelle tabelle Hive creando schemi.

TABELLA JSON TO HIVE

In questo, caricheremo i dati JSON nelle tabelle Hive e recupereremo i valori archiviati nello schema JSON.

Passaggio 1) In questo passaggio, creeremo il nome della tabella JSON "json_guru". Una volta creato caricamento e visualizzazione dei contenuti dello schema attuale.

Dallo screenshot qui sopra, possiamo osservare quanto segue

  1. Creazione della tabella "json_guru"
  2. Caricamento dei dati da test.json nella tabella "json_guru"
  3. Visualizzazione dello schema effettivo del file JSON archiviato nelle tabelle json_guru

Passaggio 2) Utilizzando il metodo get_json_object () possiamo recuperare i valori dei dati memorizzati nella gerarchia JSON

Dallo screenshot qui sopra possiamo osservare quanto segue

  1. Usando get_json_object (str, '$. Ecode) può recuperare i valori di ecode dalla tabella json_guru. Allo stesso modo usando get_json_object (str, '$. Ename), get_json_object (str,' $. Sali) recupererà i valori di sal dalla tabella json_guru
  2. Valori memorizzati all'interno della gerarchia JSON in json_guru

Snippet di codice

Query da eseguire

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 complesso TO HIVE TABLE

In questo, caricheremo i dati JSON complessi nelle tabelle Hive e recupereremo i valori archiviati nello schema JSON

Passaggio 1) Creazione di complexjson_guru con campo a colonna singola

Dallo screenshot qui sopra, possiamo osservare quanto segue

  1. Creazione su tabella complexjson_guru con campo a colonna singola come tipo di dati stringa
  2. Caricamento dei dati in complexjson_guru dal file JSON complesso emp.json

Passaggio 2) Utilizzando get_json_object possiamo recuperare il contenuto effettivo archiviato all'interno della gerarchia dei file JSON.

Dallo screenshot seguente, possiamo vedere l'output dei dati memorizzati in complexjson_guru.

Passaggio 3) In questo passaggio, utilizzando il comando "Seleziona" siamo effettivamente in grado di vedere i dati JSON complessi memorizzati nella tabella "complexjson_guru"

-Snippet di codice di esempio,

Query da eseguire

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;

Progetti Hive in Real time - Quando e dove utilizzarli

Quando e dove utilizzare Hive sull'ecosistema Hadoop:

quando

  • Quando si lavora con funzioni statistiche forti e potenti sull'ecosistema Hadoop
  • Quando si lavora con l'elaborazione di dati strutturati e semi strutturati
  • Come strumento di data warehouse con Hadoop
  • Acquisizione dati in tempo reale con HBASE, è possibile utilizzare Hive

Dove

  • Per un facile utilizzo dell'ETL e dello strumento di data warehousing
  • Fornire un ambiente di tipo SQL e interrogare come SQL utilizzando HIVEQL
  • Per utilizzare e distribuire la mappa specificata personalizzata e gli script di riduzione per i requisiti specifici del client