Hive Partitions & Skopor med exempel

Innehållsförteckning:

Anonim

Tabeller, partitioner och skopor är delarna av Hive-datamodellering.

Vad är partitioner?

Hive Partitions är ett sätt att organisera tabeller i partitioner genom att dela tabeller i olika delar baserat på partitionstangenter.

Partition är användbart när tabellen har en eller flera partitionsnycklar. Partitionsnycklar är grundläggande element för att bestämma hur data lagras i tabellen.

Till exempel : -

"Klient som har vissa e-handelsdata som tillhör Indien-operationer där varje delstat (38 stater) som nämns i sin helhet. Om vi ​​tar tillståndskolumnen som partitionsnyckel och utför partitioner på den Indien-informationen som helhet kan vi för att få Antal partitioner (38 partitioner) vilket är lika med antalet stater (38) som finns i Indien. Så att varje tillståndsinformation kan visas separat i partitionstabeller.

Exempel på kodavsnitt för partitioner

  1. Skapande av tabell alla stater
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Läser in data i skapad tabell alla stater
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Skapa partitionstabell
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. För partition måste vi ställa in den här egenskapen

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Läser in data i partitionstabellen
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Faktisk bearbetning och bildning av partitionstabeller baserat på tillstånd som partitionsnyckel
  2. Det kommer att finnas 38 partitionsutgångar i HDFS-lagring med filnamnet som tillståndsnamn. Vi kommer att kontrollera detta i det här steget

Följande skärmdumpar visar dig utförandet av ovan nämnda kod

Från ovanstående kod gör vi följande saker

  1. Skapande av tabell alla stater med tre kolumnnamn som stat, distrikt och registrering
  2. Läser in data i tabellen alla stater
  3. Skapande av partitionstabell med tillstånd som partitionsnyckel
  4. I det här steget Ställer du in partitionsläget som icke-strikt (detta läge aktiverar dynamiskt partitionsläge)
  5. Läser in data i partitionen tablestate_part
  6. Faktisk bearbetning och bildning av partitionstabeller baserat på tillstånd som partitionsnyckel
  7. Det kommer 38 partitionsutgångar i HDFS-lagring med filnamnet som tillståndsnamn. Vi kommer att kontrollera detta i det här steget. I detta steg ser vi de 38 partitionsutgångarna i HDFS

Vad är skopor?

Hinkar i bikupan används vid segregering av bikupedata i flera filer eller kataloger. den används för effektiv fråga.

  • De data som finns i de partitionerna kan delas vidare i skopor
  • Uppdelningen utförs baserat på Hash för vissa kolumner som vi valde i tabellen.
  • Skopor använder någon form av Hashing-algoritm i bakänden för att läsa varje post och placera den i hinkar
  • I Hive måste vi aktivera skopor genom att använda set.hive.enforce.bucketing = true;

Steg 1) Skapa skopa enligt nedan.

Från ovanstående skärmdump

  • Vi skapar exempel_skopa med kolumnnamn som förnamn, jobb_id, avdelning, lön och land
  • Vi skapar fyra skopor överallt.
  • När data laddas automatiskt, placera data i fyra hinkar

Steg 2) Läsa in data i tabellprovskopan

Antar att "Anställdas tabell" redan har skapats i Hive-systemet. I det här steget kommer vi att se hur data från anställda laddas in i tabellprovskopan.

Innan vi börjar flytta anställdas data till hinkar, se till att den består av kolumnnamn som förnamn, jobbid, avdelning, lön och land.

Här laddar vi in ​​data i exempelskopan från tabellen anställda.

Steg 3) Visar fyra skopor som skapades i steg 1

Från ovanstående skärmdump kan vi se att data från tabellen anställda överförs till fyra hinkar som skapades i steg 1.