Hive-partitioner & Spande med eksempel

Indholdsfortegnelse:

Anonim

Tabeller, skillevægge og spande er delene af Hive-datamodellering.

Hvad er partitioner?

Hive Partitions er en måde at organisere tabeller i partitioner ved at opdele tabeller i forskellige dele baseret på partitionstaster.

Partition er nyttig, når tabellen har en eller flere Partition-nøgler. Partitionstaster er grundlæggende elementer til bestemmelse af, hvordan dataene gemmes i tabellen.

For eksempel : -

"Klient, der har nogle e-handelsdata, der hører til Indien-operationer, hvor hver stats (38 stater) operationer nævnt som en helhed. Hvis vi tager tilstandskolonnen som partitionsnøgle og udfører partitioner på de Indien-data som helhed, kan vi for at få Antal partitioner (38 partitioner), der er lig med antallet af stater (38), der er til stede i Indien, således at hver statsdata kan ses separat i partitionstabeller.

Eksempel på kodestykke til partitioner

  1. Oprettelse af tabel alle stater
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Indlæser data i oprettet tabel alle stater
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Oprettelse af skillebord
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Til partition er vi nødt til at indstille denne egenskab

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Indlæser data i partitionstabellen
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Faktisk behandling og dannelse af partitionstabeller baseret på tilstand som partitionsnøgle
  2. Der vil være 38 partitionsudgange i HDFS-lagring med filnavnet som tilstandsnavn. Vi vil kontrollere dette i dette trin

De følgende skærmbilleder viser u udførelsen af ​​ovennævnte kode

Fra ovenstående kode gør vi følgende ting

  1. Oprettelse af tabel alle stater med 3 kolonnenavne såsom stat, distrikt og tilmelding
  2. Indlæsning af data i tabel alle stater
  3. Oprettelse af partitionstabel med tilstand som partitionsnøgle
  4. I dette trin Indstiller partitionstilstand som ikke-streng (denne tilstand aktiverer dynamisk partitionstilstand)
  5. Indlæser data i partition tablestate_part
  6. Faktisk behandling og dannelse af partitionstabeller baseret på tilstand som partitionsnøgle
  7. Der vil 38 partitionsudgange i HDFS-lagring med filnavnet som tilstandsnavn. Vi vil kontrollere dette i dette trin. I dette trin ser vi de 38 partitionsudgange i HDFS

Hvad er spande?

Skovle i bikube bruges til at adskille bikubedata i flere filer eller mapper. det bruges til effektiv forespørgsel.

  • De data, der er til stede i disse partitioner, kan opdeles yderligere i spande
  • Opdelingen udføres baseret på hash af bestemte kolonner, som vi valgte i tabellen.
  • Spande bruger en eller anden form for Hashing-algoritme i bagenden til at læse hver post og placere den i spande
  • I Hive skal vi aktivere spande ved at bruge set.hive.enforce.bucketing = true;

Trin 1) Oprettelse af spand som vist nedenfor.

Fra ovenstående skærmbillede

  • Vi opretter sample_bucket med kolonnenavne som fornavn, job_id, afdeling, løn og land
  • Vi opretter 4 spande overalt.
  • Når dataene automatisk er indlæst, skal du placere dem i 4 spande

Trin 2) Indlæsning af data i tabeleksempelspand

Forudsat at "Medarbejdertabellen" allerede er oprettet i Hive-systemet. I dette trin ser vi indlæsningen af ​​data fra medarbejdertabellen i en tabeleksempelspand.

Inden vi begynder at flytte medarbejderdata i spande, skal du sørge for, at det består af kolonnenavne som fornavn, jobnavn, afdeling, løn og land.

Her indlæser vi data i en prøvebakke fra medarbejdertabellen.

Trin 3) Viser 4 spande, der blev oprettet i trin 1

Fra ovenstående skærmbillede kan vi se, at dataene fra medarbejdertabellen overføres til 4 spande oprettet i trin 1.