SQL-on-Hadoop: Apache Hive vs Pig

Pig vs Hive, Apache Hive примеры курсы обучение Hadoop SQL SQL-on-Hadoop, обучение дата-инженеров Apache Hive Data Lake, Школа Больших Данных Учебный центр Коммерсант

Хотя Apache Pig сегодня не самый актуальный инструмент для аналитики больших данных в экосистеме Hadoop, дата-инженеру полезно знать его основные принципы работы и ключевые отличия от Hive. Также рассмотрим, чем Hive отличается от Pig в качестве средства SQL-on-Hadoop.

Что такое Apache Pig

Apache Pig – это высокоуровневый процедурный язык для выполнения запросов к данным на платформе Hadoop. Pig упрощает работу с MapReduce, позволяя писать выполнять SQL-подобные запросы к распределенным наборам данных. Будучи изначально разработанным как высокоуровневый процедурный язык потоков данных, Pig дает возможность распараллелить написанные на нем программы. Вместо трудоемкой разработки отдельного MapReduce-приложения можно написать простой скрипт на Pig Latin, который будет автоматически распараллеливаться и распределяться между узлами кластера. Это сильно упрощает работу дата-инженера и разработчика распределенных приложений. Благодаря тому, что Pig Latin поддерживает работу с реляционными операторами, порог входа в технологию становится намного ниже, т.к. SQL знаком почти каждому в мире Big Data и Data Science.

Однако, при том, что Pig Latin похож на SQL, это не одно и то же. В отличие от декларативного SQL, Pig является процедурным языком и содержит намного меньше возможностей оптимизации запросов. Тогда как SQL предназначен для работы со структурированными данными, Pig не имеет жесткой привязки к структуре данных и не требователен к наличию схемы данных.

И, в отличие от MapReduce, программы на Pig не компилируются. Однако, «под капотом» Pig-скрипты все равно связаны с задачами MapReduce: Pig хранит промежуточные данные, сгенерированные задачами MapReduce во временной директории HDFS.

Изначально Pig-скрипты обрабатываются синтаксическим анализатором (парсером), который проверяет синтаксис скрипта, выполняет проверку типов и проводит другие валидации. Результатом парсинга будет DAG (Directed Acyclic Graph), который представляет операторы Pig Latin в виде узлов, а потоки данных в виде ребер. Далее этот направленный ациклический граф передается логическому оптимизатору, который выполняет логические оптимизации. Далее компилятор компилирует оптимизированный логический план в серию заданий MapReduce, которые передаются в Hadoop в отсортированном порядке и выполняются.

Интеграция Hadoop и NoSQL

Код курса
NOSQL
Ближайшая дата курса
20 марта, 2023
Длительность обучения
40 ак.часов
Стоимость обучения
110 000 руб.

Pig в Hadoop имеет два режима выполнения:

  • локальный режим работы на одной JVM и использования локальной файловой системы, что подходит только для анализа небольших наборов данных;
  • режим MapReduce, где запросы, написанные на Pig Latin, переводятся в задания MapReduce и выполняются в кластере Hadoop, что подходит для больших наборов данных.

На практике Pig применяется для быстрого создания прототипов распределенных приложений аналитики больших данных с изменчивой структурой таких как веб-логи. Также Pig может пригодиться в создании поисковых платформ и обработке чувствительных ко времени загрузок данных. Познакомившись с Apache Pig, разберемся, чем это отличается от Hive и его языка запросов HiveQL.

Отличия от Hive

Напомним, Apache Hive – это NoSQL-хранилище класса SQL-on-Hadoop, которое обеспечивает доступ к данным, хранящимся в распределенной файловой системе Hadoop (HDFS) через стандартные SQL-запросы на внутреннем декларативном языке HiveQL. Для подключения пользователей к Hive предоставляется инструмент командной строки и JDBC-драйвер. Как и Pig, Hive вместо написания сложных MapReduce-программ на Java, упрощает обращение к структурированным и полуструктурированным данным. Hive поддерживает DDL и DML-запросы, а также UDF-функции.

Однако, Hive использует SQL-подобные запросы HiveQL, а Pig – процедурный язык потока данных. Чаще всего Hive является инструментов дата-аналитиков и инженеров данных, а на Pig пишут разработчики приложений. Hive немного медленнее, чем Pig, и работает на стороне сервера кластера HDFS. Pig работает на стороне клиента и не поддерживает ODBC/JDBC-драйверы, а также разделы в таблицах и схемы данных.

Узнайте все подробности про администрирование и эксплуатацию Apache Hive и других компонентов экосистемы Hadoop для хранения и аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://ru.bmstu.wiki/Apache_Pig
  2. https://dhavalthakur.medium.com/how-are-hive-and-pig-are-different-9b2c25db9953
  3. https://medium.com/@damonlanglamare26/hive-vs-pig-difference-between-hive-and-pig-pig-vs-hive-hive-and-pig-in-hadoop-6606e853be17

Поиск по сайту