Придруживање кошница & амп; Водич за СубКуери са примерима

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

Anonim

У овом упутству ћете научити-

  • Придружите упите
  • Различите врсте спајања
  • Подупити
  • Уграђивање прилагођених скрипти
  • УДФ-ови (функције које дефинише корисник)

Придружите упите:

Упити за придруживање могу се изводити на две табеле присутне у Хиве-у. За јасно разумевање концепата удруживања овде креирамо две табеле,

  • Сампле_јоинс (повезани са детаљима купаца)
  • Сампле_јоинс1 (У вези са детаљима поруџбина које раде запослени)

Корак 1) Израда табеле „сампле_јоинс“ са именима колона ИД, именом, узрастом, адресом и платом запослених

Корак 2) Учитавање и приказивање података

Са горњег снимка екрана

  1. Учитавање података у сампле_јоинс из Цустомерс.ткт
  2. Приказивање садржаја табеле сампле_јоинс

Корак 3) Израда табеле сампле_јоинс1 и учитавање, приказивање података

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

  1. Израда табеле сампле_јоинс1 са колонама Ордерид, Дате1, Ид, Амоунт
  2. Учитавање података у сампле_јоинс1 из ордерс.ткт
  3. Приказивање записа присутних у сампле_јоинс1

Крећући се напред видећемо различите типове спајања који се могу изводити на табелама које смо креирали, али пре тога морате узети у обзир следеће тачке за придруживања.

Неке тачке које треба обратити пажњу на Јоинс:

  • У придруживањима су дозвољена само придруживања равноправности
  • У исти упит може се спојити више од две табеле
  • ЛЕВО, ДЕСНО, ПУНО ВАЊСКО спајање постоји како би се обезбедила већа контрола над ОН клаузулом за коју не постоји подударање
  • Придруживања нису комутативна
  • Придруживања су асоцијација лево, без обзира да ли су ЛЕВА или ДЕСНА придруживања

Различите врсте спајања

Придруживања су 4 типа, ово су

  • Унутрашњи спој
  • Лево спољно придруживање
  • Право спољашње придруживање
  • Потпуно спољашње придруживање

Унутарње придруживање:

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

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

  1. Овде изводимо упит за придруживање помоћу кључне речи ЈОИН између табела сампле_јоинс и сампле_јоинс1 са подударним условом као (ц.Ид = о.Ид).
  2. Излаз који приказује уобичајене записе присутне у обе табеле провером стања наведеног у упиту

Упит:

SELECT c.Id, c.Name, c.Age, o.Amount FROM sample_joins c JOIN sample_joins1 o ON(c.Id=o.Id);

Лефт Оутер Јоин:

  • Језик упита за кошнице ЛЕФТ ОУТЕР ЈОИН враћа све редове из леве табеле иако у десној табели нема подударања
  • Ако се клаузула ОН подудара са нула записа у десној табели, обједињавања и даље враћају резултат у резултату са НУЛЛ у свакој колони из десне табеле

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

  1. Овде изводимо упит за придруживање помоћу кључне речи „ЛЕФТ ОУТЕР ЈОИН“ између табела сампле_јоинс и сампле_јоинс1 са подударним условом као (ц.Ид = о.Ид).

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

  2. Излаз који приказује уобичајене записе присутне у обе табеле провером стања наведеног у упиту.

    НУЛЛ вредности у горњем излазу су колоне без вредности из десне табеле која је сампле_јоинс1

Упит:

SELECT c.Id, c.Name, o.Amount, o.Date1 FROM sample_joins c LEFT OUTER JOIN sample_joins1 o ON(c.Id=o.Id)

Десно спољно придруживање:

  • Језик упита за кошнице РИГХТ ОУТЕР ЈОИН враћа све редове из десне табеле иако у левој табели нема подударања
  • Ако се клаузула ОН подудара са нула записа у левој табели, обједињавања и даље враћају резултат у резултату са НУЛЛ у свакој колони из леве табеле
  • ДЕСНА придруживања увек враћају записе из десне табеле и подударне записе из леве табеле. Ако лева табела нема вредности које одговарају колони, она ће вратити НУЛЛ вредности на том месту.

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

  1. Овде изводимо упит за придруживање помоћу кључне речи „РИГХТ ОУТЕР ЈОИН“ између табела сампле_јоинс и сампле_јоинс1 са подударним условом као (ц.Ид = о.Ид).
  2. Излаз који приказује уобичајене записе присутне у обе табеле провером стања наведеног у упиту

Упит :

 SELECT c.Id, c.Name, o.Amount, o.Date1 FROM sample_joins c RIGHT OUTER JOIN sample_joins1 o ON(c.Id=o.Id)

Потпуно спољашње спајање:

Комбинује записе и табела сампле_јоинс и сампле_јоинс1 на основу услова ЈОИН датог у упиту.

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

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

  1. Овде изводимо упит за придруживање помоћу кључне речи „ФУЛЛ ОУТЕР ЈОИН“ између табела сампле_јоинс и сампле_јоинс1 са подударним условом као (ц.Ид = о.Ид).
  2. Излаз који приказује све записе присутне у обе табеле провером стања наведеног у упиту. Нулл вредности у излазу овде означавају вредности које недостају из колона обе табеле.

Упит

SELECT c.Id, c.Name, o.Amount, o.Date1 FROM sample_joins c FULL OUTER JOIN sample_joins1 o ON(c.Id=o.Id)

Подупити:

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

Подупити се могу класификовати у две врсте

  • Потупити у клаузули ФРОМ
  • Потупити у клаузули ВХЕРЕ

Када користити:

  • Да бисте добили одређену вредност комбиновану из две вредности колона из различитих табела
  • Зависност вредности једне табеле од осталих табела
  • Упоредна провера вредности једне колоне из других табела

Синтакса:

Subquery in FROM clauseSELECT From (SubQuery) Subquery in WHERE clauseSELECT  FromWHERE col1 IN (SubQuery);

Пример:

SELECT col1 FROM (SELECT a+b AS col1 FROM t1) t2

Овде су т1 и т2 имена табела. Обојени је Подупит изведен на табели т1. Овде су а и б колоне које се додају у подупит и додељују цол1. Цол1 је вредност колоне присутна у главној табели. Ова колона „цол1“ присутна у подупиту је еквивалентна упиту главне табеле у колони цол1.

Уграђивање прилагођених скрипти:

Хиве пружа могућност писања корисничких скрипти за потребе клијента. Корисници могу да напишу сопствену мапу и смање скрипте за потребе. Они се називају уграђеним прилагођеним скриптама. Логика кодирања је дефинисана у прилагођеним скриптама и ту скрипту можемо користити у ЕТЛ времену.

Када одабрати уграђене скрипте:

  • У специфичним захтевима клијента програмери морају да пишу и примењују скрипте у Хиве-у
  • Тамо где уграђене функције Хиве-а неће функционисати у складу са одређеним захтевима домена

За ово у Хиве-у користи клаузулу ТРАНСФОРМ за уграђивање скрипти мапе и редуктора.

У овом уграђеном прилагођеном скрипту, морамо да се придржавамо следећих тачака

  • Колоне ће се трансформисати у стринг и раздвојити ТАБ-ом пре него што их дају корисничкој скрипти
  • Стандардни излаз корисничке скрипте третират ће се као ступци низа одвојени ТАБ-ом

Пример уграђене скрипте,

FROM (FROM pv_usersMAP pv_users.userid, pv_users.dateUSING 'map_script'AS dt, uidCLUSTER BY dt) map_outputINSERT OVERWRITE TABLE pv_users_reducedREDUCE map_output.dt, map_output.uidUSING 'reduce_script'AS date, count;

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

Ово је само пример скрипте за разумевање

  • пв_усерс је табела корисника која има поља попут корисничког имена и датума као што је поменуто у мап_сцрипт
  • Скрипта редуктора дефинисана датумом и бројем табела пв_усерс