Въведение в групата на кошера от

Група By, както подсказва името, тя ще групира записа, който отговаря на определени критерии. В тази статия ще разгледаме групата от HIVE. В наследените RDBMS като MySQL, SQL и т.н., group 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

По принцип има четири различни групи над Club, Spade, които имат цвят черно, Diamond и сърце, които са в цвят червено.

Съхраняване на резултата от група по кауза в друга таблица

Hive също като всеки друг RDBMS предоставя функцията за вмъкване на данни с създаване на оператори в таблица. Нека разгледаме съхраняването на резултата от селектиран израз с помощта на група в в друга таблица. Позволете ми да използвам горното запитване, където съм използвал две колони в група.

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

сега нека да попитаме за създадената таблица, за да видим и утвърдим данните.

Сега нека ограничим резултата от групата, като използваме клауза. Както е показано в родовия синтаксис, можем да приложим ограничение към групата, като използваме has. Тук използвам таблицата ordser_items и нейната структура е следната от оператора description.

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 с примери

Категория: