Разделы улья и Ковши с примером

Содержание:

Anonim

Таблицы, разделы и корзины являются частями моделирования данных Hive.

Что такое разделы?

Разделы Hive - это способ организации таблиц в разделы путем разделения таблиц на разные части на основе ключей разделов.

Разделение полезно, когда в таблице есть один или несколько ключей разделения. Ключи разделения - это основные элементы для определения того, как данные хранятся в таблице.

Например : -

"У клиента есть некоторые данные электронной торговли, которые относятся к операциям в Индии, в которых операции каждого штата (38 штатов) упомянуты в целом. Если мы возьмем столбец состояния в качестве ключа раздела и выполним разделы для этих данных Индии в целом, мы сможем чтобы получить количество разделов (38 разделов), которое равно количеству штатов (38), присутствующих в Индии.Таким образом, что данные каждого состояния можно просматривать отдельно в таблицах разделов.

Пример фрагмента кода для разделов

  1. Создание таблицы всех состояний
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Загрузка данных в созданную таблицу всех состояний
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Создание таблицы разделов
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Для раздела мы должны установить это свойство

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Загрузка данных в таблицу разделов
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Фактическая обработка и формирование таблиц разделов на основе состояния как ключа раздела
  2. В хранилище HDFS будет 38 выходных разделов с именем файла в качестве имени состояния. Мы проверим это на этом этапе

Следующие снимки экрана покажут вам выполнение вышеупомянутого кода.

Из приведенного выше кода мы делаем следующие вещи

  1. Создание таблицы всех штатов с 3 именами столбцов, такими как штат, район и зачисление.
  2. Загрузка данных в таблицу всех состояний
  3. Создание таблицы разделов с состоянием в качестве ключа раздела
  4. На этом шаге установка режима раздела как нестрогого (этот режим активирует режим динамического раздела)
  5. Загрузка данных в таблицу разделов
  6. Фактическая обработка и формирование таблиц разделов на основе состояния как ключа раздела
  7. В хранилище 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.