Увод у групу за кошнице
Групирај према, како му име каже, груписаће запис који задовољава одређене критеријуме. У овом ћемо чланку погледати групу ХИВЕ. У наслијеђеним РДБМС-овима као што су МиСКЛ, СКЛ итд., Група је једна од најстаријих клаузула које се користе. Сада је пронашло своје место на сличан начин у датотечним базама података које познате под називом ХИВЕ.
Знамо да је кошница надмашила многе наслеђене РДБМС-ове у управљању огромним подацима, а да ниједан новац није потрошен на добављаче на одржавање база података и сервера. Само требамо конфигурирати ХДФС за обраду кошница. Генерално, прелазимо на табеле јер крајњи корисник може интерпретирати из своје структуре и може се упитати како ће датотеке бити неспретне за њих. Али то смо морали да платимо добављачима да дају сервере и одржавају наше податке у формату табела. Дакле, кошница пружа економичан механизам где користи предности система заснованих на датотекама (начин на који кошница чува своје податке), као и табела (структура таблице за крајње кориснике на које се може распитати).
Група од
Групирајте помоћу дефинисаних ступаца из табеле Хиве да бисте груписали податке. Узмите у обзир да имате табелу са подацима пописа из сваког града свих држава у којима су име града и име државе један од ступаца. Сада у упиту, ако групирамо по државама, сви подаци из различитих градова одређене државе ће се груписати и један лако може да визуализује податке сада пре примене групе према.
Синтакса групе кошница
Општа синтакса групе према клаузули је као испод:
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;
Овде се одељење односи на један од стубова табеле о факултетима који се налазе у универзитетској бази података и његова вредност је различита у одељењима као што су уметност, математика, инжењерство, итд. Сада погледајте неки пример за демонстрирање групе.
Направио сам пример табеле децк_оф_цардс да демонстрирам групу. Његова израда табеле за креирање је следећа:
одозго можете видети да има три низа колона у боји, одели и пипу. Допусти ми да напишем упит да бих груписао податке по њиховој боји и бројао их.
select color, count(*) from deck_of_cards group by color;
Хиве у основи узима горњи упит да би га претворио у програм за смањење мапа генерисањем одговарајућег јава кода и јар датотеке, а затим извршио. Овај процес може трајати мало времена, али дефинитивно може поднијети велике податке у односу на традиционалне РДБМС. Погледајте снимак екрана испод са детаљним дневником за извршавање горњег упита.
можете видети да је ЦРНИ 26, а ЦРВЕНИ 26.
сада да применимо груписање на два ступца (боја и одијело и добивање броја група) и видимо резултат у наставку.
Select color, suit, count(*) from deck_of_cards group by color, suit
У основи, постоје четири различите групе изнад Цлуб-а, Спаде које имају црну боју и Дијамантну и срце које су црвено обојене.
Склапање резултата из групе према случају у другу табелу
И кошница као и било који други РДБМС пружа могућност уметања података креирањем израза табеле. Погледајмо похрањивање резултата из одабраног израза помоћу групе у другу табелу. Дозволите ми да употребим горњи упит где сам користио два ступца у групи.
create table cards_group_by
as
select color, suit, count(*) from deck_of_cards
group by color, suit;
сада да претражимо на креираној табели да видимо и потврдимо податке.
Сада ограничимо резултат групе употребом клаузуле. Као што је приказано у генеричкој синтакси, можемо применити ограничење на групу, користећи власништво. Овде користим табелу ордсер_итемс и њена структура је следећа из описне изјаве.
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;
из резултата можете видети снимку заслона да имамо записе само са вредности 5_ред_редем_ордер_ид.
Групирајте заједно са изјавом случаја
Сада ћемо погледати мало сложене упите који укључују изјаве ЦАСЕ с групом од стране. Применићемо ово на табелу ордер_итемс. Ниже ћемо видети да можемо категорисати неограничене ступце на које не можемо директно применити групу клаузулом.
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;
пустимо га у кошницу ради резултата
Закључак - Група за кошнице
тако да можемо видети да смо групирали_редем_субтотал у четири различите категорије (ако имате на уму да је редослед_итем_субтотал колона која се не сабире и директна група се на њу не може применити), а ми смо их груписали и добили и њихове бројеве вриједности које задовољавају распон дефиниран у одабраном изразу. Овде је једноставно правило ако је ступац несагрегирајући и наш селективни израз је сложен, али шта год било у одабраном изразу који би такође требало да буде присутан у групи изразом клаузуле. Дакле, видели смо како се позната група клаузула РДБМС такође може применити на кошницу без икаквих ограничења. Може се применити на једноставне одабране изразе. Обједините и филтрирајте изразе, придружите изразе и сложене ЦАСЕ изразе.
Препоручени чланци
Ово је водич за Хиве Гроуп Би. Овде смо расправљали о групи према, синтакси, примерима групе кошница према различитим условима и примени. Такође можете погледати следеће чланке да бисте сазнали више -
- Придружује се кошници
- Шта је кошница?
- Архитектура кошница
- Функција кошнице
- Наредба кошнице
- Инсталација кошница
- Топ 6 врста придруживања у МиСКЛ-у са примерима