Hive Partitions & Skuffer med eksempel

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

  1. Opprettelse av tabell alle stater
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Laster data i opprettet tabell alle stater
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 sette denne egenskapen

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Laster data i partisjonstabellen
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 viser deg utførelsen av ovennevnte kode

Fra koden ovenfor gjør vi følgende ting

  1. Oppretting av tabell alle stater med tre kolonnenavn som stat, distrikt og påmelding
  2. Laster data i tabellen i alle stater
  3. Oppretting av partisjonstabell med tilstand som partisjonsnøkkel
  4. I dette trinnet Setter du partisjonsmodus som ikke-streng (denne modusen aktiverer dynamisk partisjonsmodus)
  5. Laster data inn i partisjonstabell_del
  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 å 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.

Interessante artikler...