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

  1. Utworzenie tabeli wszystkich stanów
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Ładowanie danych do utworzonej tabeli wszystkich stanów
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Utworzenie tablicy partycji
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. W przypadku partycji musimy ustawić tę właściwość
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Ładowanie danych do tablicy partycji
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. Rzeczywiste przetwarzanie i tworzenie tablic partycji na podstawie stanu jako klucza partycji
  2. 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

Partycje Hive

Partycje Hive

Partycje Hive

Partycje Hive

Na podstawie powyższego kodu wykonujemy następujące czynności

  1. Utworzenie tabeli wszystkich stanów z trzema nazwami kolumn, takimi jak stan, okręg i rejestracja
  2. Ładowanie danych do tabeli wszystkich stanów
  3. Utworzenie tablicy partycji ze stanem jako kluczem partycji
  4. W tym kroku Ustawianie trybu partycji jako nieścisłego (ten tryb aktywuje tryb partycji dynamicznej)
  5. Ładowanie danych do partycji tablestate_part
  6. Rzeczywiste przetwarzanie i tworzenie tablic partycji na podstawie stanu jako klucza partycji
  7. 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.

Wiadra do ula

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.

Wiadra do ula

Krok 3)Wyświetlanie 4 segmentów utworzonych w kroku 1

Wiadra do ula

Na powyższym zrzucie ekranu widzimy, że dane z tabeli pracowników przenoszone są do 4 segmentów utworzonych w kroku 1.