Таблиці, розділи та сегменти - це частини моделювання даних вуликів.
Що таке розділи?
Hive Partitions - це спосіб упорядкувати таблиці в розділи, розділивши таблиці на різні частини на основі ключів розділів.
Розділ корисний, коли в таблиці є одна або кілька клавіш розділу. Клавіші розділів є основними елементами для визначення способу збереження даних у таблиці.
Наприклад : -
"Клієнт, який має певні дані електронної комерції, які належать операціям в Індії, в яких кожен штат (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 іменами стовпців, таких як штат, округ та зарахування
- Завантаження даних у таблицю всіх станів
- Створення таблиці розділів із станом як ключем розділу
- На цьому кроці встановлення режиму розділу як несуворого (цей режим активує режим динамічного розділу)
- Завантаження даних до таблиці розділів state_part
- Фактична обробка та формування таблиць розділів на основі стану як ключа розділу
- У сховищі HDFS буде 38 виходів розділів з іменем файлу як іменем стану. Ми перевіримо це на цьому кроці. На цьому кроці ми бачимо 38 виходів розділів у HDFS
Що таке відра?
Відра у вулику використовується для розділення даних таблиць вуликів на кілька файлів або каталогів. він використовується для ефективних запитів.
- Дані, тобто наявні в цих розділах, можна розділити далі на сегменти
- Розподіл виконується на основі хешу певних стовпців, які ми вибрали в таблиці.
- Сегменти використовують якусь форму алгоритму хешування на задньому кінці, щоб прочитати кожен запис і помістити його в сегменти
- У Hive ми маємо активувати сегменти, використовуючи set.hive.enforce.bucketing = true;
Крок 1) Створення сегмента, як показано нижче.
З наведеного вище знімка екрана
- Ми створюємо sample_bucket з іменами стовпців, такими як ім'я, ідентифікатор роботи, відділ, зарплата та країна
- Ми створюємо тут 4 відра.
- Як тільки дані завантажуються автоматично, розмістіть дані у 4 відра
Крок 2) Завантаження даних у сегмент зразка таблиці
Припускаючи, що "таблиця співробітників" вже створена в системі Hive. На цьому кроці ми побачимо завантаження даних із таблиці співробітників у відро зразків таблиці.
Перш ніж ми почнемо переміщувати дані співробітників у сегменти, переконайтеся, що вони складаються з назв стовпців, таких як ім’я, ім’я роботи, ідентифікатор, заробітна плата та країна.
Тут ми завантажуємо дані до зразка з таблиці співробітників.
Крок 3) Відображення 4 сегментів, створених на кроці 1
З наведеного вище скріншоту ми бачимо, що дані з таблиці співробітників переносяться у 4 сегменти, створені на кроці 1.