Учебники

Apache Pig — Обзор

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.