Taru liitumiste tutvustus
Liitmikke kasutatakse erinevate tabelite abil erinevate väljundite saamiseks, kombineerides neid konkreetsete veergude alusel. Nüüd, kui tabelid asuvad tarus, peame tabelid looma ja tabelitesse andmed laadima. Selle eesmärgi mõistmiseks kasutame siin kahte tabelit (klient ja toode).
Erinevad käsud
Allpool on nende tabelite andmete loomise ja laadimise käsud:
Kliendilaua jaoks : 6 rida
Loo käsk
Looge väline tabel, kui klienti pole olemas (id string, nimisõna, linn string)
rea formaat on piiritletud
väljad, mille lõpetab ''
asukoht '/user/hive/warehouse/test.db/customer'
tblproperties (“skip.header.line.count” = ”1”);
Laadimiskäsk
Laadige andmed lokaalses asukohas '/home/cloudera/Customer_Neha.txt' tabeliklienti;
Klienditabeli andmed
Tootetabel : 6 rida
Loo käsk
Looge väline tabel, kui toodet pole olemas (Cust_Id string,
Tootesari, hinnastring)
rea formaat on piiritletud
väljad, mille lõpetab ''
asukoht '/user/hive/warehouse/test.db/product'
tblproperties (“skip.header.line.count” = ”1”);
Laadimiskäsk
Laadige tabelisse toote andmete lokaalne tee '/home/cloudera/Product_Neha.txt';
Tootetabeli andmed
Tabeliskeemi kontrollimiseks kasutage käsku „desc table name;”
Nüüd on meil tabelites andmeid, mängime sellega ????
Taru liitumiste tüübid
Liitu - see annab nii tabeli andmete risttulemina väljundi. Nagu näete, on igas tabelis 6 rida. Nii et liitumise väljund on 36 rida. Kaardistajate arv-1. Siiski ei kasutata operaatorile mingit taandamist.
Käsk
Väljund:
1. Täielik liitumine
Täielik liitumine ilma matšitingimusteta annab mõlema tabeli risttoote.
Kaardistajate arv-2
Reduktor-1 arv
Seda on võimalik saavutada ka liitumisega, kuid vähem kaardistajate ja reduktorite arvuga.
Täielik liitumine matšitingimustega
Kõik read ühendatakse mõlemast tabelist. Kui read ei vasta mõnes teises tabelis, siis sisestatakse väljundis NULL (jälgige Id-100, 106). Ühtegi rida ei jäeta vahele.
Kaardistajate arv-2
Reduktor-1 arv
Käsk
Väljund:
2. Sisemine liitumine
Kui sisemist liitmikku kasutatakse ilma sisse lülitamata, annab see väljundina ristsuhte. Peame siiski kasutama konkreetseid veerge, mille alusel liitmist saab teostada. Klienditabeli veerg Id ja tootetabeli veerg Cust_id on minu konkreetsed veerud. Väljund sisaldab ridu, kus Id ja Cust_Id vastavad. Võite jälgida, read Id-106 ja Cust_Id-100 jäetakse väljundisse vahele, kuna neid pole üheski teises tabelis.
Käsk
Väljund:
3. Vasakpoolne liitumine
Kõik vasakpoolsest tabelist olevad read on ühendatud parempoolsest tabelist vastavate ridadega. Kui parempoolsel tabelil on ID-dega read, mida vasakpoolses tabelis pole, siis need read jäetakse vahele (väljundina jälgige Cust_Id-100). Kui parempoolsel tabelil pole vasakpoolse tabeli ID-dega ridu, sisestatakse väljundis NULL (väljundis jälgige Id-106).
Mapper-1 arv
Reduktor-0 arv
Käsk
Väljund:
4. Parempoolne liitumine
Kõik parempoolse tabeli read sobivad vasakpoolsete tabeliridadega. Kui vasakul tabelil pole ühtegi rida, siis täidetakse NULL (Vaadake Id 100). Vasakpoolsest tabelist pärit read jäetakse vahele, kui seda vastet ei leidu parempoolsest tabelist (vt Id 106).
Mapper-1 arv
Reduktor-0 arv
Käsk
Väljund:
Järeldus - liitub taruga
Nagu sõna "liituma", saab andmebaasis ühendada kaks või enam tabelit. See sarnaneb liitumistega SQL-is. Liitmikke kasutatakse erinevate tabelite abil erinevate väljundite saamiseks, kombineerides neid konkreetsete veergude alusel. Nõude põhjal saab otsustada, milline liitumine teile sobib. Näiteks kui soovite kontrollida vasakpoolses tabelis olevate ID-de olemasolu, kuid mitte parempoolses tabelis, võite lihtsalt kasutada vasakpoolset liitumist. Sõltuvalt keerukusest võib tarutüüpides läbi viia mitmesuguseid optimeerimisi. Mõned näited on ümberjaotamise liitumised, kordusühendused ja poolühendused.
Soovitatavad artiklid
See on juhend Joins in Hive. Siin käsitleme tarude ühendamise tüüpe nagu täielik liitumine, sisemine liitumine, vasakpoolne liitumine ja parempoolne liitumine taruga koos selle käsu ja väljundiga. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -
- Mis on taru?
- Taru käsud
- Tarutreening (2 kursust, 5+ projekti)
- Apache Pig vs Apache Hive - 12 parimat erinevust
- Tarude alternatiivide omadused
- Funktsiooni ORDER BY kasutamine tarus
- MySQL-i 6 parimat liitumistüüpi koos näidetega