Úvod do Joins in Hive
Spojení se používá k načtení různých výstupů pomocí více tabulek jejich kombinací na základě konkrétních sloupců. Nyní, aby tabulky byly v Úlu, musíme vytvořit tabulky a načíst data v každé tabulce. Pro pochopení účelu zde použijeme dvě tabulky (zákazník a produkt).
Různé příkazy
Níže jsou uvedeny příkazy pro vytváření a načítání dat v těchto tabulkách:
Pro tabulku zákazníků : 6 řádků
Vytvořit příkaz
Vytvořit externí tabulku, pokud neexistuje zákazník (řetězec id, řetězec názvu, řetězec města)
řádkový formát je ohraničen
pole ukončena znakem „“
umístění '/user/hive/warehouse/test.db/customer'
tblproperties (“skip.header.line.count” = ”1”);
Načíst příkaz
Načíst data lokálně v cestě '/home/cloudera/Customer_Neha.txt' do tabulky zákazníka;
Data tabulky zákazníků
Pro tabulku produktu : 6 řádků
Vytvořit příkaz
Vytvořte externí tabulku, pokud neexistuje produkt (řetězec Cust_Id,
Řetězec produktu, Řetězec ceny)
řádkový formát je ohraničen
pole ukončena znakem „“
umístění '/user/hive/warehouse/test.db/product'
tblproperties (“skip.header.line.count” = ”1”);
Načíst příkaz
Načíst místní cestu dat '/home/cloudera/Product_Neha.txt' do tabulkového produktu;
Data tabulky produktů
Chcete-li zkontrolovat schéma tabulky, použijte příkaz „desc table name;“
Nyní máme data v tabulkách, pojďme si s nimi hrát ????
Typy spojení v Úlu
Připojte se - Tím získáte křížový produkt obou dat tabulky jako výstup. Jak vidíte, v každé tabulce je 6 řádků. Výstup pro spojení bude tedy 36 řádků. Počet mapovačů-1. Neexistuje však žádné snížení na obsluhu.
Příkaz
Výstup:
1. Úplné připojení
Úplné spojení bez podmínky zápasu poskytne křížový produkt obou tabulek.
Počet mapovačů-2
Počet reduktorů-1
Toho lze dosáhnout také pomocí „Připojit se“, ale s menším počtem mapovačů a reduktorů.
Plné spojení s podmínkou zápasu
Všechny řádky budou spojeny z obou tabulek. Pokud se řádky neshodují v jiné tabulce, na výstupu bude naplněna hodnota NULL (Pozorujte ID-100, 106). Žádné řádky nejsou přeskočeny.
Počet mapovačů-2
Počet reduktorů-1
Příkaz
Výstup:
2. Vnitřní spojení
Pokud je vnitřní spojení použito bez klauzule „on“, dá jako výstup křížový produkt. Nicméně jsme povinni použít konkrétní sloupce, na jejichž základě lze spojení provést. Sloupec Id z tabulky zákazníků a sloupec Cust_id z tabulky produktů jsou mé specifické sloupce. Výstup obsahuje řádky, kde se shodují Id a Cust_Id. Můžete pozorovat, řádky s Id-106 a Cust_Id-100 jsou přeskočeny ve výstupu, protože nejsou přítomny v jiné tabulce.
Příkaz
Výstup:
3. Levé připojení
Všechny řádky z levé tabulky jsou spojeny s odpovídajícími řádky z pravé tabulky. Pokud má pravá tabulka řádky s idy, které nejsou v levé tabulce, pak budou tyto řádky přeskočeny (ve výstupu je třeba dodržet Cust_Id-100). Pokud správná tabulka nemá řádky s idy, které jsou v levé tabulce, bude ve výstupu naplněna hodnota NULL (ve výstupu bude dodržovat Id-106).
Počet mapovačů-1
Počet reduktorů-0
Příkaz
Výstup:
4. Správné připojení
Všechny řádky z pravé tabulky jsou sladěny s levými řádky tabulky. Pokud levá tabulka nemá žádný řádek, bude naplněna hodnota NULL (Pozorujte ID 100). Řádky z levé tabulky budou přeskočeny, pokud tato shoda není nalezena v pravé tabulce (Pozorujte 106).
Počet mapovačů-1
Počet reduktorů-0
Příkaz
Výstup:
Závěr - Připojí se v Úlu
„Připojit se“, jak napovídá slovo, může spojit dvě nebo více tabulek v databázi. Je to podobné spojení v SQL. Spojení se používá k načtení různých výstupů pomocí více tabulek jejich kombinací na základě konkrétních sloupců. Na základě požadavku lze rozhodnout, které spojení bude pro vás fungovat. Například, pokud chcete zkontrolovat, jaké id je v levé tabulce, ale ne v pravé tabulce, můžete jednoduše použít levé spojení. V závislosti na složitosti mohou být v úlech spojeny různé optimalizace. Některé z příkladů jsou rozdělení rozdělení, spojení replikace a semifinále.
Doporučené články
Toto je průvodce po Joins in Hive. Zde diskutujeme typy spojení jako plné spojení, vnitřní spojení, levé spojení a pravé spojení v úlu spolu s jeho příkazem a výstupem. Další informace naleznete také v následujících článcích
- Co je Úl?
- Příkazy úlu
- Výcvik úlu (2 kurzy, 5+ projektů)
- Apache Pig vs Apache Hive - Top 12 užitečných rozdílů
- Vlastnosti alternativy úlu
- Použití funkce OBJEDNÁVKA BY v Úlu
- Top 6 typů spojení v MySQL s příklady