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

Hive come strumento ETL e di data warehousing in aggiunta Hadoop L'ecosistema fornisce funzionalità come Data modeling, Data manipulation, Data processing e Data querying. Data Extraction in Hive significa la creazione di tabelle in Hive e il caricamento di dati strutturati e semi-strutturati, nonché l'interrogazione dei 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 SQL come ambiente e supporto per query facili.

Lavorare con dati strutturati utilizzando Hive

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

Qui caricheremo i dati strutturati presenti nei file di testo in Hive

Passo 1) In questo passaggio stiamo creando la tabella "employees_guru" con nomi di colonne come ID, Nome, Età, Indirizzo, Stipendio e Dipartimento dei dipendenti con tipi di dati.

Lavorare con dati strutturati utilizzando Hive

Dallo screenshot qui sopra, possiamo osservare quanto segue,

  1. Creazione della tabella “employees_guru”
  2. Caricamento dei dati da Employees.txt nella tabella "employees_guru"

Passo 2) In questo passaggio stiamo visualizzando il contenuto memorizzato in questa tabella utilizzando il comando "Select". Possiamo osservare il contenuto della tabella nella seguente schermata.

Lavorare con dati strutturati utilizzando Hive

– Snippet di codice di esempio

Domande 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 semistrutturati utilizzando Hive (XML, JSON)

Hive esegue funzionalità ETL nell'ecosistema Hadoop agendo come Strumento ETLPuò essere difficile eseguire la riduzione delle mappe in alcuni tipi di applicazioni, Hive può ridurre la complessità e fornisce la migliore soluzione per le applicazioni IT in termini di settore del data warehousing.

I dati semi-strutturati come XML e JSON possono essere elaborati con minore complessità utilizzando Hive. Per prima cosa vedremo come possiamo utilizzare Hive per XML.

XML ALLA TABELLA HIVE

In questo, caricheremo i dati XML nelle tabelle Hive e recupereremo i valori memorizzati all'interno dei tag XML.

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

Lavorare con dati semistrutturati utilizzando Hive

Dallo screenshot sopra, possiamo osservare quanto segue

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

Passo 2) utilizzando XPath () saremo in grado di recuperare i dati memorizzati all'interno dei tag XML.

Lavorare con dati semistrutturati utilizzando Hive

Dallo screenshot sopra, possiamo osservare quanto segue

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

Passo 3) In questo passaggio, recupereremo e visualizzeremo l'XML grezzo della tabella "xmlsample_guru".

Lavorare con dati semistrutturati utilizzando Hive

Dallo screenshot sopra, possiamo osservare quanto segue

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

Frammento di codice:

Domande 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 (JavaNotazione dell'oggetto script)

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

JSON ALLA TABELLA HIVE

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

Passo 1) In questo passaggio, creeremo il nome della tabella JSON "json_guru". Una volta creato, carica e visualizza il contenuto dello schema attuale.

Json alla tabella Hive

Dallo screenshot 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

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

Json alla tabella Hive

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 utilizzando get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) recupererà i valori ename sal dalla tabella json_guru
  2. Valori archiviati all'interno della gerarchia JSON in json_guru

Snippet di codice

Domande 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 in tabella HIVE

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

Passo 1) Creazione di complexjson_guru con campo a colonna singola

JSON complesso in tabella Hive

Dallo screenshot sopra, possiamo osservare quanto segue

  1. Creazione sulla 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

Passo 2) Utilizzando get_json_object possiamo recuperare il contenuto effettivo memorizzato all'interno della gerarchia di file JSON.

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

JSON complesso in tabella Hive

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

JSON complesso in tabella Hive

-Snippet di codice di esempio,

Domande 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 utilizzarlo

Quando e dove utilizzare Hive sull'ecosistema Hadoop:

Quando

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

Dove

  • Per un facile utilizzo di ETL e dello strumento di data warehousing
  • Fornire un ambiente di tipo SQL ed eseguire query come SQL utilizzando HIVEQL
  • Per utilizzare e distribuire script di mappa e riduttore specificati personalizzati per i requisiti specifici del cliente