Liittyy pesään - Opi liitostyypit komentojen ja tuotoksien kanssa

Sisällysluettelo:

Anonim

Johdatus pesän liittoihin

Liitoksia käytetään hakemaan erilaisia ​​tulosteita käyttämällä useita taulukoita yhdistämällä ne tiettyjen sarakkeiden perusteella. Nyt, jotta taulukot olisivat pesässä, meidän on luotava taulukot ja ladattava tiedot jokaisessa taulukossa. Käytämme täällä kahta taulukkoa (asiakas ja tuote) tarkoituksen ymmärtämiseksi.

Eri komennot

Alla on komennot tietojen luomiseen ja lataamiseen näihin taulukoihin:

Asiakaspöytä : 6 riviä

Luo komento

Luo ulkoinen taulukko, jos asiakasta ei ole (tunnusmerkkijono, nimimerkkijono, kaupunkijono)
rivimuoto rajoitettu
kentät, jotka päättyi ''
sijainti '/user/hive/warehouse/test.db/customer'
tbl-ominaisuudet (“skip.header.line.count” = ”1”);

Lataa komento

Lataa tiedot paikallisesti polulle '/home/cloudera/Customer_Neha.txt' taulukkoasiakkaaseen;

Asiakastiedot

Tuotelistausta varten : 6 riviä

Luo komento

Luo ulkoinen taulukko, jos tuotetta ei ole (Cust_Id-merkkijono,
Tuotteen merkkijono, Hinta merkkijono)
rivimuoto rajoitettu
kentät, jotka päättyi ''
sijainti '/user/hive/warehouse/test.db/product'
tbl-ominaisuudet (“skip.header.line.count” = ”1”);

Lataa komento

Lataa datapaikallinen polku '/home/cloudera/Product_Neha.txt' taulukkotuotteeseen;

Tuoteluettelotiedot

Huomaa : Käytän ominaisuuksia ”(skip.header.line.count” = ”1”) ”ohittaakseni tietoni ensimmäisen rivin, joka on minulle otsikko.

Tarkista taulukkomallin komento “desc table name;”


Nyt meillä on tietoja taulukoissa, pelataan sen kanssa ????

Tyypit liitoksen Hive

Liity - Tämä antaa molempien taulukon tietojen poikkituotteen tulosteena. Kuten huomaat, jokaisessa taulukossa on 6 riviä. Joten Join-tulosteen määrä on 36 riviä. Karttaajien lukumäärä-1. Kuitenkaan ei vähennetä käyttäjän on käytetty.

Komento

lähtö:

1. Täysi liittyminen

Täysi liittyminen ilman otteluehtoa antaa kummankin pöydän ristituotteen.

Karttaajien lukumäärä-2

Pelkistimen-1 lukumäärä

Tämä voidaan saavuttaa myös käyttämällä "Liity" -toimintoa, mutta vähemmän karttaajien ja vähennysten määrää.

Täysin liittyä ottelun ehdolla

Kaikki rivit yhdistetään molemmista taulukoista. Jos rivejä ei ole sovitettu toiseen taulukkoon, NULL-arvo täytetään ulostulossa (Huomaa Id-100, 106). Mitään rivejä ei ohiteta.

Karttaajien lukumäärä-2

Pelkistimen-1 lukumäärä

Komento

lähtö:

2. Sisäinen liittyminen

Jos sisäistä liitosta käytetään ilman ”päällä” -lauseketta, se antaa lähtökohtana ristikkäistuotteen. Meidän on kuitenkin käytettävä tiettyjä sarakkeita, joiden perusteella yhdistäminen voidaan suorittaa. Asiakastaulukon Id-sarake ja tuoteluettelon Cust_id-sarake ovat omat sarakkeeni. Tuloste sisältää rivit, joissa Id ja Cust_Id vastaavat. Voit tarkkailla, rivit, joilla on ID-106 ja Cust_Id-100, ohitetaan tulostuksessa, koska niitä ei ole toisessa taulukossa.

Komento

lähtö:

3. Vasen liittyä

Kaikki vasemman taulukon rivit yhdistetään vastaavien rivien kanssa oikealta taulukolta. Jos oikeanpuoleisessa taulukossa on rivejä, joiden tunnuksia ei ole vasemmassa taulukossa, nuo rivit ohitetaan (Tarkkaile lähtöarvona Cust_Id-100). Jos oikeassa taulukossa ei ole rivejä, joiden tunnusmerkkejä on vasemmanpuoleisessa taulukossa, NULL asetetaan lähtössä (huomioi Id-106 tulostuksessa).

Mapper-1 lukumäärä

Pelkistimen lukumäärä-0

Komento

lähtö:

4. Oikea liittyminen

Kaikki oikean taulukon rivit vastaavat vasemmanpuoleisia taulukkorivejä. Jos vasemmassa taulukossa ei ole riviä, NULL-luku täytetään (Huomaa tunnus 100). Vasemmanpuoleisen taulukon rivit ohitetaan, jos vastaavaa ei löydy oikeasta taulukosta (Huomaa tunnus 106).

Mapper-1 lukumäärä

Pelkistimen lukumäärä-0

Komento

lähtö:

Johtopäätös - liittyminen pesään

Liity, kuten sana ehdottaa, voi liittyä kahteen tai useampaan tietokannan taulukkoon. Se on samanlainen kuin liittyminen SQL: ään. Liitoksia käytetään hakemaan erilaisia ​​tulosteita käyttämällä useita taulukoita yhdistämällä ne tiettyjen sarakkeiden perusteella. Vaatimuksen perusteella voidaan päättää, mikä liittyminen toimii sinulle. Esimerkiksi, jos haluat tarkistaa, mitkä tunnukset ovat läsnä vasemmassa taulukossa, mutta eivät oikeassa taulukossa, voit käyttää vasenta liittymistä. Pesiyhteyksissä voidaan suorittaa erilaisia ​​optimointeja monimutkaisuudesta riippuen. Jotkut esimerkit ovat uudelleenjakoyhteyksiä, toisinnusliitoksia ja puoliliitoksia.

Suositellut artikkelit

Tämä on opas Joins in Hive -sivustolle. Tässä keskustellaan liitosten tyypeistä, kuten täysi liittyminen, sisäinen liittyminen, vasen liittyminen ja oikea liittyminen pesään sekä sen komento ja lähtö. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. Mikä on pesä?
  2. Pesän komennot
  3. Pesänkoulutus (2 kurssia, 5+ hanketta)
  4. Apache Pig vs Apache Hive - 12 suosituinta eroa
  5. Pesän vaihtoehtojen ominaisuudet
  6. ORDER BY -toiminnon käyttö pesässä
  7. MySQL: n kuusi suosittua liittymistyyppiä ja esimerkkejä