Przegrody i wiadra ula z przykładem
Tabele, partycje i zasobniki są częściami modelowania danych Hive.
Co to jest partycje?
Partycje Hive to sposób organizowania tabel w partycje poprzez dzielenie tabel na różne części w oparciu o klucze partycji.
Partycja jest przydatna, gdy tabela ma jeden lub więcej kluczy partycji. Klucze partycji to podstawowe elementy określające sposób przechowywania danych w tabeli.
Na przykład: -
„Klient ma pewne dane e-commerce, które należą do operacji w Indiach, w których każda operacja stanu (38 stanów) jest wymieniona jako całość. Jeśli weźmiemy kolumnę stanu jako klucz partycji i wykonamy partycje na tych danych Indii jako całości, możemy uzyskać liczbę partycji (38 partycji), która jest równa liczbie stanów (38) obecnych w Indiach. Tak, że dane każdego stanu można przeglądać oddzielnie w tabelach partycji.
Przykładowy fragment kodu dla partycji
- Utworzenie tabeli wszystkich stanów
create table all states(state string, District string,Enrolments string) row format delimited fields terminated by ',';
- Ładowanie danych do utworzonej tabeli wszystkich stanów
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Utworzenie tablicy partycji
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
- W przypadku partycji musimy ustawić tę właściwość
set hive.exec.dynamic.partition.mode=nonstrict
- Ładowanie danych do tablicy partycji
INSERT OVERWRITE TABLE state_part PARTITION(state) SELECT district,enrolments,state from allstates;
- Rzeczywiste przetwarzanie i tworzenie tablic partycji na podstawie stanu jako klucza partycji
- W pamięci HDFS będzie znajdować się 38 wyników partycji z nazwą pliku jako nazwą stanu. Sprawdzimy to w tym kroku
Poniższe zrzuty ekranu pokażą Ci wykonanie wyżej wymienionego kodu
Na podstawie powyższego kodu wykonujemy następujące czynności
- Utworzenie tabeli wszystkich stanów z trzema nazwami kolumn, takimi jak stan, okręg i rejestracja
- Ładowanie danych do tabeli wszystkich stanów
- Utworzenie tablicy partycji ze stanem jako kluczem partycji
- W tym kroku Ustawianie trybu partycji jako nieścisłego (ten tryb aktywuje tryb partycji dynamicznej)
- Ładowanie danych do partycji tablestate_part
- Rzeczywiste przetwarzanie i tworzenie tablic partycji na podstawie stanu jako klucza partycji
- W pamięci HDFS będzie 38 wyjść partycji z nazwą pliku jako nazwą stanu. Sprawdzimy to w tym kroku. W tym kroku widzimy 38 wyników partycji w HDFS
Co to jest Wiadra?
Wiadra w gałęzi służą do segregowania danych tabeli gałęzi na wiele plików lub katalogów. służy do wydajnego wykonywania zapytań.
- Dane znajdujące się w tych partycjach można dalej podzielić na Buckety
- Podział następuje w oparciu o Hash poszczególnych kolumn, które wybraliśmy w tabeli.
- Wiadra korzystają z jakiejś formy algorytmu mieszania na zapleczu, aby odczytać każdy rekord i umieścić go w zasobnikach
- W Hive musimy włączyć segmenty za pomocą set.hive.enforce.bucketing=true;
Krok 1) Tworzenie wiadra, jak pokazano poniżej.
Z powyższego zrzutu ekranu
- Tworzymy sample_bucket z nazwami kolumn, takimi jak imię, identyfikator stanowiska, dział, wynagrodzenie i kraj
- Tworzymy tutaj 4 wiadra.
- Gdy dane zostaną automatycznie załadowane, umieść je w 4 segmentach
Krok 2) Ładowanie danych do segmentu próbek tabeli
Zakładając, że w systemie Hive utworzono już „Tabelę pracowników”. W tym kroku zobaczymy ładowanie danych z tabeli pracowników do wiadra z próbkami tabeli.
Zanim zaczniemy przenosić dane pracowników do segmentów, upewnijmy się, że składają się one z nazw kolumn takich jak imię, identyfikator stanowiska, dział, wynagrodzenie i kraj.
Tutaj ładujemy dane do wiadra przykładowego z tabeli pracowników.
Krok 3)Wyświetlanie 4 segmentów utworzonych w kroku 1
Na powyższym zrzucie ekranu widzimy, że dane z tabeli pracowników przenoszone są do 4 segmentów utworzonych w kroku 1.