Разница между Apache Pig и Apache Hive
История Apache Pig начинается в 2006 году, когда исследователь из Yahoo боролся с Java-кодами MapReduce. Было сложно повторно использовать и поддерживать код для компиляции. В то же время они заметили, что пользователям MapReduce не нравятся декларативные языки, такие как SQL. Они начали работать над новым языком, который должен был находиться в хорошем месте между декларативным стилем SQL, низкоуровневым и процедурным стилем MapReduce. Это привело к рождению Pig, и первый выпуск Pig был выпущен в сентябре 2008 года, и к концу 2009 года около половины рабочих мест в Yahoo были рабочими местами для Pig.
История Apache Hive начинается в 2007 году, когда программистам, не являющимся Java, приходится бороться за использование Hadoop MapReduce. ИТ-специалисты из базы данных сталкивались с проблемами при работе в кластере Hadoop. Изначально исследователи, работающие в Facebook, придумали язык Hive. Этот язык был очень похож на язык SQL. Так язык стал называться Hive Query Language (HQL) и позже он стал проектом Apache Community с открытым исходным кодом. После того, как проект Apache Community стал проектом, в Apache Hive произошла крупная разработка. Facebook был первой компанией, которая разработала Apache Hive.
Позвольте мне подробнее рассказать об Apache Pig против Apache Hive.
Представляем Apache Pig против Apache Hive
Apache Pig - это платформа для анализа больших наборов данных, состоящая из языка высокого уровня для выражения программ анализа данных в сочетании с инфраструктурой для оценки этих программ. Apache - это проект сообщества Apache с открытым исходным кодом. Apache Pig предоставляет простой язык Pig Latin для запросов и манипулирования данными.
Свинья используется такими компаниями, как Yahoo, Google и Microsoft, для сбора огромного количества наборов данных в виде потоков кликов, журналов поиска и веб-сканирований.
- Apache Pig предоставляет вложенные типы данных, такие как Карты, Кортежи и Сумки
- Apache Pig Использует подход с несколькими запросами, чтобы избежать многократного сканирования наборов данных.
- Программисты, знакомые с языком сценариев, предпочитают Apache Pig
- Свинья легко, если вы хорошо знаете SQL
- Нет необходимости создавать схему для работы на Apache Pig
- Pig также обеспечивает поддержку основных операций с данными, таких как упорядочение, фильтры и объединения
- Платформа Apache Pig переводит Pig Latin в последовательности программ MapReduce
Программное обеспечение Apache Hive для хранения данных облегчает чтение, запись и управление большими наборами данных, размещенными в распределенном хранилище, с использованием SQL. Apache Hive - это проект с открытым исходным кодом Apache, созданный на основе Hadoop, для запроса, обобщения и анализа больших наборов данных с использованием SQL-подобного интерфейса. Apache Hive предоставляет SQL-подобный язык, называемый HiveQL, который прозрачно преобразует запросы в MapReduce для выполнения в больших наборах данных, хранящихся в распределенной файловой системе Hadoop (HDFS).
- Apache Hive - это инфраструктура хранилища данных.
- Apache Hive - инструмент ETL (извлечение-преобразование-загрузка)
- Apache Hive похож на SQL
- Apache Hive позволяет настраивать картографы и редукторы
- 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 - это процедурный язык, а Apache Hive - декларативный язык
- Apache Pig поддерживает функцию cogroup для внешних объединений, в то время как Apache Hive не поддерживает
- Apache Pig не имеет предварительно определенной базы данных для хранения таблицы / схемы, в то время как Apache Hive имеет предварительно определенные таблицы / схемы и хранит свою информацию в базе данных.
- Apache Pig также подходит для сложной и вложенной структуры данных, в то время как Apache Hive менее подходит для сложных данных
- Исследователи и программисты используют Apache pig, а аналитики данных используют Apache Hive
Когда использовать Apache Pig:
- Когда вы программист и знаете язык сценариев
- Когда вы не хотите создавать схему во время загрузки
- Требования ETL
- Когда вы работаете на стороне клиента кластера Hadoop
- Когда вы работаете с форматом файлов Avro Hadoop
Когда использовать Apache Hive:
- Требования к хранилищу данных
- Аналитические запросы исторических данных
- Анализ данных, которые знакомы с SQL
- Работая на структурированных данных
- Аналитики данных
- Для визуализации и создания отчетов
Apache Pig и Apache Hive Сравнительная таблица
Я обсуждаю основные артефакты и различаю Apache Pig и Apache Hive.
Apache Pig | Apache Hive | |
Обработка данных | Apache Pig - это язык потоков данных высокого уровня | Apache Hive используется для пакетной обработки, то есть для интерактивной аналитической обработки (OLAP). |
Скорость обработки | Apache Pig имеет большую задержку из-за выполнения задания MapReduce в фоновом режиме | Apache Hive также имеет большую задержку из-за выполнения задания MapReduce в фоновом режиме |
Совместимость с Hadoop | Apache Pig работает поверх MapReduce | Apache Hive также работает поверх MapReduce |
Определение | Apache Pig - это высокоуровневая система потоков данных с открытым исходным кодом, предоставляющая простую языковую платформу, известную как Pig Latin, которая может использоваться для манипулирования данными и запросами. | Apache Hive с открытым исходным кодом и похож на SQL, используемый для аналитических запросов |
Используемый язык | Apache Pig использует процедурный язык потоков данных, который называется Pig Latin | Apache Hive использует декларативный язык HiveQL |
схема | Apache Pig не имеет понятия схемы. Вы можете хранить данные в псевдониме. | Улей Apache поддерживает схему для вставки данных в таблицы |
Веб интерфейс | Apache Pig не поддерживает веб-интерфейс | Apache Hive поддерживает веб-интерфейс |
операции | Apache Pig используется для структурированных и полуструктурированных данных | Apache Hive используется для структурированных данных. |
Пользовательская Спецификация | Apache Pig используется исследователями и программистами | Apache Hive используется Data Analyst |
Работает на | Apache Pig работает на клиентской стороне кластера | Apache Hive работает на стороне сервера кластера |
Методы разделов | В Apache Pig отсутствует понятие раздела | Apache Hive поддерживает функции шардинга |
Формат файла | Apache Pig поддерживает формат файла Avro | Apache hive напрямую не поддерживает формат Avro, но может поддерживать использование «org.apache.hadoop.hive.serde2.avro» |
JDBC / ODBC | Apache Pig не поддерживает | Apache Hive поддерживает, но ограничен |
Отладка | Легко отлаживать Pig-скрипты | Мы можем отладить, но это немного сложно |
Вывод - между Apache Pig и Apache Hive:
Apache Pig и Apache Hive, оба обычно используются в кластере Hadoop. Apache Pig и Apache Hive - это мощный инструмент для анализа данных и ETL. Apache Pig и Apache Hive в основном используются в производственной среде. Пользователь должен выбрать инструмент на основе типов данных и ожидаемого результата. Оба инструмента предоставляют уникальный способ анализа больших данных в кластере Hadoop. Исходя из вышеизложенного, пользователь может выбирать между Apache Pig и Apache Hive для своих требований.
Рекомендуемая статья
Это было руководство по Apache Pig против Apache Hive, их значению, сравнению «голова к голове», ключевым отличиям, сравнительной таблице и выводам. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- Интервью с разработчиком Hadoop
- Hadoop vs Hive
- Как взломать интервью с разработчиком Hadoop?
- Apache Hive против Apache HBase
- Apache Hadoop против Apache Spark