Hive skillevægge og spande med eksempel

Tabeller, partitioner og Buckets er dele 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å partitionsnøgler.

Partition er nyttigt, når tabellen har en eller flere partitionsnøgler. Partitionsnøgler er grundlæggende elementer til at bestemme, hvordan dataene lagres i tabellen.

For eksempel-

"Kunde, der har nogle e-handelsdata, som tilhører Indiens operationer, hvor hver stat (38 stater) opererer som en helhed. Hvis vi tager tilstandskolonnen som partitionsnøgle og udfører partitioner på disse Indien-data som helhed, kan vi få Antal partitioner (38 partitioner), som er lig med antallet af stater (38) til stede i Indien. Sådan at hver tilstandsdata kan ses separat i partitionstabeller.

Eksempelkodestykke til partitioner

  1. Oprettelse af tabel alle stater
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Indlæser data i oprettet tabel alle tilstande
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Oprettelse af partitionstabel
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Til partition skal vi indstille denne egenskab
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Indlæser data i partitionstabel
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-lageret med filnavnet som tilstandsnavn. Vi tjekker dette i dette trin

Følgende skærmbilleder vil vise dig udførelsen af ​​ovennævnte kode

Hive skillevægge

Hive skillevægge

Hive skillevægge

Hive skillevægge

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æser data i tabel alle tilstande
  3. Oprettelse af partitionstabel med tilstand som partitionsnøgle
  4. I dette trin Indstilling af partitionstilstand som ikke-streng (Denne tilstand vil aktivere 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 er 38 partitionsudgange i HDFS-lageret med filnavnet som tilstandsnavn. Vi tjekker dette i dette trin. I dette trin ser vi de 38 partitionsudgange i HDFS

Hvad er Buckets?

Buckets in hive bruges til at adskille hive-tabeldata i flere filer eller mapper. det bruges til effektiv forespørgsel.

  • Dataene, dvs. tilstede i, at partitioner kan opdeles yderligere i Buckets
  • Opdelingen udføres baseret på Hash af bestemte kolonner, som vi valgte i tabellen.
  • Buckets bruger en form for hashing-algoritme i bagenden til at læse hver post og placere den i buckets
  • I Hive skal vi aktivere buckets ved at bruge set.hive.enforce.bucketing=sand;

Trin 1) Oprettelse af spand som vist nedenfor.

Hive Bøtter

Fra ovenstående skærmbillede

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

Trin 2) Indlæser data i tabelprøvespand

Forudsat at "Medarbejdertabel" allerede er oprettet i Hive-systemet. I dette trin vil vi se indlæsningen af ​​data fra medarbejdertabellen i tabelprøvespanden.

Før vi begynder at flytte medarbejderdata til buckets, skal du sørge for, at de består af kolonnenavne som fornavn, job-id, afdeling, løn og land.

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

Hive Bøtter

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

Hive Bøtter

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

Dagligt Guru99 Nyhedsbrev

Start dagen med de seneste og vigtigste AI-nyheder leveret lige nu.