Язык Pig Latin

Содержание

Слайд 3

Hello!

I am PIG
I am working in Yahoo!

Hello! I am PIG I am working in Yahoo!

Слайд 4

Особенности:

язык Pig Latin
Интерактивная консоль
Встроенные функции агрегации
Поддержка пользовательских функций (UDF, User-defined function)
Данные —

Особенности: язык Pig Latin Интерактивная консоль Встроенные функции агрегации Поддержка пользовательских функций
в виде структур (Tuple, Bag)

с текстовыми файлами (можно задать разграничительный символ)
с сжатыми текстовыми файлами (Gzip, Bzip)
имеет огромное количество встроенных функций для работы с: датами, строками, структурами
с математическими функциями
Если всего перечисленного выше не хватило, то можно использовать кастомные функции (jython, java)

Слайд 6

Tuple 

Упорядоченный набор полей. Структура, к полям которой можно обращаться по индексу и/или

Tuple Упорядоченный набор полей. Структура, к полям которой можно обращаться по индексу и/или имени.
имени.

Слайд 8

Bag 

Коллекция (множество) Tuple.

Bag Коллекция (множество) Tuple.

Слайд 10

Базовые функции:

LOAD <путь_файла>
USING PIGSTORAGE (‘<знак_разделения>’)
AS (<колонкa_1> : <тип>, ...);
STORE <название_таблицы>

Базовые функции: LOAD USING PIGSTORAGE (‘ ’) AS ( : , ...);

INTO <путь_файла>;
FOREACH <таблица_1> GENERATE <условия>;
JOIN <таблица_1> BY <параметр>, <таблица_2> BY <параметр>;
GROUP <таблица> BY <параметр>;
FILTER <таблица> BY <параметр>;

Слайд 11

Базовые функции:

UNION <запрос_1>, <запрос_2>;
DISTINCT <таблица>;
ORDER <таблица> BY <параметр> (ASK / DESC);
SPLIT <таблица>

Базовые функции: UNION , ; DISTINCT ; ORDER BY (ASK / DESC);
INTO
<нов_таблица_1> IF <условие>, <нов_таблица_2> IF <условие>;

Слайд 12

Типы данных

Типы данных

Слайд 13

Extract, Transform, Load. (ETL)

Загрузка

Обработка

Сохранение результатов

Extract, Transform, Load. (ETL) Загрузка Обработка Сохранение результатов

Слайд 14

Extract

records = LOAD '/log/flume/events/14-02-20/'
USING PigStorage('\t')
AS (
date:chararray,
clientip:chararray,
clientport:chararray,
proto:chararray,
statuscode:int,
bytes:int,
sq:chararray,
bq:chararray,
request:chararray );

Extract records = LOAD '/log/flume/events/14-02-20/' USING PigStorage('\t') AS ( date:chararray, clientip:chararray, clientport:chararray,

Слайд 15

Transform

count_total = FOREACH (GROUP records ALL) GENERATE COUNT(records);
count_ip = FOREACH (GROUP records

Transform count_total = FOREACH (GROUP records ALL) GENERATE COUNT(records); count_ip = FOREACH
BY clientip) GENERATE group AS ip, COUNT(records) AS cnt;
top_ip = ORDER count_ip BY cnt DESC;

Слайд 16

Load

%declare DT `date +%y%m%dT%H%M` STORE count_total INTO '$DT/count_total'; STORE top_ip INTO '$DT/top_ip';

Load %declare DT `date +%y%m%dT%H%M` STORE count_total INTO '$DT/count_total'; STORE top_ip INTO

STORE top_req INTO '$DT/top_req';

Слайд 17

Pig Механизмы исполнения

Интерактивный режим(оболочка Grunt)
Пакетный режим (скрипт)
Встроенный режим (UDF)

Pig Механизмы исполнения Интерактивный режим(оболочка Grunt) Пакетный режим (скрипт) Встроенный режим (UDF)

Слайд 18

Операторы диагностики

Операторы диагностики

Слайд 19

Процедурный подход.
Формирование MapReduce.
Интерактивность.
Быстрота разработки.

Процедурный подход. Формирование MapReduce. Интерактивность. Быстрота разработки.

Слайд 20

Не всё укладывается в Pig
Pig Latin более сложен
Для UDF используется Java

Не всё укладывается в Pig Pig Latin более сложен Для UDF используется Java