Wprowadzenie do połączeń w gałęzi
Połączenia służą do wyszukiwania różnych wyników przy użyciu wielu tabel, łącząc je w oparciu o określone kolumny. Teraz, aby tabele były w gałęzi, musimy utworzyć tabele i załadować dane do każdej tabeli. Użyjemy tutaj dwóch tabel (klienta i produktu), aby zrozumieć cel.
Różne polecenia
Poniżej znajdują się polecenia tworzenia i ładowania danych w tych tabelach:
Do tabeli klientów : 6 rzędów
Utwórz polecenie
Utwórz tabelę zewnętrzną, jeśli nie istnieje klient (ciąg identyfikatora, ciąg nazwy, ciąg miasta)
Format wiersza rozdzielany
pola zakończone przez „”
lokalizacja „/user/hive/warehouse/test.db/customer”
tblproperties („skip.header.line.count” = ”1”);
Załaduj polecenie
Załaduj dane lokalne w ścieżce „/home/cloudera/Customer_Neha.txt” do klienta tabeli;
Dane tabeli klientów
Dla tabeli produktów : 6 rzędów
Utwórz polecenie
Utwórz tabelę zewnętrzną, jeśli nie istnieje produkt (ciąg Cust_Id,
Ciąg produktu, Ciąg ceny)
Format wiersza rozdzielany
pola zakończone przez „”
lokalizacja „/user/hive/warehouse/test.db/product”
tblproperties („skip.header.line.count” = ”1”);
Załaduj polecenie
Załaduj ścieżkę lokalną danych „/home/cloudera/Product_Neha.txt” do produktu tabeli;
Dane tabeli produktów
Aby sprawdzić schemat tabeli, użyj polecenia „desc table name;”
Teraz mamy dane w tabelach, Zagrajmy z tym ????
Rodzaje złączeń w gałęzi
Dołącz - da to iloczyn krzyżowy danych tabeli jako danych wyjściowych. Jak widać, mamy 6 wierszy w każdej tabeli. Tak więc wynik dla Join będzie wynosił 36 wierszy. Liczba twórców map-1. Jednak operator nie stosuje redukcji.
Komenda
Wynik:
1. Pełne dołączenie
Pełne połączenie bez warunku dopasowania da iloczyn krzyżowy obu tabel.
Liczba twórców map-2
Liczba reduktorów-1
Można to osiągnąć również za pomocą opcji „Dołącz”, ale przy mniejszej liczbie maperów i reduktorów.
Pełne połączenie z warunkiem dopasowania
Wszystkie rzędy zostaną połączone z obu tabel. Jeśli wiersze nie są dopasowane w innej tabeli, w danych wyjściowych zostanie zapełniona wartość NULL (obserwuj Id-100, 106). Żadne wiersze nie są pomijane.
Liczba twórców map-2
Liczba reduktorów-1
Komenda
Wynik:
2. Przyłączenie wewnętrzne
Jeśli sprzężenie wewnętrzne jest używane bez klauzuli „on”, otrzyma iloczyn krzyżowy jako wynik. Jesteśmy jednak zobowiązani do korzystania z określonych kolumn, na podstawie których można wykonać łączenie. Kolumna Id z tabeli klientów i kolumna Cust_id z tabeli produktów to moje określone kolumny. Dane wyjściowe zawierają wiersze, w których pasują Id i Cust_Id. Możesz zaobserwować, że wiersze o Id-106 i Cust_Id-100 są pomijane w danych wyjściowych, ponieważ nie są obecne w innej tabeli.
Komenda
Wynik:
3. Left Join
Wszystkie wiersze z lewej tabeli są połączone z dopasowanymi wierszami z prawej tabeli. Jeśli prawa tabela ma wiersze o identyfikatorach, których nie ma w lewej tabeli, wówczas wiersze te zostaną pominięte (obserwuj Cust_Id-100 w danych wyjściowych). Jeśli prawa tabela nie ma wierszy z identyfikatorami, które znajdują się w lewej tabeli, wartość NULL zostanie wypełniona w danych wyjściowych (obserwuj Id-106 w danych wyjściowych).
Liczba Mapper-1
Liczba reduktorów-0
Komenda
Wynik:
4. Right Join
Wszystkie wiersze z prawej tabeli są dopasowane do lewej tabeli. Jeśli lewa tabela nie ma żadnego wiersza, wówczas NULL zostanie wypełnione (Observ Id 100). Rzędy z lewej tabeli zostaną pominięte, jeśli w prawej tabeli nie zostanie znalezione dopasowanie (Observe Id 106).
Liczba Mapper-1
Liczba reduktorów-0
Komenda
Wynik:
Wniosek - dołącza do ula
„Dołącz”, jak sugeruje to słowo, może łączyć dwie lub więcej tabel w bazie danych. Jest podobny do złączeń w SQL. Połączenia służą do wyszukiwania różnych wyników przy użyciu wielu tabel, łącząc je w oparciu o określone kolumny. Na podstawie wymagań można zdecydować, które dołączenie będzie dla Ciebie działać. Na przykład, jeśli chcesz sprawdzić, jakie identyfikatory są obecne w lewej tabeli, ale nie w prawej tabeli, możesz po prostu użyć lewego łączenia. W zależności od złożoności można wykonywać różne optymalizacje w połączeniach gałęzi. Niektóre z przykładów to sprzężenia repartition, sprzężenia replikacji i sprzężenia semi.
Polecane artykuły
To jest przewodnik po dołączeniu do ula. Tutaj omawiamy rodzaje złączeń, takie jak pełne złączenie, wewnętrzne połączenie, lewe połączenie i prawe połączenie w gałęzi wraz z jego poleceniem i wyjściem. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-
- Co to jest ul?
- Polecenia gałęzi
- Szkolenie w ulu (2 kursy, ponad 5 projektów)
- Apache Pig vs Hoje Apache - Top 12 przydatnych różnic
- Funkcje alternatywnych gałęzi
- Używanie funkcji ORDER BY w gałęzi
- Top 6 rodzajów połączeń w MySQL z przykładami