Hive Partitions & Wiadra z przykładem

Spisie treści:

Anonim

Tabele, partycje i zasobniki to części modelowania danych Hive.

Co to są partycje?

Hive Partitions to sposób organizowania tabel na partycje poprzez dzielenie tabel na różne części na podstawie kluczy 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 posiadający pewne dane e-commerce należące do operacji w Indiach, w których operacje każdego stanu (38 stanów) są wymienione jako całość. Jeśli weźmiemy kolumnę stanu jako klucz partycji i przeprowadzimy partycje na tych danych Indii jako całości, możemy aby 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. Tworzenie tabeli wszystkich stanów
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Ładowanie danych do utworzonej tabeli wszystkich stanów
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Tworzenie tabeli 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 tabel partycji na podstawie stanu jako klucza partycji
  2. W magazynie HDFS będzie 38 wyjść partycji z nazwą pliku jako nazwą stanu. Sprawdzimy to na tym etapie

Poniższe zrzuty ekranu pokażą wykonanie powyższego kodu

Z powyższego kodu robimy następujące rzeczy

  1. Utworzenie tabeli wszystkich stanów z 3 nazwami kolumn, takimi jak stan, dystrykt 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 tabel partycji na podstawie stanu jako klucza partycji
  7. Będzie 38 wyjść partycji w magazynie HDFS z nazwą pliku jako nazwą stanu. Sprawdzimy to na tym etapie. W tym kroku widzimy 38 partycji wyjściowych w HDFS

Co to jest Buckets?

Zasobniki w gałęzi są używane do segregowania danych tabeli gałęzi gałęzi na wiele plików lub katalogów. służy do wydajnego wykonywania zapytań.

  • Dane, tj. Obecne w tych partycjach, można dalej podzielić na segmenty
  • Podział dokonywany jest na podstawie skrótu poszczególnych kolumn, które wybraliśmy w tabeli.
  • Zasobniki używają jakiejś formy algorytmu haszującego na zapleczu, aby odczytać każdy rekord i umieścić go w zasobnikach
  • W Hive musimy włączyć zasobniki za pomocą set.hive.enforce.bucketing = true;

Krok 1) Tworzenie zasobnika, jak pokazano poniżej.

Z powyższego zrzutu ekranu

  • Tworzymy sample_bucket z nazwami kolumn, takimi jak imię, identyfikator pracy, dział, wynagrodzenie i kraj
  • Tutaj tworzymy 4 wiadra.
  • Gdy dane zostaną załadowane automatycznie, umieść je w 4 zasobnikach

Krok 2) Ładowanie danych do zasobnika z próbkami tabeli

Zakładając, że „Tabela pracowników” została już utworzona w systemie Hive. W tym kroku zobaczymy ładowanie tabeli Dane z tabeli pracowników do segmentu próbek tabeli.

Zanim zaczniemy przenosić dane pracowników do zasobników, upewnij się, że składają się one z nazw kolumn, takich jak imię, identyfikator pracy, dział, wynagrodzenie i kraj.

Tutaj ładujemy dane do przykładowego zasobnika z tabeli pracowników.

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

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