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
- Skapande av tabell alla stater
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Läser in data i skapad tabell alla stater
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Skapa partitionstabell
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
För partition måste vi ställa in den här egenskapen
set hive.exec.dynamic.partition.mode=nonstrict
- Läser in data i partitionstabellen
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Faktisk bearbetning och bildning av partitionstabeller baserat på tillstånd som partitionsnyckel
- 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
- Skapande av tabell alla stater med tre kolumnnamn som stat, distrikt och registrering
- Läser in data i tabellen alla stater
- Skapande av partitionstabell med tillstånd som partitionsnyckel
- I det här steget Ställer du in partitionsläget som icke-strikt (detta läge aktiverar dynamiskt partitionsläge)
- Läser in data i partitionen tablestate_part
- Faktisk bearbetning och bildning av partitionstabeller baserat på tillstånd som partitionsnyckel
- 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.