HCatalog - Показать разделы

Раздел - это условие для табличных данных, которое используется для создания отдельной таблицы или представления. SHOW PARTITIONS перечисляет все существующие разделы для данной базовой таблицы. Разделы перечислены в алфавитном порядке. После Hive 0.6 также можно указать части спецификации раздела для фильтрации результирующего списка.

Вы можете использовать команду SHOW PARTITIONS, чтобы увидеть разделы, существующие в определенной таблице. В этой главе описывается, как вывести список разделов конкретной таблицы в HCatalog.

Показать заявление о разделах

Синтаксис следующий -

SHOW PARTITIONS table_name;

Следующий запрос удаляет таблицу с именем employee -

./hcat –e "Show partitions employee;"

При успешном выполнении запроса вы увидите следующий ответ -

OK
Designation = IT
Time taken: 5.3 seconds

Динамическое разделение

HCatalog объединяет таблицы в разделы. Это способ разделения таблицы на связанные части на основе значений разделенных столбцов, таких как дата, город и отдел. Используя разделы, легко запросить часть данных.

Например, таблица с именем Tab1содержит данные сотрудника, такие как идентификатор, имя, отдел и год (т. е. год присоединения). Предположим, вам нужно получить сведения обо всех сотрудниках, присоединившихся к работе в 2012 году. Запрос выполняет поиск необходимой информации по всей таблице. Однако если вы разделите данные о сотрудниках по годам и сохраните их в отдельном файле, это сократит время обработки запроса. В следующем примере показано, как разделить файл и его данные:

Следующий файл содержит employeedata стол.

/ tab1 / usededata / file1

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

Приведенные выше данные разделены на два файла с использованием года.

/ tab1 / usededata / 2012 / файл2

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

/ tab1 / usededata / 2013 / файл3

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

Добавление раздела

Мы можем добавлять разделы к таблице, изменяя таблицу. Предположим, у нас есть таблица с именемemployee с такими полями, как Id, Name, Salary, Designation, Dept и yoj.

Синтаксис

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, ...)

Следующий запрос используется для добавления раздела в employee стол.

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

Переименование раздела

Вы можете использовать команду RENAME-TO для переименования раздела. Его синтаксис следующий -

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

Следующий запрос используется для переименования раздела -

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

Удаление раздела

Синтаксис команды, которая используется для удаления раздела, выглядит следующим образом:

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

Следующий запрос используется для удаления раздела -

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