HCatalog - Pokaż partycje

Partycja jest warunkiem dla danych tabelarycznych, które są używane do tworzenia oddzielnej tabeli lub widoku. POKAŻ PARTYCJE wyświetla listę wszystkich istniejących partycji dla danej tabeli bazowej. Partycje są wymienione w kolejności alfabetycznej. Po Hive 0.6 można również określić części specyfikacji partycji, aby przefiltrować wynikową listę.

Możesz użyć polecenia POKAŻ PARTYCJE, aby wyświetlić partycje, które istnieją w określonej tabeli. W tym rozdziale opisano, jak wyświetlić listę partycji określonej tabeli w HCatalog.

Pokaż instrukcję partycji

Składnia jest następująca -

SHOW PARTITIONS table_name;

Następujące zapytanie usuwa tabelę o nazwie employee -

./hcat –e "Show partitions employee;"

Po pomyślnym wykonaniu zapytania zobaczysz następującą odpowiedź -

OK
Designation = IT
Time taken: 5.3 seconds

Partycja dynamiczna

HCatalog organizuje tabele w partycje. Jest to sposób na podzielenie tabeli na powiązane części na podstawie wartości podzielonych kolumn, takich jak data, miasto i dział. Korzystając z partycji, można łatwo przeszukiwać część danych.

Na przykład tabela o nazwie Tab1zawiera dane pracownika, takie jak identyfikator, imię i nazwisko, dział i rok (tj. rok przystąpienia). Załóżmy, że musisz pobrać szczegóły wszystkich pracowników, którzy dołączyli w 2012 roku. Zapytanie przeszukuje całą tabelę w celu znalezienia wymaganych informacji. Jeśli jednak podzielisz dane pracowników według roku i zapiszesz je w oddzielnym pliku, skróci to czas przetwarzania zapytania. Poniższy przykład pokazuje, jak podzielić plik i jego dane na partycje -

Poniższy plik zawiera employeedata stół.

/ tab1 / Employeedata / file1

id, name,   dept, yoj
1,  gopal,   TP, 2012
2,  kiran,   HR, 2012
3,  kaleel,  SC, 2013
4, Prasanth, SC, 2013

Powyższe dane są podzielone na dwa pliki przy użyciu roku.

/ tab1 / Employeedata / 2012 / file2

1, gopal, TP, 2012
2, kiran, HR, 2012

/ tab1 / Employeedata / 2013 / file3

3, kaleel,   SC, 2013
4, Prasanth, SC, 2013

Dodawanie partycji

Możemy dodać partycje do tabeli, zmieniając tabelę. Załóżmy, że mamy tabelę o nazwieemployee z polami takimi jak identyfikator, imię i nazwisko, wynagrodzenie, stanowisko, dział i rok.

Składnia

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;
partition_spec:
: (p_column = p_col_value, p_column = p_col_value, ...)

Poniższe zapytanie służy do dodawania partycji do employee stół.

./hcat –e "ALTER TABLE employee ADD PARTITION (year = '2013') location '/2012/part2012';"

Zmiana nazwy partycji

Do zmiany nazwy partycji można użyć polecenia RENAME-TO. Jego składnia jest następująca -

./hact –e "ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;"

Następujące zapytanie służy do zmiany nazwy partycji -

./hcat –e "ALTER TABLE employee PARTITION (year=’1203’) RENAME TO PARTITION (Yoj='1203');"

Upuszczanie partycji

Składnia polecenia używanego do usuwania partycji jest następująca -

./hcat –e "ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec,.
   PARTITION partition_spec,...;"

Następujące zapytanie służy do usuwania partycji -

./hcat –e "ALTER TABLE employee DROP [IF EXISTS] PARTITION (year=’1203’);"