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
- Oprettelse af tabel alle stater
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Indlæser data i oprettet tabel alle stater
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Oprettelse af skillebord
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
Til partition er vi nødt til at indstille denne egenskab
set hive.exec.dynamic.partition.mode=nonstrict
- Indlæser data i partitionstabellen
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Faktisk behandling og dannelse af partitionstabeller baseret på tilstand som partitionsnøgle
- 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
- Oprettelse af tabel alle stater med 3 kolonnenavne såsom stat, distrikt og tilmelding
- Indlæsning af data i tabel alle stater
- Oprettelse af partitionstabel med tilstand som partitionsnøgle
- I dette trin Indstiller partitionstilstand som ikke-streng (denne tilstand aktiverer dynamisk partitionstilstand)
- Indlæser data i partition tablestate_part
- Faktisk behandling og dannelse af partitionstabeller baseret på tilstand som partitionsnøgle
- 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.