Hive ETL: Nalaganje primerov JSON, XML, besedilnih podatkov

Kazalo:

Anonim

Panj kot ETL in orodje za skladiščenje podatkov na vrhu ekosistema Hadoop ponuja funkcije, kot so modeliranje podatkov, manipulacija s podatki, obdelava podatkov in poizvedovanje po podatkih. Pridobivanje podatkov v panju pomeni ustvarjanje tabel v panju in nalaganje strukturiranih in polstrukturiranih podatkov ter poizvedovanje po podatkih na podlagi zahtev.

Za serijsko obdelavo bomo napisali skripte po meri z uporabo zemljevida po meri in zmanjšali skripte s pomočjo skriptnega jezika. Ponuja SQL podobno okolje in podporo za enostavno poizvedovanje.

V tej vadnici boste izvedeli-

  • Delo s strukturiranimi podatki s pomočjo Hive
  • Delo s polstrukturiranimi podatki s pomočjo Hive (XML, JSON)
  • Panj v realnem času - kdaj in kje uporabiti

Delo s strukturiranimi podatki s pomočjo Hive

Strukturirani podatki pomenijo, da so podatki v ustrezni obliki vrstic in stolpcev. To je bolj podobno podatkom RDBMS z ustreznimi vrsticami in stolpci.

Tukaj bomo naložili strukturirane podatke, ki so prisotni v besedilnih datotekah v Panju

Korak 1) V tem koraku ustvarjamo tabelo "staff_guru" z imeni stolpcev, kot so Id, Ime, Starost, Naslov, Plača in Oddelek zaposlenih z vrstami podatkov.

Na zgornjem posnetku zaslona lahko opazimo naslednje,

  1. Ustvarjanje tabele "zaposleni_guru"
  2. Nalaganje podatkov iz datoteke Employees.txt v tabelo "zaposleni_guru"

Korak 2) V tem koraku prikazujemo vsebino, shranjeno v tej tabeli, z ukazom "Izberi". Vsebino tabele lahko opazujemo v naslednjem posnetku zaslona.

- Vzorec kode Snippet

Poizvedbe, ki jih je treba izvesti

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;

Delo s polstrukturiranimi podatki s pomočjo Hive (XML, JSON)

Hive izvaja ETL funkcije v ekosistemu Hadoop, tako da deluje kot orodje ETL. Pri nekaterih vrstah aplikacij je težko izvesti zmanjševanje zemljevidov, Hive lahko zmanjša zapletenost in nudi najboljšo rešitev za informacijske aplikacije v sektorju skladiščenja podatkov.

Polstrukturirane podatke, kot sta XML in JSON, je mogoče obdelati z manj zapletenostjo s pomočjo Hive. Najprej bomo videli, kako lahko uporabimo Hive za XML.

XML V TABELO

V tem bomo podatke XML naložili v tabele Hive in pobrali vrednosti, shranjene v oznakah XML.

Korak 1) Ustvarjanje tabele "xmlsample_guru" s stolpcem str z vrsto podatkov niza.

Iz zgornjega posnetka zaslona lahko opazimo naslednje

  1. Ustvarjanje tabele "xmlsample_guru"
  2. Nalaganje podatkov iz test.xml v tabelo "xmlsample_guru"

2. korak) Z uporabo metode XPath () bomo lahko pridobili podatke, shranjene v oznakah XML.

Iz zgornjega posnetka zaslona lahko opazimo naslednje

  1. Z metodo XPATH () pridobivamo vrednosti, shranjene pod / emp / esal / in / emp / ename /
  2. Vrednosti so znotraj oznak XML. V tem koraku prikazujemo dejanske vrednosti, shranjene pod oznakami XML v tabeli "xmlsample_guru"

Korak 3) V tem koraku bomo dobili in prikazali surovi XML tabele "xmlsample_guru."

Iz zgornjega posnetka zaslona lahko opazimo naslednje

  • Dejanski podatki XML, prikazani z oznakami
  • Če opazimo posamezno oznako, je kot nadrejena oznaka »emp«, podrejeni oznaki »ename« in »esal«.

Delček kode:

Poizvedbe, ki jih je treba izvesti

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)

Podatki o Twitterju in spletnih mestih so shranjeni v obliki JSON. Kadar koli poskušamo pridobiti podatke iz spletnih strežnikov, bodo vrnili datoteke JSON. Z uporabo Hiveja kot shrambe podatkov lahko z ustvarjanjem shem naložimo podatke JSON v tabele Hive.

JSON DO HIBELNE MIZE

V tem bomo podatke JSON naložili v tabele Hive in dobili bomo vrednosti, shranjene v shemi JSON.

Korak 1) V tem koraku bomo ustvarili ime tabele JSON "json_guru". Ko ustvarite nalaganje in prikaz vsebine dejanske sheme.

Iz zgornjega posnetka zaslona lahko opazimo naslednje

  1. Ustvarjanje tabele "json_guru"
  2. Nalaganje podatkov iz test.json v tabelo "json_guru"
  3. Prikaz dejanske sheme datoteke JSON, shranjene v tabelah json_guru

2. korak) Z metodo get_json_object () lahko pridobimo vrednosti podatkov, shranjene v hierarhiji JSON

Iz zgornjega posnetka zaslona lahko opazimo naslednje

  1. Z uporabo get_json_object (str, '$. Ecode) lahko pridobi vrednosti ecode iz tabele json_guru. Podobno z uporabo get_json_object (str, '$. Ename), get_json_object (str,' $. Sali) bo iz tabele json_guru prinesel vrednosti salme enama
  2. Vrednosti, shranjene znotraj JSON Hierarchy v json_guru

Delček kode

Poizvedbe, ki jih je treba izvesti

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;

Kompleksni JSON TO HIVE TABLE

V tem bomo naložili zapletene podatke JSON v tabele Hive in dobili bomo vrednosti, shranjene v shemi JSON

Korak 1) Ustvarjanje complexjson_guru z enim stolpcem

Iz zgornjega posnetka zaslona lahko opazimo naslednje

  1. Ustvarjanje v tabeli complexjson_guru z enim stolpcem kot podatkovnim nizom
  2. Nalaganje podatkov v complexjson_guru iz zapletene datoteke JSON emp.json

Korak 2) Z uporabo get_json_object lahko pridobimo dejansko vsebino, ki je shranjena znotraj hierarhije datotek JSON.

Iz naslednjega posnetka zaslona si lahko ogledamo izhodne podatke, shranjene v kompleksjson_guru.

Korak 3) V tem koraku smo z ukazom "Select" dejansko videli zapletene podatke JSON, shranjene v tabeli "complexjson_guru"

-Vzorec delčka kode,

Poizvedbe, ki jih je treba izvesti

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;

Panj v realnem času - kdaj in kje uporabiti

Kdaj in kje uporabiti panj v ekosistemu Hadoop:

Kdaj

  • Pri delu z močnimi in zmogljivimi statističnimi funkcijami o ekosistemu Hadoop
  • Pri delu s strukturirano in polstrukturirano obdelavo podatkov
  • Kot orodje za shranjevanje podatkov s Hadoop
  • Zaužitje podatkov v realnem času s HBASE, Hive se lahko uporablja

Kje

  • Za lažjo uporabo ETL in orodja za shranjevanje podatkov
  • Zagotoviti okolje tipa SQL in poizvedovati kot SQL s pomočjo HIVEQL
  • Uporaba in uvajanje skriptov za zemljevide in reduktorje po meri za posebne zahteve odjemalca