Hive som et ETL- og datalagerverktøy på toppen av Hadoop-økosystemet gir funksjoner som datamodellering, datamanipulering, databehandling og dataspørring. Dataekstraksjon i Hive betyr oppretting av tabeller i Hive og lasting av strukturerte og semistrukturerte data, samt spørring av data basert på kravene.
For batchbehandling skal vi skrive tilpassede definerte skript ved hjelp av et tilpasset kart og redusere skript ved hjelp av et skriptspråk. Det gir SQL-lignende miljø og støtte for enkel spørring.
I denne veiledningen vil du lære-
- Arbeide med strukturerte data ved hjelp av Hive
- Arbeide med semistrukturerte data ved hjelp av Hive (XML, JSON)
- Hive i sanntidsprosjekter - Når og hvor du skal bruke
Arbeide med strukturerte data ved hjelp av Hive
Strukturerte data betyr at data er i riktig format for rader og kolonner. Dette er mer som RDBMS-data med riktige rader og kolonner.
Her skal vi laste strukturerte data som er til stede i tekstfiler i Hive
Trinn 1) I dette trinnet lager vi tabellen "ansatte_guru" med kolonnenavn som Id, navn, alder, adresse, lønn og avdeling for de ansatte med datatyper.
Fra skjermbildet ovenfor kan vi observere følgende,
- Opprettelse av bordet "ansatte_guru"
- Laster data fra ansatte.txt i tabellen "ansatte_guru"
Trinn 2) I dette trinnet viser vi innholdet som er lagret i denne tabellen ved å bruke kommandoen "Velg". Vi kan observere innholdet i tabellen i det følgende skjermbildet.
- Eksempelkodebit
Spørringer som skal utføres
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;
Arbeide med semistrukturerte data ved hjelp av Hive (XML, JSON)
Hive utfører ETL-funksjonaliteter i Hadoop-økosystemet ved å fungere som ETL-verktøy. Det kan være vanskelig å utføre kartreduksjon i noen typer applikasjoner, Hive kan redusere kompleksiteten og gir den beste løsningen på IT-applikasjonene når det gjelder datalagringssektoren.
Semistrukturerte data som XML og JSON kan behandles med mindre kompleksitet ved hjelp av Hive. Først skal vi se hvordan vi kan bruke Hive for XML.
XML TIL HIVE-TABELL
I dette skal vi laste inn XML-data i Hive-tabeller, og vi vil hente verdiene som er lagret i XML-kodene.
Trinn 1) Opprettelse av tabell "xmlsample_guru" med str-kolonne med strengdatatype.
Fra skjermbildet ovenfor kan vi observere følgende
- Oppretting av tabellen "xmlsample_guru"
- Laster data fra test.xml i tabellen "xmlsample_guru"
Trinn 2) Ved hjelp av XPath () -metoden vil vi kunne hente dataene som er lagret i XML-koder.
Fra skjermbildet ovenfor kan vi observere følgende
- Ved hjelp av XPATH () -metoden henter vi verdiene som er lagret under / emp / esal / og / emp / ename /
- Verdier som finnes i XML-koder. I dette trinnet viser vi faktiske verdier som er lagret under XML-koder i tabellen "xmlsample_guru"
Trinn 3) I dette trinnet vil vi hente og vise Raw XML i tabellen "xmlsample_guru."
Fra skjermbildet ovenfor kan vi observere følgende
- De faktiske XML-dataene som vises med koder
- Hvis vi observerer en enkelt tag, er det med "emp" som overordnet tag med "ename" og "esal" som underordnet tags.
Kodebit:
Spørringer som skal utføres
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-objektnotasjon)
Twitter og nettstedsdata lagres i JSON-format. Hver gang vi prøver å hente data fra online-servere, returnerer det JSON-filer. Ved å bruke Hive som datalager kan vi laste JSON-data i Hive-tabeller ved å lage skjemaer.
JSON TIL HIVE-BORD
I dette skal vi laste JSON-data i Hive-tabeller, og vi vil hente verdiene som er lagret i JSON-skjema.
Trinn 1) I dette trinnet skal vi lage JSON-tabellnavnet "json_guru". Når den er opprettet, lastes og vises innholdet i det faktiske skjemaet.
Fra skjermbildet ovenfor kan vi observere følgende
- Opprettelse av bord "json_guru"
- Laster data fra test.json i tabellen "json_guru"
- Viser faktisk skjema for JSON-fil lagret i json_guru-tabeller
Trinn 2) Ved hjelp av get_json_object () -metoden kan vi hente dataverdiene som er lagret i JSON-hierarki
Fra skjermbildet ovenfor kan vi observere følgende
- Ved å bruke get_json_object (str, '$. Ecode) kan det hente ecode-verdier fra tabellen json_guru. På samme måte bruker get_json_object (str, '$. Ename), get_json_object (str,' $. Sali) det vil hente ename sal-verdier fra tabellen json_guru
- Verdier lagret inne i JSON Hierarchy i json_guru
Kodebit
Spørringer som skal utføres
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;
Kompleks JSON TO HIVE TABLE
I dette skal vi laste inn komplekse JSON-data i Hive-tabeller, og vi vil hente verdiene som er lagret i JSON-skjema
Trinn 1) Opprette complexjson_guru med ett kolonnefelt
Fra skjermbildet ovenfor kan vi observere følgende
- Oppretting på tabell complexjson_guru med felt med én kolonne som strengdatatype
- Laster data inn i complexjson_guru fra emp.json kompleks JSON-fil
Trinn 2) Ved å bruke get_json_object kan vi hente det faktiske innholdet som er lagret inne i JSON-filhierarkiet.
Fra følgende skjermbilde kan vi se utdataene til dataene som er lagret i complexjson_guru.
Trinn 3) I dette trinnet, ved å bruke "Velg" -kommandoen, kan vi faktisk se komplekse JSON-data lagret i tabellen "complexjson_guru"
- Eksempel på kodebit,
Spørringer som skal utføres
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 i sanntidsprosjekter - Når og hvor du skal bruke
Når og hvor du skal bruke bikube på Hadoop økosystem:
Når
- Når du arbeider med sterke og kraftige statistiske funksjoner på Hadoop økosystem
- Når du arbeider med strukturert og semistrukturert databehandling
- Som datalagerverktøy med Hadoop
- Sanntids datainntak med HBASE, Hive kan brukes
Hvor
- For enkel bruk av ETL og datalagerverktøy
- Å tilby SQL-type miljø og spørre som SQL ved hjelp av HIVEQL
- Å bruke og distribuere egendefinerte kart- og reduseringsskript for de spesifikke klientkravene
- Neste