Näidisega tarude vaheseinad ja ämbrid
Tabelid, partitsioonid ja ämbrid on Hive'i andmete modelleerimise osad.
Mis on partitsioonid?
Hive Partitions on viis tabelite partitsioonideks korraldamiseks, jagades tabelid partitsioonivõtmete alusel erinevateks osadeks.
Partition on abiks siis, kui tabelis on üks või mitu partitsioonivõtit. Sektsioonivõtmed on põhielemendid andmete tabelis salvestamise määramiseks.
Näiteks: -
„Klient, kellel on mõned e-kaubanduse andmed, mis kuuluvad India operatsioonide juurde, kus iga osariik (38 osariiki) tegutseb tervikuna. Kui võtame partitsioonivõtmeks olekuveeru ja teeme partitsioonid India andmetele tervikuna, saame partitsioonide arvu (38 partitsiooni), mis võrdub Indias olevate osariikide arvuga (38). Nii, et iga olekuandmeid saab partitsioonitabelites eraldi vaadata.
Proov Code Snippet for partitions
- Kõigi olekute tabeli loomine
create table all states(state string, District string,Enrolments string) row format delimited fields terminated by ',';
- Andmete laadimine loodud tabelisse kõik olekud
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Jaotustabeli loomine
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
- Jaotamiseks peame selle atribuudi määrama
set hive.exec.dynamic.partition.mode=nonstrict
- Andmete laadimine partitsioonitabelisse
INSERT OVERWRITE TABLE state_part PARTITION(state) SELECT district,enrolments,state from allstates;
- Tegelik partitsioonitabelite töötlemine ja moodustamine partitsioonivõtme oleku alusel
- HDFS-mälus on 38 partitsiooniväljundit, mille olekunimeks on failinimi. Kontrollime seda selles etapis
Järgmised ekraanipildid näitavad ülalnimetatud koodi täitmist
Ülaltoodud koodi põhjal teeme järgmisi asju
- Kõigi osariikide tabeli loomine kolme veeru nimega, näiteks osariik, piirkond ja registreerimine
- Andmete laadimine tabelisse kõik olekud
- Sektsioonitabeli loomine partitsioonivõtme olekuga
- Selles etapis partitsioonirežiimi määramine mitterangeks (See režiim aktiveerib dünaamilise partitsioonirežiimi)
- Andmete laadimine partitsiooni tablestate_part
- Tegelik partitsioonitabelite töötlemine ja moodustamine partitsioonivõtme oleku alusel
- HDFS-mälus on 38 partitsiooniväljundit, mille olekunimeks on failinimi. Kontrollime seda selles etapis. Selles etapis näeme HDFS-is 38 partitsiooniväljundit
Mis on Buckets?
Tarus olevaid ämbriid kasutatakse taru tabeliandmete eraldamiseks mitmeks failiks või kataloogiks. seda kasutatakse tõhusaks pärimiseks.
- Nendes partitsioonides olevad andmed, st, saab jagada edasi ämbriteks
- Jagamine toimub konkreetsete tabelist valitud veergude räsi põhjal.
- Salved kasutavad iga kirje lugemiseks ja ämbritesse paigutamiseks tagaosas mingit räsimise algoritmi
- Tarus peame ämbrid lubama, kasutades set.hive.enforce.bucketing=true;
Step 1) Ämbri loomine, nagu allpool näidatud.
Ülaltoodud ekraanipildist
- Loome sample_bucket veerunimedega nagu eesnimi, töö_id, osakond, palk ja riik
- Loome siia 4 ämbrit.
- Kui andmed on need automaatselt laaditud, asetage andmed 4 ämbrisse
Step 2) Andmete laadimine tabeli näidissalve
Eeldusel, et "Töötajate tabel" on juba Hive süsteemis loodud. Selles etapis näeme tabeli Andmed töötajatelt laadimist tabelinäidiste ämbrisse.
Enne kui hakkame töötajate andmeid ämbritesse teisaldama, veenduge, et need koosneksid veergude nimedest, nagu eesnimi, töö_id, osakond, palk ja riik.
Siin laadime andmed töötajate tabelist näidisämbrisse.
Step 3)Kuvatakse 4 ämbrit, mis loodi 1. toimingus
Ülaltoodud ekraanipildilt näeme, et töötajate tabeli andmed kantakse 4. sammus loodud 1 ämbrisse.







