Úvod do hry Joins in Hive
Pripojenia sa používajú na získavanie rôznych výstupov pomocou viacerých tabuliek ich kombináciou na základe konkrétnych stĺpcov. Teraz, aby tabuľky boli v Úli, musíme vytvoriť tabuľky a načítať údaje do každej tabuľky. Na pochopenie účelu tu použijeme dve tabuľky (zákazník a produkt).
Rôzne príkazy
Nižšie sú uvedené príkazy na vytváranie a načítanie údajov v týchto tabuľkách:
Pre tabuľku zákazníkov : 6 riadkov
Vytvorenie príkazu
Vytvorte externú tabuľku, ak neexistuje (reťazec id, reťazec názvu, reťazec mesta)
riadkový formát je ohraničený
polia ukončené znakom „“
umiestnenie '/user/hive/warehouse/test.db/customer'
tblproperties („skip.header.line.count“ = „1“);
Načítať príkaz
Načítať dáta lokálne v ceste '/home/cloudera/Customer_Neha.txt' do tabuľky zákazníka;
Údaje tabuľky zákazníkov
Pre tabuľku produktu : 6 riadkov
Vytvorenie príkazu
Vytvorte externú tabuľku, ak neexistuje produkt (reťazec Cust_Id,
Reťazec produktu, Reťazec ceny)
riadkový formát je ohraničený
polia ukončené znakom „“
umiestnenie '/user/hive/warehouse/test.db/product'
tblproperties („skip.header.line.count“ = „1“);
Načítať príkaz
Načítajte dátovú lokálnu cestu '/home/cloudera/Product_Neha.txt' do tabuľkového produktu;
Údaje tabuľky produktov
Na kontrolu schémy tabuľky použite príkaz „desc table name;“
Teraz máme údaje v tabuľkách, poďme si s tým hrať ????
Typy spojení v Úli
Spojte sa - výsledkom bude krížový produkt údajov tabuľky ako výstup. Ako vidíte, v každej tabuľke je 6 riadkov. Výstup pre pripojenie bude teda 36 riadkov. Počet mapovačov-1. Prevádzkovateľ sa však nezníži.
príkaz
Výkon:
1. Úplné pripojenie
Úplné pripojenie bez podmienky zápasu poskytne krížový produkt oboch tabuliek.
Počet mapovačov-2
Počet reduktorov-1
To sa dá dosiahnuť aj pomocou možnosti „Pripojiť sa“, ale s menším počtom mapovačov a reduktorov.
Úplné spojenie so stavom zápasu
Všetky riadky sa spoja z oboch tabuliek. Ak sa riadky nezhodujú v inej tabuľke, na výstupe sa vyplní hodnota NULL (Pozorujte ID-100, 106). Žiadne riadky nie sú preskočené.
Počet mapovačov-2
Počet reduktorov-1
príkaz
Výkon:
2. Vnútorné pripojenie
Ak sa vnútorné spojenie použije bez klauzuly „on“, ako výstup sa získa krížový produkt. Avšak sme povinní použiť konkrétne stĺpce, na základe ktorých je možné vykonať spojenie. Stĺpec Id z tabuľky zákazníkov a stĺpec Cust_id z tabuľky produktov sú moje konkrétne stĺpce. Výstup obsahuje riadky, kde sa zhodujú ID a Cust_Id. Môžete si všimnúť, riadky s Id-106 a Cust_Id-100 sa vo výstupe preskočia, pretože sa nenachádzajú v inej tabuľke.
príkaz
Výkon:
3. Ľavé pripojenie
Všetky riadky z ľavej tabuľky sú spojené zodpovedajúcimi riadkami z pravej tabuľky. Ak má správna tabuľka riadky s identifikátormi, ktoré sa nenachádzajú v ľavej tabuľke, tieto riadky sa vynechajú (vo výstupe dodržte Cust_Id-100). Ak správna tabuľka nemá riadky s idmi, ktoré sú v ľavej tabuľke, vo výstupe sa vyplní hodnota NULL (vo výstupe dodržte ID-106).
Počet mapovačov-1
Počet reduktorov-0
príkaz
Výkon:
4. Správne pripojenie
Všetky riadky z pravej tabuľky sú zladené s ľavými riadkami tabuľky. Ak ľavá tabuľka nemá žiadny riadok, vyplní sa NULL (Pozorujte ID 100). Riadky z ľavej tabuľky budú vynechané, ak sa táto zhoda v správnej tabuľke nenájde (Pozorujte 106).
Počet mapovačov-1
Počet reduktorov-0
príkaz
Výkon:
Záver - Pripojí sa k Úlu
„Pripojiť sa“, ako napovedá slovo, sa môže spojiť s dvoma alebo viacerými tabuľkami v databáze. Je to podobné ako v SQL. Pripojenia sa používajú na získavanie rôznych výstupov pomocou viacerých tabuliek ich kombináciou na základe konkrétnych stĺpcov. Na základe požiadavky je možné rozhodnúť sa, ktoré spojenie bude pracovať pre vás. Napríklad, ak chcete skontrolovať, aké id sú prítomné v ľavej tabuľke, ale nie v pravej tabuľke, môžete jednoducho použiť pripojenie vľavo. V spojení s úľmi sa môžu vykonávať rôzne optimalizácie v závislosti od zložitosti. Niektoré z príkladov sú pripájané na rozdelenie, pripájané replikácie a semifinále.
Odporúčané články
Toto je sprievodca po Joins in Hive. Tu diskutujeme typy spojení ako plné spojenie, vnútorné spojenie, ľavé a pravé spojenie v úle spolu s jeho príkazom a výstupom. Viac informácií nájdete aj v nasledujúcich článkoch
- Čo je Úľ?
- Príkazy úľa
- Výcvik úľa (2 kurzy, 5+ projektov)
- Apache Pig vs Apache Hive - Top 12 užitočných rozdielov
- Vlastnosti alternatívy úľa
- Použitie funkcie OBJEDNÁVKA POD Úľ
- Top 6 typov spojení v MySQL s príkladmi