Учебники

6) Перегородки и ковши

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

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

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

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

Например :

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

Пример кода для разделов

  1. Создание таблицы всех состояний
create table all states(state string, District string,Enrolments string)

row format delimited

fields 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 выходных разделов с именем файла в качестве имени состояния. Мы проверим это на этом шаге

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

Операции с данными в Hive

Операции с данными в Hive

Операции с данными в Hive

Операции с данными в Hive

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

  1. Создание таблицы всех штатов с тремя именами столбцов, такими как штат, район и регистрация
  2. Загрузка данных в таблицу всех состояний
  3. Создание таблицы разделов с указанием состояния в качестве ключа раздела
  4. На этом шаге установка режима раздела как нестрогого (этот режим активирует режим динамического раздела)
  5. Загрузка данных в раздел tablestate_part
  6. Фактическая обработка и формирование таблиц разделов на основе состояния в качестве ключа раздела
  7. В хранилище HDFS будет 38 выходных разделов с именем файла в качестве имени состояния. Мы проверим это на этом шаге. На этом этапе мы видим 38 выходных разделов в HDFS

Что такое ковши?

Buckets in hive используется для разделения табличных данных улья на несколько файлов или каталогов. он используется для эффективного запроса.

  • Данные, т.е. присутствующие в этих разделах, могут быть разделены далее на сегменты
  • Деление выполняется на основе хэша определенных столбцов, которые мы выбрали в таблице.
  • Сегменты используют некоторую форму алгоритма хеширования в конце, чтобы прочитать каждую запись и поместить ее в сегменты.
  • В Hive мы должны включить сегменты, используя set.hive.enforce.bucketing = true;

Шаг 1) Создание Bucket, как показано ниже.

Операции с данными в Hive

Из приведенного выше снимка экрана

  • Мы создаем sample_bucket с именами столбцов, такими как first_name, job_id, отдел, зарплата и страна
  • Мы создаем 4 ведра здесь.
  • Как только данные загружаются автоматически, поместите данные в 4 корзины

Шаг 2) Загрузка данных в образец таблицы

Предполагая, что «Таблица сотрудников» уже создана в системе Hive. На этом шаге мы увидим загрузку таблицы «Данные из сотрудников» в корзину примеров таблиц.

Прежде чем мы начнем перемещать данные о сотрудниках в сегменты, убедитесь, что они состоят из имен столбцов, таких как first_name, job_id, отдел, зарплата и страна.

Здесь мы загружаем данные в образец корзины из таблицы сотрудников.

Операции с данными в Hive

Шаг 3) Отображение 4 сегментов, созданных на шаге 1

Операции с данными в Hive

Из приведенного выше снимка экрана видно, что данные из таблицы сотрудников переносятся в 4 сегмента, созданных на шаге 1.