Раздел — это условие для табличных данных, которое используется для создания отдельной таблицы или представления. 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 содержит данные о сотрудниках, такие как id, name, dept и yoj (т. Е. Год присоединения). Предположим, вам нужно получить сведения обо всех сотрудниках, присоединившихся в 2012 году. Запрос ищет всю информацию во всей таблице. Однако если вы разделите данные о сотрудниках по году и сохраните их в отдельном файле, это сократит время обработки запроса. В следующем примере показано, как разделить файл и его данные:
Следующий файл содержит таблицу сотрудников .
/ Tab1 / employeedata / файл1
id, name, dept, yoj 1, gopal, TP, 2012 2, kiran, HR, 2012 3, kaleel, SC, 2013 4, Prasanth, SC, 2013
Приведенные выше данные разбиты на два файла с использованием года.
/ Tab1 / employeedata / 2012 / file2
1, gopal, TP, 2012 2, kiran, HR, 2012
/ Tab1 / employeedata / 2013 / file3
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, ...)
Следующий запрос используется для добавления раздела в таблицу сотрудников .
./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,...;"
Следующий запрос используется для удаления раздела —