Hive skillevegger og bøtter med eksempel
Tabeller, partisjoner og bøtter 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 én eller flere partisjonsnøkler. Partisjonsnøkler er grunnleggende elementer for å bestemme hvordan dataene lagres i tabellen.
For eksempel: -
"Klient som har noen e-handelsdata som tilhører India-operasjoner der hver delstat (38 stater) opererer som en helhet. Hvis vi tar tilstandskolonnen som partisjonsnøkkel og utfører partisjoner på de India-dataene som helhet, kan vi få Antall partisjoner (38 partisjoner) som er lik antall stater (38) til stede i India. Slik at hver tilstandsdata kan sees separat i partisjonstabeller.
Eksempelkodebit for partisjoner
- Oppretting av tabell alle stater
create table all states(state string, District string,Enrolments string) row format delimited fields terminated by ',';
- Laster data inn i opprettet tabell alle tilstander
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 angi denne egenskapen
set hive.exec.dynamic.partition.mode=nonstrict
- Laster data inn i partisjonstabell
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 vil vise deg utførelsen av ovennevnte kode
Fra koden ovenfor gjør vi følgende ting
- Oppretting av tabell alle stater med 3 kolonnenavn som stat, distrikt og registrering
- Laster data inn i tabellen alle tilstander
- Oppretting av partisjonstabell med tilstand som partisjonsnøkkel
- I dette trinnet Angi partisjonsmodus som ikke-streng (Denne modusen vil aktivere dynamisk partisjonsmodus)
- Laster data inn i partisjonen tablestate_part
- 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 å segregere bikubetabelldata i flere filer eller kataloger. den brukes for effektiv spørring.
- Dataene dvs. tilstede ved at partisjoner kan deles videre inn i Buckets
- Delingen utføres basert på Hash for 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) Lage 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 her.
- Når dataene er lastet inn automatisk, plasserer du dataene i 4 bøtter
Trinn 2) Laster data inn i tabelleksempelbøtte
Forutsatt at "Employees table" allerede er opprettet i Hive-systemet. I dette trinnet vil vi se lasting av data fra ansattetabellen til tabelleksempelbøtte.
Før vi begynner å flytte ansattes data til buckets, sørg for at de består av kolonnenavn som fornavn, jobb-id, avdeling, lønn og land.
Her laster vi data inn i prøvebøtte fra ansattetabellen.
Trinn 3)Viser 4 bøtter som ble opprettet i trinn 1
Fra skjermbildet ovenfor kan vi se at dataene fra ansattetabellen er overført til 4 bøtter opprettet i trinn 1.







