Hive ETL: caricamento di esempi di dati di testo, JSON, XML
โก Riepilogo intelligente
Hive ETL trasforma file di testo, XML e JSON in tabelle interrogabili caricandoli in Hive ed esplorendolitracestraendo valori con xpath() e get_json_object(), si fornisce agli analisti un'interfaccia SQL sui dati Hadoop semi-strutturati.

Hive come strumento ETL e di data warehousing in aggiunta al Hadoop L'ecosistema fornisce funzionalitร come la modellazione dei dati, la manipolazione dei dati, l'elaborazione dei dati e l'interrogazione dei dati. Espressione dei datitracIn Hive, la creazione di tabelle si riferisce alla creazione di tabelle in Hive e al caricamento di dati strutturati e semi-strutturati, nonchรฉ all'esecuzione di query sui dati in base ai requisiti.
Per l'elaborazione batch, scriveremo script definiti su misura utilizzando script map e reduce personalizzati in un linguaggio di scripting. Fornisce un SQL come ambiente e supporto per query facili.
Lavorare con dati strutturati utilizzando Hive
I dati strutturati significano che i dati sono nel formato corretto di righe e colonne. Questo รจ piรน simile a RDBMS dati con righe e colonne appropriate.
Qui andremo a caricare 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.
Dallo screenshot qui sopra, possiamo osservare quanto segue:
- Creazione della tabella โemployees_guruโ
- Caricamento dei dati dal file Employees.txt nella tabella "employees_guru"
Passo 2) In questa fase visualizziamo il contenuto memorizzato nella tabella utilizzando il comando "Select". Possiamo osservare il contenuto della tabella nella seguente schermata.
Esempio di frammento di codice
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 un Strumento ETLL'implementazione di MapReduce puรฒ risultare complessa in alcuni tipi di applicazioni; Hive รจ in grado di ridurre tale complessitร e offre la soluzione ideale per le applicazioni IT nel 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.
Da XML a 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 una colonna str di tipo stringa.
Dallo screenshot qui sopra, possiamo osservare quanto segue:
- Creazione della tabella โxmlsample_guruโ
- Caricamento dei dati dal file test.xml nella tabella "xmlsample_guru"
Passo 2) Usando il XPath 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:
- Utilizzando il metodo xpath() recuperiamo i valori memorizzati in /emp/esal/ e /emp/ename/
- Valori presenti all'interno dei tag XML. In questa fase, visualizziamo i valori effettivi memorizzati all'interno dei tag XML nella tabella "xmlsample_guru".
Si noti che xpath() restituisce un array di stringhe; xpath_string(), xpath_int() e xpath_double() restituiscono un singolo valore tipizzato.
Passo 3) In questo passaggio, recupereremo e visualizzeremo il codice XML grezzo della tabella "xmlsample_guru".
Dallo screenshot qui sopra, possiamo osservare quanto segue:
- I dati XML effettivi vengono visualizzati con i tag
- Se osserviamo un singolo tag, notiamo che "emp" รจ il tag padre e "ename" e "esal" sono i tag figli.
Code frammento:
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 provenienti dai social media e dai siti web vengono comunemente archiviati in formato JSON. Ogni volta che si tenta di recuperare dati da server online, vengono restituiti file JSON. Utilizzando Hive come archivio dati, รจ possibile caricare dati JSON nelle tabelle di Hive creando degli schemi.
Da JSON a tabella Hive
In questo procedimento, caricheremo dati JSON nelle tabelle Hive e recupereremo i valori memorizzati nello schema JSON.
Passo 1) In questa fase, creeremo una tabella JSON denominata "json_guru". Una volta creata, caricheremo e visualizzeremo il contenuto dello schema effettivo.
Dallo screenshot qui sopra, possiamo osservare quanto segue:
- Creazione della tabella โjson_guruโ
- Caricamento dei dati da test.json nella tabella "json_guru"
- Visualizzazione dello schema effettivo del file JSON memorizzato nella tabella json_guru
Passo 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:
- Utilizzando get_json_object(str,'$.ecode') รจ possibile recuperare i valori ecode dalla tabella json_guru. Allo stesso modo, utilizzando get_json_object(str,'$.ename') e get_json_object(str,'$.sal') verranno recuperati i valori ename e sal dalla tabella json_guru.
- Valori memorizzati all'interno della gerarchia JSON in json_guru
Poichรฉ get_json_object() analizza il documento una sola volta per chiamata, json_tuple() รจ piรน efficiente quando sono necessarie diverse chiavi e un JSON SerDe mappa il documento su colonne tipizzate al momento del caricamento.
Code frammento
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 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;
Conversione complessa da JSON a tabella Hive
In questo tutorial, caricheremo dati JSON complessi nelle tabelle Hive e recupereremo i valori memorizzati nello schema JSON.
Passo 1) Creazione di complexjson_guru con un campo a colonna singola.
Dallo screenshot qui sopra, possiamo osservare quanto segue:
- Creazione della tabella complexjson_guru con un singolo campo di colonna di tipo stringa
- Caricamento dei dati in complexjson_guru dal file JSON complesso emp.json
Passo 2) Tramite la funzione get_json_object possiamo recuperare il contenuto effettivo memorizzato all'interno della gerarchia del file JSON.
Dalla seguente schermata, possiamo vedere l'output dei dati memorizzati in complexjson_guru.
Passo 3) In questa fase, utilizzando il comando "Select", possiamo visualizzare i dati JSON complessi memorizzati nella tabella "complexjson_guru".
Esempio di frammento di codice
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;
Hive nei progetti in tempo reale: quando e dove utilizzarlo
Quando e dove utilizzare Hive nell'ecosistema Hadoop:
Quando
- Quando si lavora con funzioni statistiche forti e potenti nell'ecosistema Hadoop
- Quando si lavora con l'elaborazione di dati strutturati e semi-strutturati
- Come strumento di data warehouse con Hadoop
- Ingestione di dati in tempo reale con HBase, dove รจ possibile utilizzare Hive
Dove
- Per la sua facilitร d'uso come strumento ETL e di data warehousing.
- Fornire un ambiente di tipo SQL ed eseguire query simili a SQL utilizzando HiveQL
- Utilizzare e distribuire script di mappatura e riduzione personalizzati in base alle esigenze specifiche del cliente.










