„Hive“ kaip ETL ir duomenų sandėliavimo įrankis, esantis „Hadoop“ ekosistemoje, suteikia tokias funkcijas kaip duomenų modeliavimas, manipuliavimas duomenimis, duomenų apdorojimas ir duomenų užklausa. Duomenų išskyrimas avilyje reiškia lentelių kūrimą avilyje ir struktūrinių bei pusiau struktūrizuotų duomenų įkėlimą, taip pat duomenų užklausą pagal reikalavimus.
Paketiniam apdorojimui rašysime pasirinktinius apibrėžtus scenarijus naudodami pasirinktinį žemėlapį ir sumažinsime scenarijus naudodami scenarijų kalbą. Tai suteikia panašią SQL aplinką ir palaiko užklausas.
Šioje pamokoje sužinosite
- Darbas su struktūriniais duomenimis naudojant avilį
- Darbas su pusiau struktūruotais duomenimis naudojant „Hive“ (XML, JSON)
- Avilys realaus laiko projektuose - kada ir kur naudoti
Darbas su struktūriniais duomenimis naudojant avilį
Struktūrizuoti duomenys reiškia, kad duomenys yra tinkamo eilučių ir stulpelių formato. Tai labiau panašu į RDBMS duomenis su tinkamomis eilutėmis ir stulpeliais.
Čia mes ketiname įkelti struktūrizuotus duomenis, esančius teksto failuose, esančiuose avilyje
1 žingsnis) Šiame žingsnyje mes kuriame lentelę „darbuotojų_guru“ su stulpelių pavadinimais, tokiais kaip ID, vardas, amžius, adresas, atlyginimas ir duomenų tipų darbuotojų skyrius.
Iš pirmiau pateiktos ekrano kopijos galime stebėti,
- Lentelės „darbuotojai_guru“ sukūrimas
- Įkeliami duomenys iš „Employees.txt“ į lentelę „darbuotojai_guru“
2 žingsnis) Šiame žingsnyje mes rodome šioje lentelėje saugomą turinį naudodami komandą „Pasirinkti“. Lentelės turinį galime stebėti šiame ekrano kadre.
- kodo fragmento pavyzdys
Vykdytinos užklausos
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;
Darbas su pusiau struktūruotais duomenimis naudojant „Hive“ (XML, JSON)
Avilys atlieka ETL funkcijas Hadoopo ekosistemoje, veikdamas kaip ETL įrankis. Kai kurių tipų programose gali būti sunku atlikti žemėlapio mažinimą, „Hive“ gali sumažinti sudėtingumą ir pateikti geriausią IT programų sprendimą dėl duomenų saugojimo sektoriaus.
Pusiau struktūrizuotus duomenis, pvz., XML ir JSON, naudojant „Hive“ galima apdoroti mažiau sudėtingai. Pirmiausia pamatysime, kaip galime naudoti „Hive“ XML.
XML Į AVILIŲ LENTEL.
Tuo mes ketiname įkelti XML duomenis į „Hive“ lenteles ir atnešime XML žymose saugomas vertes.
1 žingsnis) Sukurkite lentelę „xmlsample_guru“ su str stulpeliu su eilutės duomenų tipu.
Iš pirmiau pateiktos ekrano kopijos galime stebėti šiuos dalykus
- Lentelės „xmlsample_guru“ sukūrimas
- Įkeliami duomenys iš test.xml į lentelę „xmlsample_guru“
2 žingsnis) Naudodami „XPath“ () metodą galėsime gauti duomenis, saugomus XML žymose.
Iš pirmiau pateiktos ekrano kopijos galime stebėti šiuos dalykus
- Naudodami XPATH () metodą, mes gauname reikšmes, saugomas aplankuose / emp / esal / ir / emp / ename /
- Vertybės pateikiamos XML žymų viduje. Atliekant šį veiksmą, lentelėje „xmlsample_guru“ rodomos faktinės vertės, saugomos XML žymose.
3 žingsnis) Šiame žingsnyje mes atimsime ir parodysime neapdorotą XML lentelę „xmlsample_guru“.
Iš pirmiau pateiktos ekrano kopijos galime stebėti šiuos dalykus
- Faktiniai XML duomenys, rodomi su žymomis
- Jei stebime vieną žymą, tai yra „emp“ kaip pagrindinė žyma su „ename“ ir „esal“ kaip antrinėmis žymomis.
Kodo fragmentas:
Vykdytinos užklausos
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“ objektų žymėjimas)
„Twitter“ ir svetainių duomenys saugomi JSON formatu. Kai bandysime gauti duomenis iš internetinių serverių, jie grąžins JSON failus. Naudodami „Hive“ kaip duomenų saugyklą, sukurdami schemas galime įkelti „Jive“ duomenis į „Hive“ lenteles.
JSONO GYVENIMO LENTELĖ
Tuo mes ketiname įkelti JSON duomenis į „Hive“ lenteles ir atnešime JSON schemoje saugomas vertes.
1 žingsnis) Šiame žingsnyje mes sukursime JSON lentelės pavadinimą „json_guru“. Sukūrus įkraunamas ir rodomas faktinės schemos turinys.
Iš pirmiau pateiktos ekrano kopijos galime stebėti šiuos dalykus
- Lentelės „json_guru“ sukūrimas
- Įkeliami duomenys iš test.json į lentelę "json_guru"
- Rodoma faktinė JSON failo, saugomo json_guru lentelėse, schema
2 žingsnis) Naudodami metodą get_json_object () galime gauti JSON hierarchijoje saugomas duomenų reikšmes
Iš aukščiau pateikto ekrano kadro galime stebėti šiuos dalykus
- Naudodamas get_json_object (str, '$. Ecode), jis gali gauti ekodo reikšmes iš lentelės json_guru. Panašiai naudojant get_json_object (str, '$. Ename), get_json_object (str,' $. Sali), jis atims ename sal reikšmes iš lentelės json_guru
- JSON hierarchijos viduje saugomos vertybės json_guru
Kodo fragmentas
Vykdytinos užklausos
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;
Kompleksinis „JSON TO HIVE“ LENTELĖ
Tuo mes įkeliame sudėtingus JSON duomenis į „Hive“ lenteles ir atnešime JSON schemoje saugomas vertes.
1 žingsnis) Sukurkite complexjson_guru su vieno stulpelio lauku
Iš pirmiau pateiktos ekrano kopijos galime stebėti šiuos dalykus
- Kūrimas lentelėje complexjson_guru su vieno stulpelio lauku kaip eilutės duomenų tipu
- Įkeliami duomenys į „complexjson_guru“ iš „emp.json“ komplekso JSON failo
2 žingsnis) Naudodami get_json_object, galime nuskaityti tikrąjį turinį, kuris buvo saugomas JSON failų hierarchijoje.
Iš šios ekrano kopijos galime pamatyti duomenų, saugomų „complexjson_guru“, išvestį.
3 žingsnis) Šiame žingsnyje naudodami komandą „Pasirinkti“ mes iš tikrųjų galime pamatyti sudėtingus JSON duomenis, saugomus lentelėje „complexjson_guru“
-Kodo fragmento pavyzdys,
Vykdytinos užklausos
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;
Avilys realaus laiko projektuose - kada ir kur naudoti
Kada ir kur avilį naudoti Hadoop ekosistemoje:
Kada
- Dirbant su stipriomis ir galingomis statistinėmis funkcijomis Hadoopo ekosistemoje
- Dirbant su struktūrizuotais ir pusiau struktūrizuotais duomenimis
- Kaip duomenų sandėlio įrankis su „Hadoop“
- Galima naudoti duomenis realiuoju laiku naudojant HBASE, Hive
Kur
- Kad būtų lengviau naudotis ETL ir duomenų saugojimo įrankiu
- Teikti SQL tipo aplinką ir pateikti užklausas kaip SQL naudojant HIVEQL
- Norėdami naudoti ir įdiegti pasirinktinius nurodytus žemėlapių ir reduktorių scenarijus konkretiems kliento reikalavimams
- Kitas