Hive som et ETL- og datalageringsværktøj oven på Hadoop-økosystemet giver funktionaliteter som datamodellering, datamanipulation, databehandling og dataforespørgsel. Dataekstraktion i Hive betyder oprettelse af tabeller i Hive og indlæsning af strukturerede og semistrukturerede data samt forespørgsel på data baseret på kravene.
Til batchbehandling skal vi skrive specialdefinerede scripts ved hjælp af et brugerdefineret kort og reducere scripts ved hjælp af et scriptingsprog. Det giver SQL-lignende miljø og support til nem forespørgsel.
I denne vejledning lærer du-
- Arbejde med strukturerede data ved hjælp af Hive
- Arbejde med semistrukturerede data ved hjælp af Hive (XML, JSON)
- Hive i realtidsprojekter - Hvornår og hvor man skal bruge
Arbejde med strukturerede data ved hjælp af Hive
Strukturerede data betyder, at data er i det korrekte format for rækker og kolonner. Dette ligner mere RDBMS-data med korrekte rækker og kolonner.
Her skal vi indlæse strukturerede data til stede i tekstfiler i Hive
Trin 1) I dette trin opretter vi tabellen "medarbejdere_guru" med kolonnenavne som Id, Navn, Alder, Adresse, Løn og Afdeling for de ansatte med datatyper.
Fra ovenstående skærmbillede kan vi observere følgende,
- Oprettelse af tabel "medarbejdere_guru"
- Indlæser data fra ansatte.txt i tabellen "medarbejdere_guru"
Trin 2) I dette trin viser vi indholdet, der er gemt i denne tabel ved hjælp af kommandoen "Vælg". Vi kan observere tabelindholdet i det følgende skærmbillede.
- Prøvekodestykke
Forespørgsler, der skal udfø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;
Arbejde med semistrukturerede data ved hjælp af Hive (XML, JSON)
Hive udfører ETL-funktionaliteter i Hadoop-økosystemet ved at fungere som ETL-værktøj. Det kan være vanskeligt at udføre kortreduktion i nogle typer applikationer, Hive kan reducere kompleksiteten og giver den bedste løsning til it-applikationerne med hensyn til datalagringssektoren.
Semistrukturerede data som XML og JSON kan behandles med mindre kompleksitet ved hjælp af Hive. Først vil vi se, hvordan vi kan bruge Hive til XML.
XML TIL HIVE TABEL
I dette skal vi indlæse XML-data i Hive-tabeller, og vi henter de værdier, der er gemt inde i XML-tags.
Trin 1) Oprettelse af tabel "xmlsample_guru" med str-kolonne med strengdatatype.
Fra ovenstående skærmbillede kan vi observere følgende
- Oprettelse af tabel "xmlsample_guru"
- Indlæser data fra test.xml i tabellen "xmlsample_guru"
Trin 2) Ved hjælp af XPath () -metoden kan vi hente de data, der er gemt inde i XML-tags.
Fra ovenstående skærmbillede kan vi observere følgende
- Ved hjælp af XPATH () -metoden henter vi de værdier, der er gemt under / emp / esal / og / emp / ename /
- Værdier til stede inde i XML-tags. I dette trin viser vi faktiske værdier, der er gemt under XML-tags i tabellen "xmlsample_guru"
Trin 3) I dette trin henter og viser vi den rå XML i tabellen "xmlsample_guru."
Fra ovenstående skærmbillede kan vi observere følgende
- De faktiske XML-data, der vises med tags
- Hvis vi observerer et enkelt tag, er det med "emp" som overordnet tag med "ename" og "esal" som underordnet tags.
Kodestykke:
Forespørgsler, der skal udfø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-objektnotation)
Twitter- og webstedsdata gemmes i JSON-format. Når vi prøver at hente data fra online servere, returnerer det JSON-filer. Ved hjælp af Hive som datalager kan vi indlæse JSON-data i Hive-tabeller ved at oprette skemaer.
JSON TIL HIVE-BORD
I dette skal vi indlæse JSON-data i Hive-tabeller, og vi henter de værdier, der er gemt i JSON-skemaet.
Trin 1) I dette trin skal vi oprette JSON-tabelnavn "json_guru". Når det er oprettet, indlæses og vises indholdet af det aktuelle skema.
Fra ovenstående skærmbillede kan vi observere følgende
- Oprettelse af tabel "json_guru"
- Indlæser data fra test.json i tabellen "json_guru"
- Viser faktisk skema for JSON-fil gemt i json_guru-tabeller
Trin 2) Ved hjælp af get_json_object () -metoden kan vi hente de dataværdier, der er gemt i JSON-hierarki
Fra ovenstående skærmbillede kan vi observere følgende
- Ved hjælp af get_json_object (str, '$. Ecode) kan det hente ecode-værdier fra tabellen json_guru. På samme måde bruger get_json_object (str, '$. Ename), get_json_object (str,' $. Sali), det henter ename sal-værdier fra tabellen json_guru
- Værdier gemt inde i JSON Hierarchy i json_guru
Kodestykke
Forespørgsler, der skal udfø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 TIL HIVE-BORD
I dette skal vi indlæse komplekse JSON-data i Hive-tabeller, og vi henter de værdier, der er gemt i JSON-skemaet
Trin 1) Oprettelse af complexjson_guru med et enkelt kolonnefelt
Fra ovenstående skærmbillede kan vi observere følgende
- Oprettelse på tabel complexjson_guru med enkelt kolonnefelt som strengdatatype
- Indlæser data i complexjson_guru fra emp.json kompleks JSON-fil
Trin 2) Ved at bruge get_json_object kan vi hente det faktiske indhold, der er gemt inde i JSON-filhierarkiet.
Fra det følgende skærmbillede kan vi se output af de data, der er gemt i complexjson_guru.
Trin 3) I dette trin kan vi faktisk bruge komplekse JSON-data, der er gemt inde i tabellen "complexjson_guru" ved hjælp af "Vælg" -kommandoen.
-Eksempel kodestykke,
Forespørgsler, der skal udfø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 realtidsprojekter - Hvornår og hvor man skal bruge
Hvornår og hvor skal du bruge bikuben på Hadoop-økosystemet:
Hvornår
- Når man arbejder med stærke og stærke statistiske funktioner på Hadoop økosystem
- Når man arbejder med struktureret og semistruktureret databehandling
- Som værktøj til datalager med Hadoop
- Realtidsdataindtagelse med HBASE, Hive kan bruges
Hvor
- For nem brug af ETL og datalagerværktøj
- At levere SQL-type miljø og forespørgsel som SQL ved hjælp af HIVEQL
- At bruge og implementere brugerdefinerede kort- og reduceringsskripter til de specifikke klientkrav
- Næste