Tabeller, skillevegger og skuffer er delene av Hive-datamodellering.
Hva er partisjoner?
Hive Partitions er en måte å organisere tabeller i partisjoner ved å dele tabeller i forskjellige deler basert på partisjonsnøkler.
Partisjon er nyttig når tabellen har en eller flere partisjonsnøkler. Partisjonsnøkler er grunnleggende elementer for å bestemme hvordan dataene lagres i tabellen.
For eksempel : -
"Kunden har noen e-handelsdata som tilhører India-operasjoner der hver delstat (38 stater) operasjoner nevnt i sin helhet. Hvis vi tar statskolonne som partisjonsnøkkel og utfører partisjoner på India-dataene som helhet, kan vi for å få Antall partisjoner (38 partisjoner) som er lik antall stater (38) til stede i India. Slik at hver statsdata kan vises separat i partisjonstabeller.
Eksempel på kodebit for partisjoner
- Opprettelse av tabell alle stater
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Laster data i opprettet tabell alle stater
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Oppretting av partisjonstabell
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
For partisjon må vi sette denne egenskapen
set hive.exec.dynamic.partition.mode=nonstrict
- Laster data i partisjonstabellen
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Faktisk behandling og dannelse av partisjonstabeller basert på tilstand som partisjonsnøkkel
- Det kommer til å være 38 partisjonsutganger i HDFS-lagring med filnavnet som tilstandsnavn. Vi vil sjekke dette i dette trinnet
Følgende skjermbilder viser deg utførelsen av ovennevnte kode
Fra koden ovenfor gjør vi følgende ting
- Oppretting av tabell alle stater med tre kolonnenavn som stat, distrikt og påmelding
- Laster data i tabellen i alle stater
- Oppretting av partisjonstabell med tilstand som partisjonsnøkkel
- I dette trinnet Setter du partisjonsmodus som ikke-streng (denne modusen aktiverer dynamisk partisjonsmodus)
- Laster data inn i partisjonstabell_del
- Faktisk behandling og dannelse av partisjonstabeller basert på tilstand som partisjonsnøkkel
- Det kommer til 38 partisjonsutganger i HDFS-lagring med filnavnet som tilstandsnavn. Vi vil sjekke dette i dette trinnet. I dette trinnet ser vi de 38 partisjonsutgangene i HDFS
Hva er bøtter?
Bøtter i bikube brukes til å adskille bikubedata i flere filer eller kataloger. den brukes til effektiv spørring.
- Dataene som er tilstede i at partisjoner kan deles videre i skuffer
- Inndelingen utføres basert på hasj av bestemte kolonner som vi valgte i tabellen.
- Bøtter bruker en eller annen form for Hashing-algoritme i bakenden for å lese hver post og plassere den i bøtter
- I Hive må vi aktivere bøtter ved å bruke set.hive.enforce.bucketing = true;
Trinn 1) Opprette bøtte som vist nedenfor.
Fra skjermbildet ovenfor
- Vi lager sample_bucket med kolonnenavn som fornavn, jobb_id, avdeling, lønn og land
- Vi lager 4 bøtter overalt.
- Når dataene blir lastet inn automatisk, plasserer du dataene i fire bøtter
Trinn 2) Laster data i tabelleksempelbøtte
Forutsatt at "Ansattstabell" allerede er opprettet i Hive-systemet. I dette trinnet vil vi se innlasting av data fra ansatte-tabellen i tabelleksempelbøtte.
Før vi begynner å flytte medarbeiderdata i bøtter, må du sørge for at de består av kolonnenavn som fornavn, jobb_id, avdeling, lønn og land.
Her laster vi inn data i eksempelbøtte fra medarbeidertabellen.
Trinn 3) Viser 4 bøtter som ble opprettet i trinn 1
Fra skjermbildet ovenfor kan vi se at dataene fra arbeidstabellen overføres til 4 bøtter opprettet i trinn 1.