Упити за кошнице: Поредај по, групиши по, дистрибуирај по групама по примерима

Преглед садржаја:

Anonim

Хиве пружа језик упита типа СКЛ за ЕТЛ сврху поврх система датотека Хадооп.

Хиве Куери лангуаге (ХивеКЛ) пружа окружење типа СКЛ у Хиве-у за рад са табелама, базама података, упитима.

Можемо имати различит тип клаузула повезаних са Хиве-ом за обављање различитих врста манипулација подацима и постављања упита. За бољу повезаност са различитим чворовима изван околине. ХИВЕ такође пружа ЈДБЦ повезивање.

Упити за кошнице пружају следеће функције:

  • Моделирање података, попут стварања база података, табела итд.
  • ЕТЛ функционалности као што су издвајање, трансформација и учитавање података у табеле
  • Придружује се спајању различитих табела података
  • Корисничке прилагођене скрипте за једноставност кода
  • Бржи алат за постављање упита на врху Хадооп-а

У овом чланку ћете научити-

  • Поредај по упиту
  • Групирај према упиту
  • Сортирај по
  • Цлустер Би
  • Дистрибуте Би

Израда табеле у кошници

Пре него што започнемо са нашом главном темом овог водича, прво ћемо створити табелу која ће га користити као референце за следећи водич.

Овде у овом упутству креираћемо табелу "запослени_гуру" са 6 колона.

Из горњег снимка екрана,

  1. Израђујемо табелу „запослени_гуру“ са 6 вредности у колони као што су Ид, Име, Старост, Адреса, Плата, Одељење, која припада запосленима присутним у организацији „гуру“.
  2. Овде у овом кораку учитавамо податке у табелу запослени_гуру. Подаци које ћемо учитати биће смештени у датотеку Емплоиеес.ткт

Поредај по упиту:

Синтакса ОРДЕР БИ у ХивеКЛ слична је синтакси ОРДЕР БИ у СКЛ језику.

Поредак по је клаузула коју користимо са наредбом „СЕЛЕЦТ“ у упитима Хиве, која помаже у сортирању података. Клаузула Редослед користи ступце на таблицама Хиве за сортирање одређених вредности колона поменутих уз Редослед. За било које име колоне дефинишемо редослед клаузулом, упит ће одабрати и приказати резултате узлазним или силазним редоследом одређених вредности колона.

Ако је поменути редослед по пољу низ, тада ће се резултат приказати у лексикографском редоследу. Са задње стране мора се пренијети на један редуктор.

Из горњег снимка екрана можемо уочити следеће

  1. То је упит који се изводи на табели "запослени_гуру" са клаузулом ОРДЕР БИ са одељењем као што је дефинисано називом колоне ОРДЕР БИ.

    „Одељење“ је Стринг, тако да ће приказати резултате на основу лексикографског поретка.

  2. Ово је стварни излаз за упит. Ако га правилно посматрамо, можемо видети да приказује резултате на основу колоне Одељења као што су АДМИНИСТРАТУРА, Финансије и тако даље како би се могао извршити упит.

Упит:

SELECT * FROM employees_guru ORDER BY Department;

Групирај према упиту:

Клаузула по групама користи колоне на таблицама Хиве за груписање одређених вредности колона поменутих са групом по. За било које име колоне ми дефинишемо клаузулу „гроупби“, упит ће одабрати и приказати резултате груписањем одређених вредности колона.

На пример, на доњем снимку екрана приказаће се укупан број запослених присутних у сваком одељењу. Овде имамо „Одељење“ као групу по вредности.

Из горњег снимка екрана приметићемо следеће

  1. То је упит који се изводи на табели "запослени_гуру" са клаузулом ГРОУП БИ са одељењем као што је дефинисано називом колоне ГРОУП БИ.
  2. Резултат који се овде приказује је назив одељења, а запослени броје у различитим одељењима. Овде су сви запослени у одређеном одељењу груписани и приказани у резултатима. Дакле, резултат је назив одељења са укупним бројем запослених присутних у сваком одељењу.

Упит:

SELECT Department, count(*) FROM employees_guru GROUP BY Department;

Сортирај по:

Клаузула сортирања врши се на именима колона таблица Хиве за сортирање резултата. Можемо споменути ДЕСЦ за сортирање редоследа у опадајућем редоследу и АСЦ за растући редослед те врсте.

На овај начин сортирање ће сортирати редове пре додавања на редуктор. Увек сортирај по зависно од типова колона.

На пример, ако су типови колона нумерички, сортират ће се према нумеричком редослиједу ако су типови колона низовани, сортират ће се по лексикографском редослиједу.

Из горњег снимка екрана можемо уочити следеће:

  1. То је упит који се изводи у табели „запослени_гуру“ са клаузулом СОРТ БИ са „ид“ како дефинише СОРТ БИ име колоне. Користили смо кључну реч ДЕСЦ.
  2. Тако ће приказани излаз бити у падајућем редоследу од "ид".

Упит:

SELECT * from employees_guru SORT BY Id DESC;

Кластер Аутор:

Кластер се користи као алтернатива и за клаузуле Дистрибуте БИ и Сорт БИ у Хиве-КЛ.

Клаузула БИ клаузула која се користи на табелама присутним у Хиве. Хиве користи ступце у Кластеру тако да редове дистрибуира међу редукторима. Ступци БИ кластера прећи ће на више редуктора.

  • Осигурава редослед сортирања вредности присутних у више редуктора

На пример, клаузула Би клаузула поменута у имену колоне Ид табеле табела запослени_гуру. Излаз при извршавању овог упита даће резултате на више редуктора на задњем крају. Али као предњи крај, то је алтернативна клаузула за сортирање по и дистрибуцију по.

Ово је заправо задњи крај процеса када изводимо упит са сортирањем по, груписањем и кластерирањем у смислу оквира за смањење карте. Дакле, ако желимо да резултате сачувамо у више редуктора, идемо са Цлустер Би.

Из горњег снимка екрана добијамо следећа запажања:

  1. Упит је тај који изводи ЦЛУСТЕР БИ клаузулу на вредности поља Ид. Овде ће се добити сортирање вредности Ид.
  2. Приказује Ид и Имена присутна у сортирању гуру_емплоиеес пореданих по

Упит:

SELECT Id, Name from employees_guru CLUSTER BY Id;

Дистрибуте Би:

Дистрибуирајте БИ клаузулу која се користи на табелама присутним у Хиве-у. Хиве користи колоне у Дистрибуте би за дистрибуцију редова међу редукторима. Све колоне Дистрибуирај БИ ићи ће на исти редуктор.

  • Осигурава да сваки од Н редуктора добије опсеге колоне који се не преклапају
  • Не сортира излаз сваког редуктора

Из горњег снимка екрана можемо уочити следеће

  1. ДИСТРИБУТЕ БИ Клаузула која се изводи на Ид табеле "емполоиеес_гуру"
  2. Излаз приказује Ид, Име. На задњем крају ће ићи на исти редуктор

Упит:

SELECT Id, Name from employees_guru DISTRIBUTE BY Id;