Вступ до приєднання до вулика

Приєднання використовуються для отримання різних результатів за допомогою декількох таблиць, поєднуючи їх на основі конкретних стовпців. Тепер, щоб таблиці знаходились у вулику, нам потрібно створити таблиці та завантажити дані у кожну таблицю. Тут ми використаємо дві таблиці (клієнт та товар) для розуміння мети.

Різні команди

Нижче наведені команди для створення та завантаження даних у наступні таблиці:

Для таблиці клієнтів : 6 рядків

Створити команду

Створіть зовнішню таблицю, якщо клієнта не існує (рядок id, рядок імені, рядок міста)
формат рядків обмежений
поля, припинені символом ""
location '/user/hive/warehouse/test.db/customer'
tblproperties ("skip.header.line.count" = "1");

Завантажити команду

Завантажте локальні дані на шляху '/home/cloudera/Customer_Neha.txt' у клієнта таблиці;

Дані таблиці клієнтів

Для таблиці продуктів : 6 рядків

Створити команду

Створіть зовнішню таблицю, якщо продукту не існує (рядок Cust_Id,
Рядок продукту, Рядок цін)
формат рядків обмежений
поля, припинені символом ""
location '/user/hive/warehouse/test.db/product'
tblproperties ("skip.header.line.count" = "1");

Команда завантаження

Завантажте локальний шлях даних '/home/cloudera/Product_Neha.txt' у продукт таблиці;

Дані таблиці продуктів

Примітка . Я використовую "властивості (" skip.header.line.count "=" 1 ")", щоб пропустити перший рядок моїх даних, який є для мене заголовком.

Для перевірки схеми таблиці використовуйте команду "desc name name table;"


Тепер ми маємо дані в таблицях, Давайте пограємо з цим ????

Типи приєднань до вулика

Join - Це дасть перехресний продукт обох даних таблиці як вихід. Як бачите, у кожній таблиці ми маємо по 6 рядків. Таким чином, вихід для приєднання складе 36 рядків. Кількість картографів-1. Однак зменшення для оператора не використовується.

Командування

Вихід:

1. Повне приєднання

Повне приєднання без відповідності умовам дасть поперечний добуток обох таблиць.

Кількість картографів-2

Кількість редуктора-1

Цього можна досягти і за допомогою “Join”, але з меншою кількістю картографів та редукторів.

Повна приєднання з умовою матчу

Усі рядки будуть з’єднані з обох таблиць. Якщо рядки не збігаються в іншій таблиці, то NULL буде заповнено у виводі (дотримуйтесь Id-100, 106). Жодні рядки не пропускаються.

Кількість картографів-2

Кількість редуктора-1

Командування

Вихід:

2. Внутрішня приєднання

Якщо внутрішнє з'єднання використовується без пункту "ввімкнутий", воно дасть поперечний продукт як вихід. Однак від нас вимагається використовувати конкретні стовпці, на основі яких може здійснюватися з'єднання. Стовпчик Id із таблиці клієнтів та Стовпчик_запису з таблиці продуктів - це мої конкретні стовпці. Вихідні дані містять рядки, в яких Id та Cust_Id збігаються. Ви можете спостерігати, рядки з Id-106 та Cust_Id-100 пропускаються у виводі, оскільки їх немає в іншій таблиці.

Командування

Вихід:

3. Ліва приєднання

Усі рядки з лівої таблиці з'єднуються збігаються рядками з правої таблиці. Якщо в правій таблиці є рядки з ідентифікаторами, яких немає в лівій таблиці, тоді ці рядки будуть пропущені (дотримуйтесь уваги Cust_Id-100). Якщо в правій таблиці немає рядків з ідентифікаторами, які є в лівій таблиці, NULL буде заповнено у виводі (спостерігайте за Id-106 у висновку).

Кількість Mapper-1

Кількість редуктора-0

Командування

Вихід:

4. Право приєднайтесь

Усі рядки з правої таблиці зіставляються з лівими рядками таблиці. Якщо в лівій таблиці немає рядка, то NULL буде заповнено (спостерігайте за 100). Рядки з лівої таблиці будуть пропущені, якщо ця відповідність не знайдена в правій таблиці (спостерігайте за номером 106).

Кількість Mapper-1

Кількість редуктора-0

Командування

Вихід:

Висновок - приєднується до вулика

"Приєднатися", як підказує слово, може приєднати дві або більше таблиць у базі даних. Це схоже на приєднання до SQL. Приєднання використовуються для отримання різних результатів за допомогою декількох таблиць, поєднуючи їх на основі конкретних стовпців. Виходячи з вимоги, можна вирішити, яке приєднання буде працювати для вас. Наприклад, якщо ви хочете перевірити, які саме ідентифікатори присутні в лівій таблиці, а не в правій таблиці, ви можете просто скористатися об'єднанням зліва. Різні оптимізації можуть бути виконані в з'єднаннях вуликів залежно від складності. Деякі приклади - перерозподільні з'єднання, реплікація приєднання та напівз'єднання.

Рекомендовані статті

Це посібник з приєднання до вулика. Тут ми обговорюємо такі типи приєднань, як повне з'єднання, внутрішнє з'єднання, ліве з'єднання та праве приєднання у вулику разом із його командою та результатом. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Що таке вулик?
  2. Команди вуликів
  3. Навчання вуликів (2 курси, 5+ проектів)
  4. Apache Pig vs Apache Hive - 12 найкращих корисних відмінностей
  5. Особливості альтернатив вулику
  6. Використання функції ЗАМОВЛЕННЯ В вулику
  7. Топ 6 типів приєднань до MySQL з прикладами

Категорія: