Pridružuje se košnici - Naučite vrste pridruživanja sa svojim naredbama i izlazima

Sadržaj:

Anonim

Uvod u pridruživanje košnici

Pridruživanja se koriste za dobivanje različitih izlaza pomoću više tablica, kombinirajući ih na temelju određenih stupaca. Sada, da bi tablice bile u košnici, potrebno je kreirati tablice i učitati podatke u svaku tablicu. Ovdje ćemo koristiti dvije tablice (kupac i proizvod) za razumijevanje svrhe.

Različite naredbe

Ispod su naredbe za stvaranje i učitavanje podataka u ove tablice:

Za tablicu kupaca : 6 redaka

Stvorite naredbu

Izradite vanjsku tablicu ako ne postoji kupac (id niz, niz imena, gradski niz)
format redaka ograničen
polja završena znakom ""
lokacija '/user/hive/warehouse/test.db/customer'
tblproperties ("skip.header.line.count" = "1");

Napuni naredbu

Učitajte lokalne podatke u putu '/home/cloudera/Customer_Neha.txt' u klijenta tablice;

Podaci tablice kupaca

Za tablicu proizvoda : 6 redaka

Stvorite naredbu

Izradite vanjsku tablicu ako ne postoji proizvod (Cust_Id string,
Niz proizvoda, niz cijena)
format redaka ograničen
polja završena znakom ""
lokacija '/user/hive/warehouse/test.db/product'
tblproperties ("skip.header.line.count" = "1");

Naredba za učitavanje

Učitajte lokalni put '/home/cloudera/Product_Neha.txt' u proizvod tablice;

Podaci tablice proizvoda

Napomena : Koristim "svojstva (" skip.header.line.count "=" 1 ")" da bih preskočio prvi redak podataka koji je meni zaglavljen.

Za provjeru sheme tablice koristite naredbu "desc naziv tablice;"


Sad imamo podatke u tablicama, poigrajmo se s tim ????

Vrste spajanja u košnici

Join - Ovo će dati umreženi proizvod oba podataka tablice kao izlaz. Kao što vidite, imamo 6 redaka u svakoj tablici. Dakle, izlaz za Join bit će 36 redaka. Broj mappers-1. No, operater se ne koristi.

naredba

Izlaz:

1. Potpuno se pridružite

Potpuno pridruživanje bez uvjeta podudaranja dati će umreženi proizvod obje tablice.

Broj mappers-2

Broj reduktora-1

To se može postići i upotrebom „Join“, ali s manjim brojem mappera i reduktora.

Potpuno Pridružite se uvjetu utakmice

Svi se redovi spajaju iz obje tablice. Ako se redovi ne podudaraju u drugoj tablici, NULL će se upisati u izlazu (promatrajte Id-100, 106). Nijedni redovi nisu preskočeni.

Broj mappers-2

Broj reduktora-1

naredba

Izlaz:

2. Unutarnje spajanje

Ako se unutarnji spoj koristi bez klauzule "on", dat će unakrsni proizvod kao izlaz. Međutim, od nas se traži korištenje posebnih stupaca na temelju kojih se spajanje može provesti. Stupac Id iz tablice korisnika i stupac Cust_id iz tablice proizvoda moji su specifični stupci. Izlaz sadrži retke u kojima se podudaraju Id i Cust_Id. Možete primijetiti, redovi s Id-106 i Cust_Id-100 preskaču se u izlazu jer nisu prisutni u drugoj tablici.

naredba

Izlaz:

3. Lijevo spajanje

Svi se redovi s lijeve tablice spajaju podudarnim redovima iz desne tablice. Ako desna tablica ima retke s id-om koji nisu prisutni u lijevoj tablici, tada će ti redovi biti preskočeni (promatrajte Cust_Id-100 u izlazu). Ako desna tablica nema retke s id-ovima koji se nalaze u lijevoj tablici, NULL će se popuniti u izlazu (promatrajte ID-106 u izlazu).

Broj Mapper-1

Broj reduktora-0

naredba

Izlaz:

4. Desno se pridružite

Svi se redovi iz desne tablice podudaraju s lijevim redovima tablice. Ako lijeva tablica nema nijedan red, tada će se popuniti NULL (Promatrajte ID 100). Redovi s lijeve tablice preskočit će se ako se ta utakmica ne nađe u desnoj tablici (promatrajte Id 106).

Broj Mapper-1

Broj reduktora-0

naredba

Izlaz:

Zaključak - Pridružuje se košnici

"Pridružite se", kao što riječ sugerira, mogu se pridružiti dvije ili više tablica u bazi podataka. Slično je pridruživanju u SQL-u. Pridruživanja se koriste za dobivanje različitih izlaza pomoću više tablica, kombinirajući ih na temelju određenih stupaca. Na osnovu zahtjeva može se odlučiti koja će vam se strana pridružiti. Na primjer, ako želite provjeriti u čemu je id prisutan u lijevoj tablici, a ne u desnoj tablici, jednostavno možete upotrijebiti pridruživanje lijevo. U spajanju košnica mogu se obavljati različite optimizacije ovisno o složenosti. Neki od primjera su dijeljenje pridruživanje, replikacija i polu spajanje.

Preporučeni članci

Ovo je vodič za Pridruživanja u košnici. Ovdje razgovaramo o vrstama pridruživanja kao što su potpuno pridruživanje, unutarnje spajanje, lijevo pridruživanje i desno pridruživanje u košnici zajedno sa njegovom naredbom i izlazom. Možete pogledati i sljedeće članke da biste saznali više -

  1. Što je košnica?
  2. Naredbe košnica
  3. Obuka košnica (2 tečaja, 5+ projekata)
  4. Apache Pig vs Apache košnica - 12 najboljih korisnih razlika
  5. Značajke alternative košnice
  6. Korištenje ORDER BY funkcije u košnici
  7. Top 6 vrsta pridruživanja u MySQL-u s primjerima