Вступ до групи вуликів за

Group By, як випливає з назви, вона згрупує запис, який відповідає певним критеріям. У цій статті ми розглянемо групу HIVE. У застарілих RDBMS, таких як MySQL, SQL тощо, група by - це одна з найдавніших пропозицій, яка використовується. Тепер він знайшов своє місце аналогічним чином у файлосховищі, відомому як HIVE.

Ми знаємо, що вулик перевершив багато застарілих RDBMS в обробці величезних даних, не витрачаючи ні копійки на постачальників на підтримку баз даних і серверів. Нам просто потрібно налаштувати HDFS для обробки вулика. Як правило, ми переходимо до таблиць, оскільки кінцевий користувач може інтерпретувати зі своєї структури і може запитувати, як файли будуть для них незграбними. Але нам довелося це зробити, заплативши постачальникам надавати сервери та підтримувати наші дані у форматі таблиць. Таким чином, Hive забезпечує економічно ефективний механізм, коли він використовує переваги файлових систем (спосіб, у яких вулик зберігає свої дані), а також таблиць (структура таблиці для запиту кінцевих користувачів).

Групувати за

Групувати за допомогою визначених стовпців таблиці Hive для групування даних. Скажімо, врахуйте, що у вас є таблиця з даними перепису кожного міста всіх штатів, де назва міста та назва штату є одним із стовпців. Тепер у запиті, якщо ми групуємо по штатах, то всі дані з різних міст певного штату будуть згруповані разом, і можна легко візуалізувати дані краще, перш ніж застосувати групу способу.

Синтаксис вуликової групи за

Загальний синтаксис групи за пунктом наведений нижче:

SELECT (ALL | DISTINCT) select_expr, select_expr, …
FROM table_reference
(WHERE where_condition) (GROUP BY col_list) (HAVING having_condition) (ORDER BY col_list)) (LIMIT number);

або для більш простих запитів,

from Group By

Select department, count(*) from the university.college Group By department;

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

Я створив зразок таблиці deck_of_cards, щоб продемонструвати групу. Її оператор створення таблиці складається наступним чином:

видно зверху, що в ньому є три колонки з кольором, костюмом та піп. Дозвольте написати запит, щоб згрупувати дані за їх кольором та отримати його кількість.

select color, count(*) from deck_of_cards group by color;

В основному Hive займає вищезазначений запит, щоб перетворити його на програму зменшення карти, генеруючи відповідний код Java та jar-файл, а потім виконує. Цей процес може зайняти трохи часу, але він, безумовно, може обробляти великі дані порівняно з традиційними RDBMS. Дивіться скріншот нижче із детальним журналом для виконання вищезазначеного запиту.

ви можете бачити, що ЧЕРНИЙ - 26, а ЧЕРВИН - 26.

Тепер давайте застосуємо групування по двох стовпцях (колір та костюм та кількість груп) і подивимось результат нижче.

Select color, suit, count(*) from deck_of_cards group by color, suit

В основному, над Клубом є чотири окремі групи, які мають чорний колір і Діамант, а серце - червоне.

Зберігання результату від групи за причин в іншій таблиці

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

create table cards_group_by
as
select color, suit, count(*) from deck_of_cards
group by color, suit;

Тепер давайте запитаємо на створену таблицю, щоб побачити та перевірити дані.

Тепер обмежимо результат групи, використовуючи клаузуальне слово. Як показано в загальному синтаксисі, ми можемо застосувати обмеження до групи, використовуючи "has". Тут я використовую таблицю ordser_items, і її структура така, як випливає з оператора опису.

hive (retail_db_ali)> describe order_items;
OK
order_item_id int
order_item_order_id int
order_item_product_id int
order_item_quantity tinyint
order_item_subtotal float
order_item_product_price float
Time taken: 0.387 seconds, Fetched: 6 row(s)

select order_item_id, order_item_order_id from order_items group by order_item_id, order_item_order_id having order_item_order_id=5;

ви можете побачити з результату скріншот, що у нас є записи лише зі значенням order_item_order_id 5.

Групуйте разом із заявою справи

Тепер розглянемо трохи складні запити, пов’язані з операторами CASE з групою. Ми застосуємо це до таблиці order_items. Нижче ми побачимо, що ми можемо класифікувати колони неагрегування, до яких ми не можемо застосувати групу за допомогою пункту безпосередньо.

Select
case
when order_item_subtotal <=200 then "less_profit"
when order_item_subtotal <=300 then "avg_prof"
when order_item_subtotal<=500 then "good_prof"
when order_item_subtotal<=550 then "max_profit"
else 'corsed_treshold'
end
as order_profits,
count(*) from order_items
group by
case
when order_item_subtotal <=200 then "less_profit"
when order_item_subtotal <=300 then "avg_prof"
when order_item_subtotal<=500 then "good_prof"
when order_item_subtotal<=550 then "max_profit"
else 'corsed_treshold'
end;

давайте виконаємо це у вулику для отримання результатів

Висновок - Група вуликів за

тож ми можемо побачити, що ми згрупували order_item_subtotal у чотири різні категорії (якщо зауважити, що order_item_subtotal є стовпчиком, що не агрегує, і пряма група не може бути застосована до нього), і ми згрупували їх разом і отримали їхні підрахунки для значення, що задовольняють діапазон, визначений у виразі вибору. Тут просте правило, якщо стовпець неагрегує, а наш виразний вираз складний, то що б там не було у виразному виразі, який також повинен бути присутнім у групі за допомогою виразу. Таким чином, ми побачили, як відомий пункт пункту RDBMS групи також може застосовуватися до вулика без будь-яких обмежень. Його можна застосувати до простих виразних виразів. Агрегувати та фільтрувати вирази, об'єднувати вирази та складні вирази CASE.

Рекомендовані статті

Це посібник для Hive Group By. Тут ми обговорюємо групу, синтаксис, приклади групи вуликів за різними умовами та реалізацією. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Приєднується до вулика
  2. Що таке вулик?
  3. Архітектура вуликів
  4. Функція вулика
  5. Замовлення вуликів за
  6. Установка вулика
  7. Топ 6 типів приєднань до MySQL з прикладами

Категорія: