Перегородки вулика та відра з прикладом

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

Що таке розділи?

Hive Partitions — це спосіб організації таблиць у розділи шляхом поділу таблиць на різні частини на основі ключів розділів.

Секція корисна, коли таблиця має один або кілька ключів секції. Ключі розділів є основними елементами для визначення того, як дані зберігаються в таблиці.

Наприклад: -

«Клієнт, який має деякі дані електронної комерції, які належать до операцій в Індії, у яких зазначені операції в кожному штаті (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 вихідних розділів із іменем файлу як іменем стану. Ми перевіримо це на цьому кроці

Наступні знімки екрана покажуть вам виконання вищезгаданого коду

Перегородки вулика

Перегородки вулика

Перегородки вулика

Перегородки вулика

З наведеного вище коду ми робимо наступні речі

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

Що таке Buckets?

Відра у вулику використовуються для розділення даних таблиці вулика на кілька файлів або каталогів. він використовується для ефективного запиту.

  • Дані, тобто присутні в цих розділах, можна далі розділити на сегменти
  • Поділ виконується на основі хешу окремих стовпців, які ми вибрали в таблиці.
  • Сегменти використовують певну форму алгоритму хешування на задній частині для читання кожного запису та розміщення його у відрах
  • У 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.