Apache Pig — это абстракция над MapReduce. Это инструмент / платформа, которая используется для анализа больших наборов данных, представляющих их как потоки данных. Свинья обычно используется с Hadoop ; мы можем выполнять все операции с данными в Hadoop, используя Apache Pig.
Для написания программ анализа данных Pig предоставляет язык высокого уровня, известный как Pig Latin . Этот язык предоставляет различные операторы, с помощью которых программисты могут разрабатывать свои собственные функции для чтения, записи и обработки данных.
Чтобы анализировать данные с помощью Apache Pig , программистам необходимо писать сценарии на языке Pig Latin. Все эти скрипты внутренне преобразованы в задачи Map и Reduce. Apache Pig имеет компонент, известный как Pig Engine, который принимает латинские сценарии Pig в качестве входных данных и преобразует эти сценарии в задания MapReduce.
Зачем нам Apache Pig?
Программисты, которые не очень хороши в Java, обычно борются с работой с Hadoop, особенно при выполнении любых задач MapReduce. Apache Pig — благо для всех таких программистов.
-
Используя Pig Latin , программисты могут легко выполнять задачи MapReduce, не вводя сложные коды в Java.
-
Apache Pig использует подход с несколькими запросами , тем самым сокращая длину кодов. Например, операцию, которая потребует от вас ввода 200 строк кода (LoC) в Java, можно легко выполнить, введя всего лишь 10 LoC в Apache Pig. В конечном итоге Apache Pig сокращает время разработки почти в 16 раз.
-
Pig Latin — это SQL-подобный язык, и Apache Pig легко освоить, если вы знакомы с SQL.
-
Apache Pig предоставляет множество встроенных операторов для поддержки операций с данными, таких как объединения, фильтры, упорядочение и т. Д. Кроме того, он также предоставляет вложенные типы данных, такие как кортежи, сумки и карты, которые отсутствуют в MapReduce.
Используя Pig Latin , программисты могут легко выполнять задачи MapReduce, не вводя сложные коды в Java.
Apache Pig использует подход с несколькими запросами , тем самым сокращая длину кодов. Например, операцию, которая потребует от вас ввода 200 строк кода (LoC) в Java, можно легко выполнить, введя всего лишь 10 LoC в Apache Pig. В конечном итоге Apache Pig сокращает время разработки почти в 16 раз.
Pig Latin — это SQL-подобный язык, и Apache Pig легко освоить, если вы знакомы с SQL.
Apache Pig предоставляет множество встроенных операторов для поддержки операций с данными, таких как объединения, фильтры, упорядочение и т. Д. Кроме того, он также предоставляет вложенные типы данных, такие как кортежи, сумки и карты, которые отсутствуют в MapReduce.
Особенности Свиньи
Apache Pig поставляется со следующими функциями —
-
Богатый набор операторов — предоставляет множество операторов для выполнения таких операций, как объединение, сортировка, фильтрация и т. Д.
-
Простота программирования — Pig Latin похож на SQL, и его легко написать, если вы хорошо разбираетесь в SQL.
-
Возможности оптимизации — задачи в Apache Pig автоматически оптимизируют их выполнение, поэтому программистам необходимо сосредоточиться только на семантике языка.
-
Расширяемость — Используя существующие операторы, пользователи могут разрабатывать свои собственные функции для чтения, обработки и записи данных.
-
UDF’s — Pig предоставляет возможность создавать пользовательские функции на других языках программирования, таких как Java, а также вызывать или встраивать их в сценарии Pig.
-
Обрабатывает все виды данных — Apache Pig анализирует все виды данных, как структурированных, так и неструктурированных. Он сохраняет результаты в HDFS.
Богатый набор операторов — предоставляет множество операторов для выполнения таких операций, как объединение, сортировка, фильтрация и т. Д.
Простота программирования — Pig Latin похож на SQL, и его легко написать, если вы хорошо разбираетесь в SQL.
Возможности оптимизации — задачи в Apache Pig автоматически оптимизируют их выполнение, поэтому программистам необходимо сосредоточиться только на семантике языка.
Расширяемость — Используя существующие операторы, пользователи могут разрабатывать свои собственные функции для чтения, обработки и записи данных.
UDF’s — Pig предоставляет возможность создавать пользовательские функции на других языках программирования, таких как Java, а также вызывать или встраивать их в сценарии Pig.
Обрабатывает все виды данных — Apache Pig анализирует все виды данных, как структурированных, так и неструктурированных. Он сохраняет результаты в HDFS.
Apache Pig Vs MapReduce
Ниже перечислены основные различия между Apache Pig и MapReduce.
Apache Pig | Уменьшение карты |
---|---|
Apache Pig — это язык потоков данных. | MapReduce — это парадигма обработки данных. |
Это язык высокого уровня. | MapReduce низкоуровневый и жесткий. |
Выполнить операцию соединения в Apache Pig довольно просто. | В MapReduce довольно сложно выполнить операцию соединения между наборами данных. |
Любой начинающий программист с базовыми знаниями SQL может удобно работать с Apache Pig. | Экспозиция на Java должна работать с MapReduce. |
Apache Pig использует подход с несколькими запросами, тем самым значительно сокращая длину кодов. | MapReduce потребует почти в 20 раз больше количества строк для выполнения той же задачи. |
Нет необходимости в компиляции. При выполнении каждый оператор Apache Pig внутренне преобразуется в задание MapReduce. | Задания MapReduce имеют длительный процесс компиляции. |
Apache Pig Vs SQL
Ниже перечислены основные различия между Apache Pig и SQL.
свинья | SQL |
---|---|
Свинья латынь является процедурным языком. | SQL является декларативным языком. |
В Apache Pig схема является необязательной. Мы можем хранить данные без разработки схемы (значения хранятся как $ 01, $ 02 и т. Д.) | Схема обязательна в SQL. |
Модель данных в Apache Pig является вложенной реляционной . | Модель данных, используемая в SQL, является плоской реляционной . |
Apache Pig предоставляет ограниченные возможности для оптимизации запросов . | Существует больше возможностей для оптимизации запросов в SQL. |
В дополнение к вышеуказанным различиям, Apache Pig Latin —
- Позволяет расколы в конвейере.
- Позволяет разработчикам хранить данные в любом месте конвейера.
- Объявляет планы выполнения.
- Предоставляет операторы для выполнения функций ETL (извлечение, преобразование и загрузка).
Apache Pig Vs Hive
Apache Pig и Hive используются для создания рабочих мест MapReduce. А в некоторых случаях Hive работает с HDFS аналогично Apache Pig. В следующей таблице мы перечислили несколько важных моментов, которые отличают Apache Pig от Hive.
Apache Pig | улей |
---|---|
Apache Pig использует язык Pig Latin . Первоначально он был создан в Yahoo . | Hive использует язык HiveQL . Первоначально он был создан на Facebook . |
Pig Latin — это язык потоков данных. | HiveQL — это язык обработки запросов. |
Свинья латынь является процедурным языком, и она соответствует парадигме конвейера. | HiveQL — декларативный язык. |
Apache Pig может обрабатывать структурированные, неструктурированные и полуструктурированные данные. | Улей в основном для структурированных данных. |
Приложения Apache Pig
Apache Pig обычно используется исследователями данных для выполнения задач, включающих специальную обработку и быстрое создание прототипов. Apache Pig используется —
- Для обработки огромных источников данных, таких как веб-журналы.
- Выполнить обработку данных для поисковых платформ.
- Для обработки чувствительных ко времени загрузок данных.
Apache Pig — История
В 2006 году Apache Pig был разработан в качестве исследовательского проекта в Yahoo, особенно для создания и выполнения заданий MapReduce для каждого набора данных. В 2007 году Apache Pig был открыт с помощью инкубатора Apache. В 2008 году вышел первый выпуск Apache Pig. В 2010 году Apache Pig получил высшее образование в качестве проекта Apache.