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

  1. Oppretting av tabell alle stater
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Laster data inn i opprettet tabell alle tilstander
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Oppretting av partisjonstabell
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. For partisjon må vi angi denne egenskapen
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Laster data inn i partisjonstabell
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. Faktisk behandling og dannelse av partisjonstabeller basert på tilstand som partisjonsnøkkel
  2. 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

Hive-partisjoner

Hive-partisjoner

Hive-partisjoner

Hive-partisjoner

Fra koden ovenfor gjør vi følgende ting

  1. Oppretting av tabell alle stater med 3 kolonnenavn som stat, distrikt og registrering
  2. Laster data inn i tabellen alle tilstander
  3. Oppretting av partisjonstabell med tilstand som partisjonsnøkkel
  4. I dette trinnet Angi partisjonsmodus som ikke-streng (Denne modusen vil aktivere dynamisk partisjonsmodus)
  5. Laster data inn i partisjonen tablestate_part
  6. Faktisk behandling og dannelse av partisjonstabeller basert på tilstand som partisjonsnøkkel
  7. 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.

Hive bøtter

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.

Hive bøtter

Trinn 3)Viser 4 bøtter som ble opprettet i trinn 1

Hive bøtter

Fra skjermbildet ovenfor kan vi se at dataene fra ansattetabellen er overført til 4 bøtter opprettet i trinn 1.

Oppsummer dette innlegget med: