Таблицы, разделы и корзины являются частями моделирования данных Hive.
Что такое разделы?
Разделы Hive - это способ организации таблиц в разделы путем разделения таблиц на разные части на основе ключей разделов.
Разделение полезно, когда в таблице есть один или несколько ключей разделения. Ключи разделения - это основные элементы для определения того, как данные хранятся в таблице.
Например : -
"У клиента есть некоторые данные электронной торговли, которые относятся к операциям в Индии, в которых операции каждого штата (38 штатов) упомянуты в целом. Если мы возьмем столбец состояния в качестве ключа раздела и выполним разделы для этих данных Индии в целом, мы сможем чтобы получить количество разделов (38 разделов), которое равно количеству штатов (38), присутствующих в Индии.Таким образом, что данные каждого состояния можно просматривать отдельно в таблицах разделов.
Пример фрагмента кода для разделов
- Создание таблицы всех состояний
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Загрузка данных в созданную таблицу всех состояний
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Создание таблицы разделов
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
Для раздела мы должны установить это свойство
set hive.exec.dynamic.partition.mode=nonstrict
- Загрузка данных в таблицу разделов
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Фактическая обработка и формирование таблиц разделов на основе состояния как ключа раздела
- В хранилище HDFS будет 38 выходных разделов с именем файла в качестве имени состояния. Мы проверим это на этом этапе
Следующие снимки экрана покажут вам выполнение вышеупомянутого кода.
Из приведенного выше кода мы делаем следующие вещи
- Создание таблицы всех штатов с 3 именами столбцов, такими как штат, район и зачисление.
- Загрузка данных в таблицу всех состояний
- Создание таблицы разделов с состоянием в качестве ключа раздела
- На этом шаге установка режима раздела как нестрогого (этот режим активирует режим динамического раздела)
- Загрузка данных в таблицу разделов
- Фактическая обработка и формирование таблиц разделов на основе состояния как ключа раздела
- В хранилище HDFS собирается 38 выходов разделов с именем файла в качестве имени состояния. Мы проверим это на этом этапе. На этом этапе мы видим 38 выходных разделов в HDFS.
Что такое ведра?
Сегменты в улье используются для разделения табличных данных улья на несколько файлов или каталогов. он используется для эффективных запросов.
- Данные, то есть присутствующие в этих разделах, можно разделить на сегменты.
- Деление выполняется на основе хэша определенных столбцов, которые мы выбрали в таблице.
- Сегменты используют некоторую форму алгоритма хеширования в бэкенде, чтобы читать каждую запись и помещать ее в сегменты.
- В Hive мы должны включить ведра с помощью set.hive.enforce.bucketing = true;
Шаг 1) Создание ковша, как показано ниже.
Из приведенного выше снимка экрана
- Мы создаем sample_bucket с такими именами столбцов, как first_name, job_id, Department, salary и country.
- Здесь мы создаем 4 ведра.
- Как только данные загрузятся автоматически, поместите данные в 4 сегмента.
Шаг 2) Загрузка данных в сегмент образца таблицы
Предположим, что «Таблица сотрудников» уже создана в системе Hive. На этом этапе мы увидим загрузку данных из таблицы сотрудников в корзину образца таблицы.
Прежде чем мы начнем перемещать данные о сотрудниках в сегменты, убедитесь, что они состоят из имен столбцов, таких как first_name, job_id, Department, salary и country.
Здесь мы загружаем данные в образец корзины из таблицы сотрудников.
Шаг 3) Отображение 4 сегментов, созданных на шаге 1
На приведенном выше снимке экрана мы видим, что данные из таблицы сотрудников переносятся в 4 сегмента, созданные на шаге 1.