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

Зміст:

Anonim

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

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

Hive Partitions - це спосіб упорядкувати таблиці в розділи, розділивши таблиці на різні частини на основі ключів розділів.

Розділ корисний, коли в таблиці є одна або кілька клавіш розділу. Клавіші розділів є основними елементами для визначення способу збереження даних у таблиці.

Наприклад : -

"Клієнт, який має певні дані електронної комерції, які належать операціям в Індії, в яких кожен штат (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. Завантаження даних до таблиці розділів state_part
  6. Фактична обробка та формування таблиць розділів на основі стану як ключа розділу
  7. У сховищі HDFS буде 38 виходів розділів з іменем файлу як іменем стану. Ми перевіримо це на цьому кроці. На цьому кроці ми бачимо 38 виходів розділів у HDFS

Що таке відра?

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

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

Крок 1) Створення сегмента, як показано нижче.

З наведеного вище знімка екрана

  • Ми створюємо sample_bucket з іменами стовпців, такими як ім'я, ідентифікатор роботи, відділ, зарплата та країна
  • Ми створюємо тут 4 відра.
  • Як тільки дані завантажуються автоматично, розмістіть дані у 4 відра

Крок 2) Завантаження даних у сегмент зразка таблиці

Припускаючи, що "таблиця співробітників" вже створена в системі Hive. На цьому кроці ми побачимо завантаження даних із таблиці співробітників у відро зразків таблиці.

Перш ніж ми почнемо переміщувати дані співробітників у сегменти, переконайтеся, що вони складаються з назв стовпців, таких як ім’я, ім’я роботи, ідентифікатор, заробітна плата та країна.

Тут ми завантажуємо дані до зразка з таблиці співробітників.

Крок 3) Відображення 4 сегментів, створених на кроці 1

З наведеного вище скріншоту ми бачимо, що дані з таблиці співробітників переносяться у 4 сегменти, створені на кроці 1.