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’);"