Úvod do skupiny Hive

Group By, ako už názov napovedá, zoskupí záznamy, ktoré spĺňajú určité kritériá. V tomto článku sa na skupinu pozrieme HIVE. V starších RDBMS, ako sú MySQL, SQL atď., Je skupina podľa jednou z najstarších klauzúl, ktoré sa používajú. Teraz si našlo svoje miesto podobným spôsobom v ukladaní dát na báze súborov, ktoré je známe ako HIVE.

Vieme, že Úľ prekonal mnoho starých RDBMS pri manipulácii s obrovskými údajmi bez toho, aby sa na údržbu databáz a serverov vynaložilo centov na dodávateľov. Potrebujeme iba nakonfigurovať systém HDFS tak, aby zvládol úľ. Všeobecne sa presúvame do tabuliek, pretože koncový používateľ môže interpretovať zo svojej štruktúry a môže sa pýtať, pretože súbory pre ne budú nemotorné. Museli sme to však urobiť tak, že platili predajcovia za poskytovanie serverov a udržiavanie našich údajov vo formáte tabuliek. Úľ teda poskytuje nákladovo efektívny mechanizmus, kde využíva výhody systémov založených na súboroch (spôsob, akým úľ ukladá svoje údaje), ako aj tabuľky (štruktúra tabuľky, na ktorú môžu koncoví používatelia zadávať otázky).

Zoskupiť podľa

Zoskupiť údaje pomocou definovaných stĺpcov z tabuľky Úľa. Zvážte napríklad, že máte tabuľku s údajmi sčítania ľudu zo všetkých miest všetkých štátov, v ktorých je názov mesta a názov štátu jedným zo stĺpcov. Teraz, v dotaze, ak budeme zoskupovať podľa štátov, všetky údaje z rôznych miest konkrétneho štátu budú zoskupené a jeden môže ľahko vizualizovať údaje lepšie teraz predtým, ako bola aplikovaná skupina podľa.

Syntax skupiny Hive

Všeobecná syntax skupiny podľa odseku je takáto:

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);

alebo pre jednoduchšie otázky,

from Group By

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

Oddelenie tu odkazuje na jeden zo stĺpcov vysokoškolských tabuliek, ktoré sa nachádzajú v univerzitnej databáze, a jeho hodnota je rôzna na katedrách ako je umenie, matematika, strojárstvo atď.

Vytvoril som ukážkovú tabuľku deck_of_cards, aby som demonštroval túto skupinu. Jeho príkaz na vytvorenie tabuľky je nasledujúci:

vidíte zhora, že má tri stĺpce reťazcov farbu, oblek a pip. Dovoľte mi napísať dotaz na zoskupenie údajov podľa farby a získanie jej počtu.

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

Úľ v zásade vezme vyššie uvedený dotaz, aby ho previedol do programu na zníženie mapy vygenerovaním zodpovedajúceho kódu java a súboru jar a potom vykonal. Tento proces môže chvíľu trvať, ale v porovnaní s tradičnými RDBMS určite zvládne veľké údaje. Na snímke nižšie s podrobným protokolom na vykonanie vyššie uvedeného dotazu.

môžete vidieť, že BLACK je 26 a ČERVENÁ je 26.

teraz použijme zoskupenie do dvoch stĺpcov (farba a oblek a získanie počtu skupín) a pozrite si výsledok nižšie.

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

V zásade sú nad klubom Spade štyri odlišné skupiny, ktoré majú čiernu farbu a diamant a srdce červené.

Uloženie výsledku zo skupiny podľa príčiny v inej tabuľke

Úľ, rovnako ako akýkoľvek iný RDBMS, ponúka funkciu vkladania údajov pomocou príkazov na vytváranie tabuliek. Pozrime sa na uloženie výsledku z vybraného výrazu pomocou skupiny do inej tabuľky. Dovoľte mi použiť vyššie uvedený dotaz, ak som použil dva stĺpce v skupine podľa.

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

Teraz sa opýtajte na vytvorenú tabuľku, aby sme mohli vidieť a overiť údaje.

Teraz obmedzme výsledok skupiny použitím klauzuly. Ako je uvedené vo všeobecnej syntaxi, môžeme na skupinu uplatniť obmedzenia pomocou. Tu používam tabuľku ordser_items a jej štruktúra je nasledovná z príkazu 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;

z výsledku môžete vidieť snímku obrazovky, ktorú máme, iba s hodnotou order_item_order_id 5.

Zoskupte spolu s vyhlásením o prípade

Pozrime sa teraz na zložité otázky týkajúce sa príkazov CASE so skupinou. Použijeme to na tabuľku order_items. Uvidíme nižšie, že môžeme kategorizovať neagregujúce stĺpce, na ktoré nemôžeme priamo aplikovať skupinu podľa klauzúl.

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;

vykonajme to v úli, aby sme dosiahli výsledky

Záver - Úľová skupina

takže vidíme, že sme usporiadali order_item_subtotal do štyroch rôznych kategórií (ak si všimnete, že order_item_subtotal je neagregačný stĺpec a priama skupina sa naň nemôže použiť) a my sme ich zoskupili spolu a ich počet sme za hodnoty, ktoré spĺňajú rozsah definovaný vo výberovom výraze. Tu je jednoduché pravidlo, ak stĺpec neagreguje a náš výber výrazu je zložitý, potom všetko, čo existuje vo výraze výberu, by malo byť tiež prítomné v skupine výrazom klauzula. Videli sme teda, ako môže byť slávna skupina klauzúl RDBMS, ktorá sa dá použiť, aplikovaná aj na úľ bez akýchkoľvek obmedzení. Môže sa použiť na jednoduché vybrané výrazy. Agregovať a filtrovať výrazy, spojiť výrazy a tiež komplexné výrazy CASE.

Odporúčané články

Toto je príručka spoločnosti Hive Group By. Tu diskutujeme o skupine podľa syntaxe, príkladov skupiny úľov podľa rôznych podmienok a implementácie. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Pripojí sa v Úli
  2. Čo je Úľ?
  3. Architektúra úľa
  4. Funkcia úľa
  5. Usporiadať úľ podľa
  6. Inštalácia úľa
  7. Top 6 typov spojení v MySQL s príkladmi

Kategórie: