Lentelės, pertvaros ir kaušai yra „Hive“ duomenų modeliavimo dalys.
Kas yra pertvaros?
„Hive Partitions“ yra būdas organizuoti lenteles į skaidinius, padalijant lenteles į skirtingas dalis pagal skaidinių raktus.
Skirstymas yra naudingas, kai lentelėje yra vienas ar daugiau skaidinių raktų. Skirstymo raktai yra pagrindiniai elementai nustatant, kaip duomenys saugomi lentelėje.
Pavyzdžiui : -
"Klientas, turintis kai kuriuos el. Prekybos duomenis, priklausančius Indijos operacijoms, kuriose visos valstijos (38 valstijos) operacijos minėtos kaip visuma. Jei valstybės stulpelį laikysime kaip skaidinio raktą ir atliksime skaidymą su visais šiais Indijos duomenimis, galėsime gauti skaidinių skaičių (38 skaidinius), kuris yra lygus Indijoje esančių valstijų (38) skaičiui. Tokie, kad kiekvienos valstybės duomenis būtų galima atskirai peržiūrėti pertvarų lentelėse.
Skyrelių kodo fragmento pavyzdys
- Visų būsenų lentelės sukūrimas
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Duomenys įkeliami į sukurtą lentelę
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Skirstymo lentelės sukūrimas
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
Norėdami padalyti, turime nustatyti šią savybę
set hive.exec.dynamic.partition.mode=nonstrict
- Įkeliami duomenys į skaidinių lentelę
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Faktinis skaidinių lentelių apdorojimas ir formavimas remiantis būsena kaip skaidinio raktu
- HDFS saugykloje bus 38 skaidinių išėjimai, kurių failo vardas bus valstybės pavadinimas. Mes patikrinsime tai šiame žingsnyje
Šie ekrano vaizdai parodys aukščiau minėto kodo vykdymą
Remdamiesi aukščiau pateiktu kodu, mes atliekame šiuos dalykus
- Sukuriamos visos valstybės su 3 stulpelių pavadinimais, pvz., Valstija, rajonas ir registracija
- Įkeliami duomenys į visų būsenų lentelę
- Sukurti skaidinių lentelę su būsena kaip skaidinio raktą
- Šiame žingsnyje skirsnių režimo nustatymas kaip negriežto (šis režimas suaktyvins dinaminio skaidymo režimą)
- Įkeliami duomenys į skaidinį tablestate_part
- Faktinis skaidinių lentelių apdorojimas ir formavimas remiantis būsena kaip skaidinio raktu
- HDFS saugykloje bus 38 skirsnių išėjimai, kurių failo vardas yra valstybės pavadinimas. Mes patikrinsime tai šiame žingsnyje. Šiame žingsnyje matome 38 skaidinio išvestis HDFS
Kas yra kaušai?
Avilio kaušai naudojami avilio lentelės duomenis atskiriant į kelis failus ar katalogus. jis naudojamas efektyviai užklausoms.
- Duomenis, ty esančius tose pertvarose, galima toliau skirstyti į grupes
- Skirstymas atliekamas pagal tam tikrų stulpelių, kuriuos pasirinkome lentelėje, Hash.
- Kaušai naudoja tam tikros formos maišos algoritmą gale, norėdami perskaityti kiekvieną įrašą ir įdėti jį į grupes
- Avilyje turime įgalinti grupes naudodami set.hive.enforce.bucketing = true;
1 žingsnis) Kurkite kibirą, kaip parodyta žemiau.
Iš aukščiau pateikto ekrano
- Kuriame pavyzdinį_grupę su stulpelių pavadinimais, pvz., Vardas_vardas, darbo_ID, skyrius, atlyginimas ir šalis
- Kuriame 4 kaušus.
- Kai duomenys bus automatiškai įkelti, įdėkite duomenis į 4 grupes
2 žingsnis) Įkelkite duomenis į lentelės pavyzdžių grupę
Darant prielaidą, kad „Darbuotojų lentelė“ jau sukurta „Hive“ sistemoje. Atlikdami šį veiksmą, matysime duomenų iš darbuotojų lentelės įkėlimą į lentelės pavyzdžių grupę.
Prieš pradėdami perkelti darbuotojų duomenis į grupes, įsitikinkite, kad juos sudaro stulpelių pavadinimai, pvz., Vardas_vardas, darbo_id, skyrius, atlyginimas ir šalis.
Čia mes įkeliame duomenis į pavyzdinę grupę iš darbuotojų lentelės.
3 žingsnis) Rodomi 4 segmentai, sukurti 1 veiksme
Iš pirmiau pateiktos ekrano kopijos galime pamatyti, kad duomenys iš darbuotojų lentelės perkeliami į 4 grupes, sukurtas atlikus 1 veiksmą.