Hive-partities en buckets met voorbeeld

Tabellen, partities en buckets zijn de onderdelen van Hive-gegevensmodellering.

Wat zijn partities?

Hive Partitions is een manier om tabellen in partities te ordenen door tabellen in verschillende delen te verdelen op basis van partitiesleutels.

Partitie is handig als de tabel een of meer partitiesleutels heeft. Partitiesleutels zijn basiselementen om te bepalen hoe de gegevens in de tabel worden opgeslagen.

Bijvoorbeeld: -

“Klant met enkele e-commercegegevens die toebehoren aan Indiase activiteiten waarin elke staat (38 staten) activiteiten als geheel worden vermeld. Als we de statuskolom als partitiesleutel nemen en partities uitvoeren op die India-gegevens als geheel, kunnen we het aantal partities (38 partities) verkrijgen dat gelijk is aan het aantal staten (38) dat aanwezig is in India. Zodanig dat elke statusgegevens afzonderlijk kunnen worden bekeken in partitietabellen.

Voorbeeldcodefragment voor partities

  1. Creëren van een tabel met alle staten
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Gegevens laden in de gemaakte tabel met alle statussen
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Aanmaken van partitietabel
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Voor partitie moeten we deze eigenschap instellen
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Gegevens laden in partitietabel
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. Feitelijke verwerking en vorming van partitietabellen op basis van de status als partitiesleutel
  2. Er zullen 38 partitie-uitvoer zijn in HDFS-opslag met de bestandsnaam als statusnaam. We zullen dit in deze stap controleren

De following schermafbeeldingen laten u de uitvoering van bovengenoemde code zien

Hive-partities

Hive-partities

Hive-partities

Hive-partities

Uit de bovenstaande code volgen we following spullen

  1. Creëren van een tabel met alle staten met 3 kolomnamen, zoals staat, district en inschrijving
  2. Gegevens laden in tabel alle staten
  3. Creëren van partitietabel met status als partitiesleutel
  4. In deze stap stelt u de partitiemodus in als niet-strikt (deze modus activeert de dynamische partitiemodus)
  5. Gegevens laden in partitie tablestate_part
  6. Feitelijke verwerking en vorming van partitietabellen op basis van de status als partitiesleutel
  7. Er zijn 38 partitie-uitvoer in HDFS-opslag met de bestandsnaam als statusnaam. We zullen dit in deze stap controleren. In deze stap zien we de 38 partitie-uitvoer in HDFS

Wat zijn emmers?

Buckets in Hive worden gebruikt bij het scheiden van Hive-tabelgegevens in meerdere bestanden of mappen. het wordt gebruikt voor efficiënt bevragen.

  • De gegevens die in die partities aanwezig zijn, kunnen verder worden onderverdeeld in buckets
  • De verdeling wordt uitgevoerd op basis van de hash van bepaalde kolommen die we in de tabel hebben geselecteerd.
  • Buckets gebruiken een of andere vorm van hashing-algoritme aan de achterkant om elk record te lezen en in buckets te plaatsen
  • In Hive moeten we buckets inschakelen met behulp van de set.hive.enforce.bucketing=waar;

Stap 1) Maak een bucket zoals hieronder weergegeven.

Bijenkorf emmers

Uit de bovenstaande schermafdruk

  • We maken voorbeeld_bucket met kolomnamen zoals voornaam, functie_id, afdeling, salaris en land
  • We maken hier 4 emmers.
  • Zodra de gegevens automatisch zijn geladen, plaatst u de gegevens in 4 buckets

Stap 2) Gegevens laden in tabelvoorbeeldbucket

Ervan uitgaande dat de "Employees table" al in het Hive-systeem is aangemaakt. In deze stap zien we het laden van gegevens uit de werknemerstabel in de tabelvoorbeeldbucket.

Voordat we werknemersgegevens naar buckets gaan verplaatsen, moet u ervoor zorgen dat deze bestaan ​​uit kolomnamen zoals voornaam, functie-id, afdeling, salaris en land.

Hier laden we gegevens in de monsterbucket vanuit de werknemerstabel.

Bijenkorf emmers

Stap 3)Er worden 4 buckets weergegeven die in stap 1 zijn gemaakt

Bijenkorf emmers

Uit de bovenstaande schermafbeelding kunnen we zien dat de gegevens uit de werknemerstabel worden overgebracht naar 4 buckets die in stap 1 zijn gemaakt.