Таблицы, разделы и сегменты являются частями моделирования данных Hive.
Что такое разделы?
Разделы Hive — это способ организации таблиц на разделы путем разделения таблиц на разные части на основе ключей разделов.
Разделение полезно, когда в таблице есть один или несколько ключей Разделения. Ключи разделов являются основными элементами для определения того, как данные хранятся в таблице.
Например :
«Клиент, имеющий некоторые данные электронной коммерции, относящиеся к операциям в Индии, в которых операции по каждому штату (38 штатов) упоминаются как единое целое. Если мы возьмем столбец состояния в качестве ключа раздела и выполним разбиение по этим данным по Индии в целом, мы сможем получить Количество разделов (38 разделов), которое равно числу штатов (38), присутствующих в Индии, так, чтобы данные каждого состояния можно было просматривать отдельно в таблицах разделов.
Пример кода для разделов
- Создание таблицы всех состояний
create table all states(state string, District string,Enrolments string) row format delimited fields 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 выходных разделов с именем файла в качестве имени состояния. Мы проверим это на этом шаге
На следующих снимках экрана показано выполнение вышеуказанного кода.
Из приведенного выше кода, мы делаем следующие вещи
- Создание таблицы всех штатов с тремя именами столбцов, такими как штат, район и регистрация
- Загрузка данных в таблицу всех состояний
- Создание таблицы разделов с указанием состояния в качестве ключа раздела
- На этом шаге установка режима раздела как нестрогого (этот режим активирует режим динамического раздела)
- Загрузка данных в раздел tablestate_part
- Фактическая обработка и формирование таблиц разделов на основе состояния в качестве ключа раздела
- В хранилище HDFS будет 38 выходных разделов с именем файла в качестве имени состояния. Мы проверим это на этом шаге. На этом этапе мы видим 38 выходных разделов в HDFS
Что такое ковши?
Buckets in hive используется для разделения табличных данных улья на несколько файлов или каталогов. он используется для эффективного запроса.
- Данные, т.е. присутствующие в этих разделах, могут быть разделены далее на сегменты
- Деление выполняется на основе хэша определенных столбцов, которые мы выбрали в таблице.
- Сегменты используют некоторую форму алгоритма хеширования в конце, чтобы прочитать каждую запись и поместить ее в сегменты.
- В Hive мы должны включить сегменты, используя set.hive.enforce.bucketing = true;
Шаг 1) Создание Bucket, как показано ниже.
Из приведенного выше снимка экрана
- Мы создаем sample_bucket с именами столбцов, такими как first_name, job_id, отдел, зарплата и страна
- Мы создаем 4 ведра здесь.
- Как только данные загружаются автоматически, поместите данные в 4 корзины
Шаг 2) Загрузка данных в образец таблицы
Предполагая, что «Таблица сотрудников» уже создана в системе Hive. На этом шаге мы увидим загрузку таблицы «Данные из сотрудников» в корзину примеров таблиц.
Прежде чем мы начнем перемещать данные о сотрудниках в сегменты, убедитесь, что они состоят из имен столбцов, таких как first_name, job_id, отдел, зарплата и страна.
Здесь мы загружаем данные в образец корзины из таблицы сотрудников.
Шаг 3) Отображение 4 сегментов, созданных на шаге 1
Из приведенного выше снимка экрана видно, что данные из таблицы сотрудников переносятся в 4 сегмента, созданных на шаге 1.