Uvod v Skupino panj

Skupina By, kot že ime pove, bo združila zapis, ki izpolnjuje določene kriterije. V tem članku si bomo skupino ogledali HIVE. V zapuščenih RDBMS, kot so MySQL, SQL itd., Je skupina po enem najstarejših klavzul, ki se uporabljajo. Zdaj je našel svoje mesto na podoben način v datotečnem shranjevanju podatkov, ki ga poznamo pod imenom HIVE.

Vemo, da je panj presegel številne zapuščene RDBMS pri obdelavi ogromnih podatkov, ne da bi za prodajo podatkovnih baz in strežnikov porabil peni. Moramo samo konfigurirati HDFS za ravnanje s panjom. Na splošno se premaknemo v tabele, ker si lahko končni uporabnik razlaga iz svoje strukture in se lahko pozanima, saj bodo datoteke zanje nerodne. To pa smo morali storiti tako, da smo prodajalcem plačali, da nam priskrbijo strežnike in vzdržujejo naše podatke v obliki tabel. Tako Hive zagotavlja stroškovno učinkovit mehanizem, kjer izkorišča prednosti sistemov, ki temeljijo na datotekah (način, kako panj shranjuje svoje podatke), pa tudi tabel (struktura tabel, ki jih končni uporabniki lahko poizvedujejo).

Skupina avtorja

Združite po določenih stolpcih iz tabele Hive za združevanje podatkov. Velja, upoštevajte, da imate tabelo s podatki o popisu iz vsakega mesta vseh držav, kjer je ime mesta in ime države eden od stolpcev. Zdaj v poizvedbi, če se združujemo po državah, bodo vsi podatki iz različnih mest v določeni državi združeni in enostavneje lahko podatke lažje predstavimo, preden je bila uporabljena skupina.

Skladnja panj skupine

Splošna skladnja skupine po klavzuli je spodaj:

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

ali za enostavnejše poizvedbe,

from Group By

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

Tukaj se oddelek nanaša na enega od stolpcev tabele o univerzah, ki je prisoten v univerzitetni bazi podatkov, njegova vrednost pa je različna v oddelkih, kot so umetnost, matematika, inženirstvo, itd. Zdaj si oglejmo nekaj primerov, s katerimi lahko predstavimo skupino.

Ustvaril sem vzorčno tabelo deck_of_cards za prikaz skupine s strani. Njegova izjava o tabeli ustvarjanja je naslednja:

zgoraj lahko vidite, da ima tri stolpce barvo, obleko in pipo. Naj napišem poizvedbo, da podatke razvrstim po barvi in ​​dobim število.

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

Hive v osnovi prevzame zgornjo poizvedbo, da jo pretvori v program za zmanjšanje zemljevidov, tako da ustvari ustrezno javo kodo in jar datoteko in nato izvede. Ta postopek lahko traja nekaj časa, vendar zagotovo lahko obravnava velike podatke v primerjavi s tradicionalnimi RDBMS. Oglejte si spodnji posnetek zaslona s podrobnim dnevnikom za izvajanje zgornje poizvedbe.

vidite, da je ČRNI 26, RDEČI pa 26.

zdaj uporabimo razvrstitev v dva stolpca (barva in obleka ter število skupin) in rezultat si oglejte spodaj.

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

V bistvu, nad Clubom, Spade, obstajajo štiri različne skupine, ki imajo barvo črno in Diamond in srce, ki so rdeče barve.

Shranjevanje rezultata iz skupine po vzroku v drugo tabelo

Tudi Hive, tako kot kateri koli drug RDBMS, ponuja funkcijo vstavljanja podatkov z izdelavo izjav tabele. Poglejmo, kako shraniti rezultat iz izbranega izraza s pomočjo skupine v drugo tabelo. Naj sama uporabim zgornjo poizvedbo, kjer sem uporabil dva stolpca v skupini.

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

zdaj pa poizvejmo po ustvarjeni tabeli, da vidimo in preverimo podatke.

Zdaj omejimo rezultat skupine z uporabo klavzule. Kot je razvidno iz generične skladnje, lahko omejitev uporabimo za skupino, tako da uporabimo. Tukaj uporabljam tabelo ordser_items in njena struktura je naslednja iz stavka opis.

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;

iz rezultata lahko vidite posnetek zaslona, ​​da imamo zapise samo z vrednostjo 5 vrstnega reda_item_order_id.

Združite skupaj z izjavo o zadevi

Zdaj si oglejmo nekoliko zapletene poizvedbe, ki vključujejo izjave CASE s skupino. To bomo uporabili v tabeli order_items. Spodaj bomo videli, da lahko razvrstimo stolpce, ki niso združljivi, na katere skupine ne moremo neposredno uporabiti s klavzulo.

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;

dajmo ga izvesti v panju za rezultate

Sklep - Skupina panj z

zato lahko vidimo, da smo order_item_subtotal razvrstili v štiri različne kategorije (če upoštevate, da je order_item_subtotal neumetniški stolpec in neposredna skupina, ki je ni mogoče uporabiti nanjo), in smo jih združili v skupine in dobili tudi njihovo število vrednosti, ki izpolnjujejo obseg, kot je opredeljen v izbirnem izrazu. Tu je preprosto pravilo, če stolpec ni zbrano in je naš izbirni izraz zapleten, ne glede na vse, kar je v izbranem izrazu, ki bi moral biti tudi prisoten v skupini z izrazom. Tako smo videli, kako lahko znano skupino klavzul RDBMS tudi na panj uporabimo brez omejitev. Uporablja se lahko za preproste izbrane izraze. Zbiranje in filtriranje izrazov, pridruževanje izrazov in zapletenih izrazov CASE.

Priporočeni članki

To je vodnik za Hive Group By. Tukaj razpravljamo o skupini po sintaksi, primerih skupine panjev z različnimi pogoji in izvedbo. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Pridružuje se v Pive
  2. Kaj je panj?
  3. Arhitektura panj
  4. Funkcija panj
  5. Naročilo za panj
  6. Namestitev panj
  7. Prvih 6 vrst združitev v MySQL s primeri

Kategorija: