Різниця між свинею Apache і вуликом Apache

Історія Apache Pig починається в 2006 році, коли дослідник, як Yahoo, боровся з кодами Java MapReduce. Повторно використовувати та підтримувати код для компіляції було важко. У той же час вони зауважили, що користувачі MapReduce не зручні з декларативними мовами, такими як SQL. Вони почали працювати над новою мовою, яка повинна була вписатись у солодке місце між декларативним стилем SQL, низьким рівнем та процедурним стилем MapReduce. Це призвело до народження Pig, а перший реліз Pig відбувся у вересні 2008 року, а до кінця 2009 року близько половини робочих місць у Yahoo були роботами зі свиней.

Історія Apache Hive починається в 2007 році, коли програмістам, що не стосуються Java, доводиться боротися, використовуючи Hadoop MapReduce. Для роботи над кластером Hadoop перед ІТ-професіоналом з базових даних зіткнулися з проблемами. Спочатку дослідники, що працюють у Facebook, придумали мову Hive. Ця мова була дуже схожа на мову SQL. Тож мова отримала назву Hive Query Language (HQL), і згодом вона стає проектом спільноти Apache з відкритим кодом. Після того як стати проектом спільноти Apache, відбувся великий розвиток у вулику Apache. Facebook був першою компанією, яка створила Apache Hive.

Дозвольте мені пояснити про Apache Pig vs Apache Hive більш детально.

Представляємо Apache Pig vs Apache Hive

Apache Pig - це платформа для аналізу великих наборів даних, що складається з мови високого рівня для вираження програм аналізу даних, а також з інфраструктурою для оцінки цих програм. Apache - це проект з відкритим кодом спільноти Apache. Apache Pig надає просту мову під назвою Pig Latin, для запитів та обробки даних.

Pig використовується такими компаніями, як Yahoo, Google і Microsoft для збору величезної кількості наборів даних у вигляді потоків кліків, журналів пошуку та сканування веб-сторінок.

  • Apache Pig надає вкладені типи даних, як-от "Карти", "кортежі" та "Мішки"
  • Apache Pig Дотримується багатозапитного підходу, щоб уникнути багаторазового сканування наборів даних.
  • Програмісти, знайомі з мовою сценаріїв, віддають перевагу Apache Pig
  • Свиня легко, якщо ви добре знаєте SQL
  • Не потрібно створювати схеми для роботи над Apache Pig
  • Pig також забезпечує підтримку основних операцій з передачею даних, таких як Замовлення, Фільтри та Приєднання
  • Рамка Apache Pig переводить латинську мову Pig у послідовності програм MapReduce

Програмне забезпечення для зберігання даних Apache Hive полегшує читання, запис та керування великими наборами даних, що перебувають у розподіленому сховищі за допомогою SQL. Apache Hive - це проект з відкритим кодом Apache, побудований на вершині Hadoop для запитів, узагальнення та аналізу великих наборів даних за допомогою інтерфейсу, подібного SQL. Apeche вулик забезпечує SQL-подібний мову під назвою HiveQL, який прозоро перетворює запити в MapReduce для виконання на великих наборах даних, що зберігаються в розподіленій файловій системі Hadoop (HDFS).

  • Apache Hive - це інфраструктура сховища даних.
  • Apache Hive - це інструмент ETL (екстракція-трансформація-завантаження)
  • Вулик Apache схожий на SQL
  • Apache Hive дозволяє налаштувати картографи та редуктори
  • Apache Hive збільшує гнучкість конструкції схеми за допомогою серіалізації даних та дезаріалізації
  • Вулик з апачем - це аналітичний інструмент

Порівняння порівняння між Apache Pig і Apache Hive (Інфографіка):

Основні відмінності між Apache Pig і Apache Hive:

  • Apache Pig швидше порівняно з Apache Hive
  • Apache Pig і Apache Hive працює на вершині Hadoop MapReduce
  • Apache Pig найкраще для структурованих та напівструктурованих, тоді як Apache Hive найкраще для структурованих даних
  • Apache Pig - це процедурна мова, тоді як Apeche Hive - декларативна мова
  • Apache Pig підтримує функцію cogroup для зовнішніх приєднань, поки Apache Hive не підтримує
  • Apache Pig не має заздалегідь визначеної бази даних для зберігання таблиці / схеми, тоді як Apache Hive має заздалегідь визначені таблиці / схему і зберігає її інформацію в базі даних.
  • Apache Pig також підходить для складної та вкладеної структури даних, тоді як Apache Hive менш підходить для складних даних
  • Дослідники та програмісти використовують свиню Apache, тоді як аналітики даних використовують Apeche Hive
Коли використовувати Apache Pig:
  • Коли ви програміст і знаєте мову сценаріїв
  • Коли ви не хочете створювати схему під час завантаження
  • Вимоги ETL
  • Коли ви працюєте на стороні клієнта кластеру Hadoop
  • Під час роботи над форматом файлів Avro Hadoop
Коли користуватися Apache Hive:
  • Вимоги до зберігання даних
  • Аналітичні запити історичних даних
  • Аналіз даних, які знайомі з SQL
  • Працюючи над структурованими даними
  • За даними аналітиків даних
  • Для візуалізації та створення звітів

Таблиця порівняння Apache Pig vs Apache Hive

Я обговорюю основні артефакти і розрізняю свиню Apache і Apache вулик.

Свиня АпачApache вулик
Обробка данихApache Pig - мова потоку даних високого рівняApache Hive використовується для пакетної обробки, тобто Інтернет-аналітичної обробки (OLAP)
Швидкість обробкиApache Pig має більш високу затримку через виконання завдання MapReduce у фоновому режиміApache Hive також має більш високу затримку через виконання завдання MapReduce у фоновому режимі
Сумісність з HadoopApache Pig працює над MapReduceApache вулик також працює над MapReduce
ВизначенняApache Pig - це система відкритого джерела потоку даних з відкритим кодом, яка дає вам просту мовну платформу, відому як латинська свиня, яка може бути використана для маніпулювання даними та запитами.Apache Hive є відкритим кодом і схожий на SQL, що використовується для аналітичних запитів
Використовувана моваApache Pig використовує процедурну мову потоку даних під назвою Pig LatinApache Hive використовує декларативну мову під назвою HiveQL
СхемаApache Pig не має поняття схеми. Ви можете зберігати дані в псевдонімі.Apeche вулик підтримує схему для вставки даних у таблиці
Веб-інтерфейсApache Pig не підтримує веб-інтерфейсApache Hive підтримує веб-інтерфейс
ОпераціїApache Pig використовується для структурованих та напівструктурованих данихApache Hive використовується для структурованих даних.
Специфікація користувачаСвиня Apache використовується дослідниками та програмістамиApache Hive використовується Data Analyst
Діє увімкненоApache Pig працює на клієнтській стороні кластераApache вулик працює на сервері кластера
Методи розділенняУ свині Apache немає поняття про розділApache Hive підтримує функції Sharding
Формат файлуApache Pig підтримує формат файлу AvroApache вулик безпосередньо не підтримує формат Avro, але може підтримувати, використовуючи "org.apache.hadoop.hive.serde2.avro"
JDBC / ODBCApache Pig не підтримуєApache вулик підтримує, але обмежено
НалагодженняНалагоджувати сценарії Pig легкоМи можемо налагоджувати, але це трохи складно

Висновок - між Apache Pig і Apache Hive:

Обидва Apache Pig і Apache Hive обидва використовуються на скупченні Hadoop. І Apache Pig, і Apache Hive є потужним інструментом для аналізу даних та ETL. Свиня Apache і Apache Hive в основному використовуються у виробничих умовах. Користувачеві необхідно вибрати інструмент на основі типів даних та очікуваного виводу. Обидва інструменти забезпечують унікальний спосіб аналізу великих даних про кластер Hadoop. На підставі вище обговореного користувач може вибирати між Apache Pig та Apache Hive відповідно до своїх вимог.

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

Це був посібник щодо Apache Pig vs Apache вулик, їх значення, порівняння «голова до голови», ключові відмінності, таблиця порівняння та висновок. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Питання для інтерв'ю розробника Hadoop
  2. Хадоп проти вулика
  3. Як зламати інтерв'ю розробника Hadoop?
  4. Apache Hive проти Apache HBase
  5. Apache Hadoop проти Apache Spark

Категорія: