SlideShare a Scribd company logo
1 of 143
Download to read offline
Архитектура
HAWQ
Грищенко Алексей
Кто я?
Enterprise Architect @ Pivotal
•  7 лет в задачах обработки данных
•  5 лет с MPP-системами
•  4 года с Hadoop
•  HAWQ - с первой beta
•  Отвечаю за архитектуру всех внедрений HAWQ и
Greenplum в EMEA
•  Spark contributor
•  http://0x0fff.com
О чем расскажу?
•  Что такое HAWQ
О чем расскажу?
•  Что такое HAWQ
•  Зачем он нужен
О чем расскажу?
•  Что такое HAWQ
•  Зачем он нужен
•  Из каких компонент он состоит
О чем расскажу?
•  Что такое HAWQ
•  Зачем он нужен
•  Из каких компонент он состоит
•  Как он работает
О чем расскажу?
•  Что такое HAWQ
•  Зачем он нужен
•  Из каких компонент он состоит
•  Как он работает
•  Пример выполнения запроса
О чем расскажу?
•  Что такое HAWQ
•  Зачем он нужен
•  Из каких компонент он состоит
•  Как он работает
•  Пример выполнения запроса
•  Альтернативные решения
Что такое
•  Аналитический движок SQL-on-Hadoop
Что такое
•  Аналитический движок SQL-on-Hadoop
•  HAdoop With Queries
Что такое
•  Аналитический движок SQL-on-Hadoop
•  HAdoop With Queries
Postgres Greenplum HAWQ
2005
Fork
Postgres 8.0.2
Что такое
•  Аналитический движок SQL-on-Hadoop
•  HAdoop With Queries
Postgres Greenplum HAWQ
2005
Fork
Postgres 8.0.2
2009
Rebase
Postgres 8.2.15
Что такое
•  Аналитический движок SQL-on-Hadoop
•  HAdoop With Queries
Postgres Greenplum HAWQ
2005
Fork
Postgres 8.0.2
2009
Rebase
Postgres 8.2.15
2011 Fork
GPDB 4.2.0.0
Что такое
•  Аналитический движок SQL-on-Hadoop
•  HAdoop With Queries
Postgres Greenplum HAWQ
2005
Fork
Postgres 8.0.2
2009
Rebase
Postgres 8.2.15
2011 Fork
GPDB 4.2.0.0
2013
HAWQ 1.0.0.0
Что такое
•  Аналитический движок SQL-on-Hadoop
•  HAdoop With Queries
Postgres Greenplum HAWQ
2005
Fork
Postgres 8.0.2
2009
Rebase
Postgres 8.2.15
2011 Fork
GPDB 4.2.0.0
2013
HAWQ 1.0.0.0
HAWQ 2.0.0.0
Open Source
2015
HAWQ – это …
•  1’500’000 строк кода C и C++
HAWQ – это …
•  1’500’000 строк кода C и C++
–  Из которых 200’000 только в заголовочных файлах
HAWQ – это …
•  1’500’000 строк кода C и C++
–  Из которых 200’000 только в заголовочных файлах
•  180’000 строк кода Python
HAWQ – это …
•  1’500’000 строк кода C и C++
–  Из которых 200’000 только в заголовочных файлах
•  180’000 строк кода Python
•  60’000 строк кода Java
HAWQ – это …
•  1’500’000 строк кода C и C++
–  Из которых 200’000 только в заголовочных файлах
•  180’000 строк кода Python
•  60’000 строк кода Java
•  23’000 строк Makefile’ов
HAWQ – это …
•  1’500’000 строк кода C и C++
–  Из которых 200’000 только в заголовочных файлах
•  180’000 строк кода Python
•  60’000 строк кода Java
•  23’000 строк Makefile’ов
•  7’000 строк shell-скриптов
HAWQ – это …
•  1’500’000 строк кода C и C++
–  Из которых 200’000 только в заголовочных файлах
•  180’000 строк кода Python
•  60’000 строк кода Java
•  23’000 строк Makefile’ов
•  7’000 строк shell-скриптов
•  Более 50 корпоративных клиентов
HAWQ – это …
•  1’500’000 строк кода C и C++
–  Из которых 200’000 только в заголовочных файлах
•  180’000 строк кода Python
•  60’000 строк кода Java
•  23’000 строк Makefile’ов
•  7’000 строк shell-скриптов
•  Более 50 корпоративных клиентов
–  Из них более 10 в EMEA
Apache HAWQ
•  Apache HAWQ (incubating) с 09’2015
–  http://hawq.incubator.apache.org
–  https://github.com/apache/incubator-hawq
•  Что находится в Open Source
–  Исходники версии HAWQ 2.0 альфа
–  Релиз HAWQ 2.0 бэта до конца 2015 года
–  Релиз HAWQ 2.0 GA в начале 2016
•  Сообщество еще только зарождается –
присоединяйтесь!
Зачем он нужен?
Зачем он нужен?
•  Универсальный SQL-интерфейс к данным
Hadoop для BI с ANSI SQL-92, -99, -2003
Зачем он нужен?
•  Универсальный SQL-интерфейс к данным
Hadoop для BI с ANSI SQL-92, -99, -2003
–  Пример из практики – запрос Cognos на 5000
строк с множеством оконных функций
Зачем он нужен?
•  Универсальный SQL-интерфейс к данным
Hadoop для BI с ANSI SQL-92, -99, -2003
–  Пример из практики – запрос Cognos на 5000
строк с множеством оконных функций
•  Универсальный инструмент для ad hoc
аналитики
Зачем он нужен?
•  Универсальный SQL-интерфейс к данным
Hadoop для BI с ANSI SQL-92, -99, -2003
–  Пример из практики – запрос Cognos на 5000
строк с множеством оконных функций
•  Универсальный инструмент для ad hoc
аналитики
–  Пример из практики – распарсить URL,
выдернув из него имя хоста и протокол
Зачем он нужен?
•  Универсальный SQL-интерфейс к данным
Hadoop для BI с ANSI SQL-92, -99, -2003
–  Пример из практики – запрос Cognos на 5000
строк с множеством оконных функций
•  Универсальный инструмент для ad hoc
аналитики
–  Пример из практики – распарсить URL,
выдернув из него имя хоста и протокол
•  Хорошая производительность
Зачем он нужен?
•  Универсальный SQL-интерфейс к данным
Hadoop для BI с ANSI SQL-92, -99, -2003
–  Пример из практики – запрос Cognos на 5000
строк с множеством оконных функций
•  Универсальный инструмент для ad hoc
аналитики
–  Пример из практики – распарсить URL,
выдернув из него имя хоста и протокол
•  Хорошая производительность
–  Сколько раз данные будут скинуты на HDD для
выполнения SQL-запроса в Hive?
Кластер с HAWQ
Сервер	1	
SNameNode	
Сервер	4	
ZK	 JM	
NameNode	
Сервер	3	
ZK	 JM	
Сервер	2	
ZK	 JM	
Сервер	6	
Datanode	
Сервер	N	
Datanode	
Сервер	5	
Datanode	
interconnect
…
Кластер с HAWQ
Сервер	1	
SNameNode	
Сервер	4	
ZK	 JM	
NameNode	
Сервер	3	
ZK	 JM	
Сервер	2	
ZK	 JM	
Сервер	6	
Datanode	
Сервер	N	
Datanode	
Сервер	5	
Datanode	
YARN	NM	 YARN	NM	 YARN	NM	
YARN	RM	
YARN	App	
Timeline	
interconnect
…
Кластер с HAWQ
HAWQ	Master	
Сервер	1	
SNameNode	
Сервер	4	
ZK	 JM	
NameNode	
Сервер	3	
ZK	 JM	
HAWQ	
Standby	
Сервер	2	
ZK	 JM	
HAWQ	Segment	
Сервер	6	
Datanode	
HAWQ	Segment	
Сервер	N	
Datanode	
HAWQ	Segment	
Сервер	5	
Datanode	
YARN	NM	 YARN	NM	 YARN	NM	
YARN	RM	
YARN	App	
Timeline	
interconnect
…
Мастер Сервера
Сервер	1	
SNameNode	
Сервер	4	
ZK	 JM	
NameNode	
Сервер	3	
ZK	 JM	
Сервер	2	
ZK	 JM	
HAWQ	Segment	
Сервер	6	
Datanode	
HAWQ	Segment	
Сервер	N	
Datanode	
HAWQ	Segment	
Сервер	5	
Datanode	
YARN	NM	 YARN	NM	 YARN	NM	
YARN	RM	
YARN	App	
Timeline	
interconnect
…	
HAWQ	Master	
HAWQ	
Standby
Мастер Сервера
HAWQ	Master	
Парсер	
запросов	
Оптимизатор	
запросов	
Глобальный	
менеджер	
ресурсов	
Менеджер	
транзакций	
Диспетчер	
процессов	
Каталог	
метаданных	
HAWQ	Standby	Master	
Парсер	
запросов	
Оптимизатор	
запросов	
Глобальный	
менеджер	
ресурсов	
Менеджер	
транзакций	
Диспетчер	
процессов	
Каталог	
метаданных	
WAL	
репл.
HAWQ	Master	
HAWQ	
Standby	
Сегменты
Сервер	1	
SNameNode	
Сервер	4	
ZK	 JM	
NameNode	
Сервер	3	
ZK	 JM	
Сервер	2	
ZK	 JM	
Сервер	6	
Datanode	
Сервер	N	
Datanode	
Сервер	5	
Datanode	
YARN	NM	 YARN	NM	 YARN	NM	
YARN	RM	
YARN	App	
Timeline	
interconnect
HAWQ	Segment	 HAWQ	Segment	HAWQ	Segment	 …
Сегменты
HAWQ	Segment	
Движок	выполнения	
запросов	
libhdfs3	
Расширения	PXF	
HDFS	Datanode	
Локальная	ФС	
Директория	для	
временных	данных	
Логи	
YARN	Node	Manager
Метаданные
•  Структура аналогична структуре каталога
Postgres
Метаданные
•  Структура аналогична структуре каталога
Postgres
•  Статистика
Метаданные
•  Структура аналогична структуре каталога
Postgres
•  Статистика
–  Количество записей и страниц в таблице
Метаданные
•  Структура аналогична структуре каталога
Postgres
•  Статистика
–  Количество записей и страниц в таблице
–  Наиболее частые значения для каждого поля
Метаданные
•  Структура аналогична структуре каталога
Postgres
•  Статистика
–  Количество записей и страниц в таблице
–  Наиболее частые значения для каждого поля
–  Гистограмма для каждого числового поля
Метаданные
•  Структура аналогична структуре каталога
Postgres
•  Статистика
–  Количество записей и страниц в таблице
–  Наиболее частые значения для каждого поля
–  Гистограмма для каждого числового поля
–  Количество уникальных значений в поле
Метаданные
•  Структура аналогична структуре каталога
Postgres
•  Статистика
–  Количество записей и страниц в таблице
–  Наиболее частые значения для каждого поля
–  Гистограмма для каждого числового поля
–  Количество уникальных значений в поле
–  Количество null значений в поле
Метаданные
•  Структура аналогична структуре каталога
Postgres
•  Статистика
–  Количество записей и страниц в таблице
–  Наиболее частые значения для каждого поля
–  Гистограмма для каждого числового поля
–  Количество уникальных значений в поле
–  Количество null значений в поле
–  Средний размер значения поля в байтах
Статистика
Без статистики
Join двух таблиц, сколько записей в результате?
Статистика
Без статистики
Join двух таблиц, сколько записей в результате?
ü  От 0 до бесконечности
Статистика
Без статистики
Количество строк
Join двух таблиц, сколько записей в результате?
ü  От 0 до бесконечности
Join двух таблиц по 1000 записей в каждой, сколько
записей в результате?
Статистика
Без статистики
Количество строк
Join двух таблиц, сколько записей в результате?
ü  От 0 до бесконечности
Join двух таблиц по 1000 записей в каждой, сколько
записей в результате?
ü  От 0 до 1’000’000
Статистика
Без статистики
Количество строк
Гистограммы и MCV
Join двух таблиц, сколько записей в результате?
ü  От 0 до бесконечности
Join двух таблиц по 1000 записей в каждой, сколько
записей в результате?
ü  От 0 до 1’000’000
Join двух таблиц по 1000 записей в каждой, с известной
кардинальностью, гистограммой распределения,
наиболее частыми значениями, количеством null?
Статистика
Без статистики
Количество строк
Гистограммы и MCV
Join двух таблиц, сколько записей в результате?
ü  От 0 до бесконечности
Join двух таблиц по 1000 записей в каждой, сколько
записей в результате?
ü  От 0 до 1’000’000
Join двух таблиц по 1000 записей в каждой, с известной
кардинальностью, гистограммой распределения,
наиболее частыми значениями, количеством null?
ü  ~ От 500 до 1’500
Метаданные
•  Информация о структуре таблицы
ID	 Name	 Num	 Price	
1	 Яблоко 		 10	 50	
2	 Груша 		 20	 80	
3	 Банан 		 40	 40	
4	 Апельсин 		 25	 50	
5	 Киви 		 5	 120	
6	 Арбуз 		 20	 30	
7	 Дыня 		 40	 100	
8	 Ананас 		 35	 90
Метаданные
•  Информация о структуре таблицы
–  Поля распределения
ID	 Name	 Num	 Price	
1	 Яблоко 		 10	 50	
2	 Груша 		 20	 80	
3	 Банан 		 40	 40	
4	 Апельсин 		 25	 50	
5	 Киви 		 5	 120	
6	 Арбуз 		 20	 30	
7	 Дыня 		 40	 100	
8	 Ананас 		 35	 90	
hash(ID)
Метаданные
•  Информация о структуре таблицы
–  Поля распределения
–  Количество hash bucket распределения
ID	 Name	 Num	 Price	
1	 Яблоко 		 10	 50	
2	 Груша 		 20	 80	
3	 Банан 		 40	 40	
4	 Апельсин 		 25	 50	
5	 Киви 		 5	 120	
6	 Арбуз 		 20	 30	
7	 Дыня 		 40	 100	
8	 Ананас 		 35	 90	
hash(ID)
ID	 Name	 Num	 Price	
1	 Яблоко 		 10	 50	
2	 Груша 		 20	 80	
3	 Банан 		 40	 40	
4	 Апельсин 		 25	 50	
5	 Киви 		 5	 120	
6	 Арбуз 		 20	 30	
7	 Дыня 		 40	 100	
8	 Ананас 		 35	 90
Метаданные
•  Информация о структуре таблицы
–  Поля распределения
–  Количество hash bucket распределения
–  Партиционирование (hash, list, range)
ID	 Name	 Num	 Price	
1	 Яблоко 		 10	 50	
2	 Груша 		 20	 80	
3	 Банан 		 40	 40	
4	 Апельсин 		 25	 50	
5	 Киви 		 5	 120	
6	 Арбуз 		 20	 30	
7	 Дыня 		 40	 100	
8	 Ананас 		 35	 90	
hash(ID)
ID	 Name	 Num	 Price	
1	 Яблоко 		 10	 50	
2	 Груша 		 20	 80	
3	 Банан 		 40	 40	
4	 Апельсин 		 25	 50	
5	 Киви 		 5	 120	
6	 Арбуз 		 20	 30	
7	 Дыня 		 40	 100	
8	 Ананас 		 35	 90
Метаданные
•  Информация о структуре таблицы
–  Поля распределения
–  Количество hash bucket распределения
–  Партиционирование (hash, list, range)
•  Общие метаданные
–  Пользователи и группы
Метаданные
•  Информация о структуре таблицы
–  Поля распределения
–  Количество hash bucket распределения
–  Партиционирование (hash, list, range)
•  Общие метаданные
–  Пользователи и группы
–  Права доступа к объектам
Метаданные
•  Информация о структуре таблицы
–  Поля распределения
–  Количество hash bucket распределения
–  Партиционирование (hash, list, range)
•  Общие метаданные
–  Пользователи и группы
–  Права доступа к объектам
•  Хранимые процедуры
–  PL/pgSQL, PL/Java, PL/Python, PL/Perl, PL/R
Оптимизатор Запросов
•  Используется cost-based оптимизатор
Оптимизатор Запросов
•  Используется cost-based оптимизатор
•  Выбрать можно один из двух
Оптимизатор Запросов
•  Используется cost-based оптимизатор
•  Выбрать можно один из двух
–  Planner – модифицированный оптимизатор
Postgres
Оптимизатор Запросов
•  Используется cost-based оптимизатор
•  Выбрать можно один из двух
–  Planner – модифицированный оптимизатор
Postgres
–  ORCA (Pivotal Query Optimizer) – разработан
специально для HAWQ
Оптимизатор Запросов
•  Используется cost-based оптимизатор
•  Выбрать можно один из двух
–  Planner – модифицированный оптимизатор
Postgres
–  ORCA (Pivotal Query Optimizer) – разработан
специально для HAWQ
•  Хинты оптимизатора работают как в Postgres
Оптимизатор Запросов
•  Используется cost-based оптимизатор
•  Выбрать можно один из двух
–  Planner – модифицированный оптимизатор
Postgres
–  ORCA (Pivotal Query Optimizer) – разработан
специально для HAWQ
•  Хинты оптимизатора работают как в Postgres
–  Включить/отключить определенную операцию
Оптимизатор Запросов
•  Используется cost-based оптимизатор
•  Выбрать можно один из двух
–  Planner – модифицированный оптимизатор
Postgres
–  ORCA (Pivotal Query Optimizer) – разработан
специально для HAWQ
•  Хинты оптимизатора работают как в Postgres
–  Включить/отключить определенную операцию
–  Изменить веса базовых операций
Формат Хранения
Какой формат хранения данных является
наиболее оптимальным?
Формат Хранения
Какой формат хранения данных является
наиболее оптимальным?
ü  Зависит от того, что является для вас
критерием оптимальности
Формат Хранения
Какой формат хранения данных является
наиболее оптимальным?
ü  Зависит от того, что является для вас
критерием оптимальности
–  Минимальное потребление ресурсов CPU
Формат Хранения
Какой формат хранения данных является
наиболее оптимальным?
ü  Зависит от того, что является для вас
критерием оптимальности
–  Минимальное потребление ресурсов CPU
–  Минимальный объем занимаемого дискового пр-ва
Формат Хранения
Какой формат хранения данных является
наиболее оптимальным?
ü  Зависит от того, что является для вас
критерием оптимальности
–  Минимальное потребление ресурсов CPU
–  Минимальный объем занимаемого дискового пр-ва
–  Минимальное время извлечения записи по ключу
Формат Хранения
Какой формат хранения данных является
наиболее оптимальным?
ü  Зависит от того, что является для вас
критерием оптимальности
–  Минимальное потребление ресурсов CPU
–  Минимальный объем занимаемого дискового пр-ва
–  Минимальное время извлечения записи по ключу
–  Минимальное время извлечения подмножества
столбцов таблицы
Формат Хранения
Какой формат хранения данных является
наиболее оптимальным?
ü  Зависит от того, что является для вас
критерием оптимальности
–  Минимальное потребление ресурсов CPU
–  Минимальный объем занимаемого дискового пр-ва
–  Минимальное время извлечения записи по ключу
–  Минимальное время извлечения подмножества
столбцов таблицы
–  что-то другое?
Формат Хранения
•  Построчное хранение
–  «Обрезанный» формат postgres
•  Без toast
•  Без ctid, xmin, xmax, cmin, cmax
Формат Хранения
•  Построчное хранение
–  «Обрезанный» формат postgres
•  Без toast
•  Без ctid, xmin, xmax, cmin, cmax
–  Сжатие
•  Без сжатия
•  Quicklz
•  Zlib уровни 1 - 9
Формат Хранения
•  Apache Parquet
–  Поколоночное хранение блоков
последовательных строк (“row group”)
Формат Хранения
•  Apache Parquet
–  Поколоночное хранение блоков
последовательных строк (“row group”)
–  Сжатие
•  Без сжатия
•  Snappy
•  Gzip уровни 1 – 9
Формат Хранения
•  Apache Parquet
–  Поколоночное хранение блоков
последовательных строк (“row group”)
–  Сжатие
•  Без сжатия
•  Snappy
•  Gzip уровни 1 – 9
–  Размер “row group” и страницы задается для
каждой таблицы отдельно
Разделение Ресурсов
•  Два основных варианта
Разделение Ресурсов
•  Два основных варианта
–  Независимое разделение – HAWQ и YARN не
знают друг о друге
Разделение Ресурсов
•  Два основных варианта
–  Независимое разделение – HAWQ и YARN не
знают друг о друге
–  YARN – HAWQ запрашивает выделение
ресурсов у менеджера ресурсов YARN
Разделение Ресурсов
•  Два основных варианта
–  Независимое разделение – HAWQ и YARN не
знают друг о друге
–  YARN – HAWQ запрашивает выделение
ресурсов у менеджера ресурсов YARN
•  Гибкая утилизация кластера
–  Запрос может выполняться на части нод
Разделение Ресурсов
•  Два основных варианта
–  Независимое разделение – HAWQ и YARN не
знают друг о друге
–  YARN – HAWQ запрашивает выделение
ресурсов у менеджера ресурсов YARN
•  Гибкая утилизация кластера
–  Запрос может выполняться на части нод
–  Запрос может иметь несколько потоков
исполнения на каждой из нод
Разделение Ресурсов
•  Два основных варианта
–  Независимое разделение – HAWQ и YARN не
знают друг о друге
–  YARN – HAWQ запрашивает выделение
ресурсов у менеджера ресурсов YARN
•  Гибкая утилизация кластера
–  Запрос может выполняться на части нод
–  Запрос может иметь несколько потоков
исполнения на каждой из нод
–  Желаемый параллелизм можно задать вручную
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
–  Количество параллельных запросов
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
–  Количество параллельных запросов
–  Приоритет на использование CPU
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
–  Количество параллельных запросов
–  Приоритет на использование CPU
–  Лимит по памяти
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
–  Количество параллельных запросов
–  Приоритет на использование CPU
–  Лимит по памяти
–  Лимит по ядрам CPU
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
–  Количество параллельных запросов
–  Приоритет на использование CPU
–  Лимит по памяти
–  Лимит по ядрам CPU
–  MIN/MAX потоков исполнения в целом по системе
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
–  Количество параллельных запросов
–  Приоритет на использование CPU
–  Лимит по памяти
–  Лимит по ядрам CPU
–  MIN/MAX потоков исполнения в целом по системе
–  MIN/MAX потоков исполнения на каждой ноде
Разделение Ресурсов
•  Пулы ресурсов (Resource Queue) задают
–  Количество параллельных запросов
–  Приоритет на использование CPU
–  Лимит по памяти
–  Лимит по ядрам CPU
–  MIN/MAX потоков исполнения в целом по системе
–  MIN/MAX потоков исполнения на каждой ноде
•  Задаются для пользователя или группы
Внешние Данные
•  PXF
–  Фреймворк для доступа к внешним данным
–  Легко расширяется, многие пишут свои плагины
–  Официальные плагины: CSV, SequenceFile,
Avro, Hive, HBase
–  Open Source плагины: JSON, Accumulo,
Cassandra, JDBC, Redis, Pipe
Внешние Данные
•  PXF
–  Фреймворк для доступа к внешним данным
–  Легко расширяется, многие пишут свои плагины
–  Официальные плагины: CSV, SequenceFile,
Avro, Hive, HBase
–  Open Source плагины: JSON, Accumulo,
Cassandra, JDBC, Redis, Pipe
•  HCatalog
–  HAWQ видит таблицы из HCatalog как свои
внутренние таблицы
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	Движок	
Ресурсы	 Подготовка	 Исполнение	 Результат	 Завершение	План
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Ресурсы	 Подготовка	 Исполнение	 Результат	 Завершение	План
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Ресурсы	 Подготовка	 Исполнение	 Результат	 Завершение	План
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Ресурсы	 Подготовка	 Исполнение	 Результат	 Завершение	План
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Ресурсы	 Подготовка	 Исполнение	 Результат	 Завершение	План
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Ресурсы	 Подготовка	 Исполнение	 Результат	 Завершение	План
План	
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Подготовка	 Исполнение	 Результат	 Завершение	Ресурсы
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Нужно	5	контейнеров	
Каждый	по	1	ядру	
и	256	MB	RAM	
План	 Подготовка	 Исполнение	 Результат	 Завершение	Ресурсы
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Нужно	5	контейнеров	
Каждый	по	1	ядру	
и	256	MB	RAM	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
План	 Подготовка	 Исполнение	 Результат	 Завершение	Ресурсы
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Нужно	5	контейнеров	
Каждый	по	1	ядру	
и	256	MB	RAM	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
План	 Подготовка	 Исполнение	 Результат	 Завершение	Ресурсы
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Нужно	5	контейнеров	
Каждый	по	1	ядру	
и	256	MB	RAM	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
План	 Подготовка	 Исполнение	 Результат	 Завершение	Ресурсы
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
Нужно	5	контейнеров	
Каждый	по	1	ядру	
и	256	MB	RAM	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
QE	 QE	 QE	 QE	 QE	
План	 Подготовка	 Исполнение	 Результат	 Завершение	Ресурсы
Ресурсы	
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
План	 Исполнение	 Результат	 Завершение	Подготовка
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Ресурсы	План	 Исполнение	 Результат	 Завершение	Подготовка
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Ресурсы	План	 Исполнение	 Результат	 Завершение	Подготовка
Подготовка	
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Ресурсы	План	 Результат	 Завершение	Исполнение
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Подготовка	Ресурсы	План	 Результат	 Завершение	Исполнение
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Подготовка	Ресурсы	План	 Результат	 Завершение	Исполнение
Исполнение	
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Подготовка	Ресурсы	План	 				Завершение	Результат
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Исполнение	Подготовка	Ресурсы	План	 				Завершение	Результат
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
ScanBars
b
HashJoinb.name = s.bar
ScanSells
s
Filterb.city ='San Francisco'
Projects.beer, s.price
MotionGather
MotionRedist(b.name)
Исполнение	Подготовка	Ресурсы	План	 				Завершение	Результат
Результат	
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
Исполнение	Подготовка	Ресурсы	План	 				Завершение
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
Освобождаем	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
Результат	Исполнение	Подготовка	Ресурсы	План	 				Завершение
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
Ок	
Освобождаем	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
Результат	Исполнение	Подготовка	Ресурсы	План	 				Завершение
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
Ок	
Освобождаем	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
Результат	Исполнение	Подготовка	Ресурсы	План	 				Завершение
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
Ок	
Освобождаем	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
Результат	Исполнение	Подготовка	Ресурсы	План	 				Завершение
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	
QE	
Движок	
QE	 QE	 QE	 QE	 QE	
Ок	
Освобождаем	
Сервер	1:	2	контейнера	
Сервер	2:	1	контейнер	
Сервер	N:	2	контейнера	
Результат	Исполнение	Подготовка	Ресурсы	План	 				Завершение
Завершение	
Жизненный Цикл Запроса
HAWQ	Master	
Метаданные	
Менедж.	тр-й	
Парсер	 Опт.	запросов	
Диспетч.	проц.	
Менедж.	рес-ов	
NameNode	
Сервер	1	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	2	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
Сервер	N	
Локальная	директория	
HAWQ	Segment	
Движок	
HDFS	Datanode	
YARN	RM	Движок	
Результат	Исполнение	Подготовка	Ресурсы	План
Скорость
•  Данные не приземляются на диск без
необходимости
Скорость
•  Данные не приземляются на диск без
необходимости
•  Данные не буферизируются на сегментах без
необходимости
Скорость
•  Данные не приземляются на диск без
необходимости
•  Данные не буферизируются на сегментах без
необходимости
•  Данные передаются между нодами по UDP
Скорость
•  Данные не приземляются на диск без
необходимости
•  Данные не буферизируются на сегментах без
необходимости
•  Данные передаются между нодами по UDP
•  Хороший стоимостной оптимизатор запросов
Скорость
•  Данные не приземляются на диск без
необходимости
•  Данные не буферизируются на сегментах без
необходимости
•  Данные передаются между нодами по UDP
•  Хороший стоимостной оптимизатор запросов
•  Оптимальность кода на C++
Скорость
•  Данные не приземляются на диск без
необходимости
•  Данные не буферизируются на сегментах без
необходимости
•  Данные передаются между нодами по UDP
•  Хороший стоимостной оптимизатор запросов
•  Оптимальность кода на C++
•  Гибкая настройка параллелизма
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор	
ANSI	SQL
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор	
ANSI	SQL	
Встроенные	языки
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор	
ANSI	SQL	
Встроенные	языки	
Нагрузка	на	диски
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор	
ANSI	SQL	
Встроенные	языки	
Нагрузка	на	диски	
Параллелизм
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор	
ANSI	SQL	
Встроенные	языки	
Нагрузка	на	диски	
Параллелизм	
Дистрибутивы
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор	
ANSI	SQL	
Встроенные	языки	
Нагрузка	на	диски	
Параллелизм	
Дистрибутивы	
Стабильность
Альтернативы
Hive	 SparkSQL	 Impala	 HAWQ	
Оптимизатор	
ANSI	SQL	
Встроенные	языки	
Нагрузка	на	диски	
Параллелизм	
Дистрибутивы	
Стабильность	
Сообщество
Задачи
•  Интеграция с AWS и S3
Задачи
•  Интеграция с AWS и S3
•  Интеграция с Mesos
Задачи
•  Интеграция с AWS и S3
•  Интеграция с Mesos
•  Улучшение интеграции с Ambari
Задачи
•  Интеграция с AWS и S3
•  Интеграция с Mesos
•  Улучшение интеграции с Ambari
•  Интеграция с дистрибутивами Cloudera,
MapR, IBM
Задачи
•  Интеграция с AWS и S3
•  Интеграция с Mesos
•  Улучшение интеграции с Ambari
•  Интеграция с дистрибутивами Cloudera,
MapR, IBM
•  Сделать самый быстрый и удобный движок
SQL-on-Hadoop
Заключение
•  Современный движок SQL-on-Hadoop
•  Для анализа структурированных данных
•  Объединяет в себе лучшие качества
альтернативных решений
•  Новичок среди open source
•  Community на стадии зарождения
Присоединяйтесь!
Вопросы
Apache HAWQ
http://hawq.incubator.apache.org
dev@hawq.incubator.apache.org
user@hawq.incubator.apache.org
Связь со мной: http://0x0fff.com

More Related Content

What's hot

nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)Ontico
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...Ontico
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Ontico
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
 
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...Ontico
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Ontico
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)Ontico
 
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Fwdays
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...Ontico
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахOntico
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Ontico
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
 
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)Ontico
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС 2ГИС Технологии
 

What's hot (20)

nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
 
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в Одноклассниках
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
 
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
 

Viewers also liked

Alexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda RuAlexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda Rurit2010
 
Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)
Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)
Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)Ontico
 
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...Ontico
 
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2rit2011
 
Scaling Networks with Segment Routing
Scaling Networks with Segment RoutingScaling Networks with Segment Routing
Scaling Networks with Segment RoutingAPNIC
 
Segment Routing: фундамент для построения сетей SDN
Segment Routing: фундамент для построения сетей SDNSegment Routing: фундамент для построения сетей SDN
Segment Routing: фундамент для построения сетей SDNCisco Russia
 
Презентации. Во сколько они реально обходятся компании?
Презентации. Во сколько они реально обходятся компании?Презентации. Во сколько они реально обходятся компании?
Презентации. Во сколько они реально обходятся компании?Sergey Gusarov
 
Построение автономных и управляемых сетей
Построение автономных и управляемых сетейПостроение автономных и управляемых сетей
Построение автономных и управляемых сетейCisco Russia
 
Stateful PCE and Segment Routing
Stateful PCE and Segment RoutingStateful PCE and Segment Routing
Stateful PCE and Segment RoutingAPNIC
 
Cергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСCергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСOntico
 
Securing Internet Routing: RPSL & RPKI
Securing Internet Routing: RPSL & RPKISecuring Internet Routing: RPSL & RPKI
Securing Internet Routing: RPSL & RPKIAPNIC
 
Segment Routing
Segment RoutingSegment Routing
Segment RoutingAPNIC
 
TechWiseTV Workshop: Segment Routing for the Datacenter
TechWiseTV Workshop: Segment Routing for the DatacenterTechWiseTV Workshop: Segment Routing for the Datacenter
TechWiseTV Workshop: Segment Routing for the DatacenterRobb Boyd
 
BGP Traffic Engineering with SDN Controller
BGP Traffic Engineering with SDN ControllerBGP Traffic Engineering with SDN Controller
BGP Traffic Engineering with SDN ControllerAPNIC
 
Advanced Topics and Future Directions in MPLS
Advanced Topics and Future Directions in MPLS Advanced Topics and Future Directions in MPLS
Advanced Topics and Future Directions in MPLS Cisco Canada
 
Архитектура Segment Routing
Архитектура Segment RoutingАрхитектура Segment Routing
Архитектура Segment RoutingCisco Russia
 
SDN Traffic Engineering, A Natural Evolution
SDN Traffic Engineering, A Natural EvolutionSDN Traffic Engineering, A Natural Evolution
SDN Traffic Engineering, A Natural EvolutionAPNIC
 
Segment Routing Lab
Segment Routing Lab Segment Routing Lab
Segment Routing Lab Cisco Canada
 
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...Ontico
 
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...Ontico
 

Viewers also liked (20)

Alexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda RuAlexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda Ru
 
Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)
Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)
Инфраструктура – это часть вашего приложения, Александр Азимов (Qrator Labs)
 
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...
 
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
 
Scaling Networks with Segment Routing
Scaling Networks with Segment RoutingScaling Networks with Segment Routing
Scaling Networks with Segment Routing
 
Segment Routing: фундамент для построения сетей SDN
Segment Routing: фундамент для построения сетей SDNSegment Routing: фундамент для построения сетей SDN
Segment Routing: фундамент для построения сетей SDN
 
Презентации. Во сколько они реально обходятся компании?
Презентации. Во сколько они реально обходятся компании?Презентации. Во сколько они реально обходятся компании?
Презентации. Во сколько они реально обходятся компании?
 
Построение автономных и управляемых сетей
Построение автономных и управляемых сетейПостроение автономных и управляемых сетей
Построение автономных и управляемых сетей
 
Stateful PCE and Segment Routing
Stateful PCE and Segment RoutingStateful PCE and Segment Routing
Stateful PCE and Segment Routing
 
Cергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСCергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИС
 
Securing Internet Routing: RPSL & RPKI
Securing Internet Routing: RPSL & RPKISecuring Internet Routing: RPSL & RPKI
Securing Internet Routing: RPSL & RPKI
 
Segment Routing
Segment RoutingSegment Routing
Segment Routing
 
TechWiseTV Workshop: Segment Routing for the Datacenter
TechWiseTV Workshop: Segment Routing for the DatacenterTechWiseTV Workshop: Segment Routing for the Datacenter
TechWiseTV Workshop: Segment Routing for the Datacenter
 
BGP Traffic Engineering with SDN Controller
BGP Traffic Engineering with SDN ControllerBGP Traffic Engineering with SDN Controller
BGP Traffic Engineering with SDN Controller
 
Advanced Topics and Future Directions in MPLS
Advanced Topics and Future Directions in MPLS Advanced Topics and Future Directions in MPLS
Advanced Topics and Future Directions in MPLS
 
Архитектура Segment Routing
Архитектура Segment RoutingАрхитектура Segment Routing
Архитектура Segment Routing
 
SDN Traffic Engineering, A Natural Evolution
SDN Traffic Engineering, A Natural EvolutionSDN Traffic Engineering, A Natural Evolution
SDN Traffic Engineering, A Natural Evolution
 
Segment Routing Lab
Segment Routing Lab Segment Routing Lab
Segment Routing Lab
 
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
 
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...
 

Similar to Архитектура HAWQ / Алексей Грищенко (Pivotal)

Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015Alexey Grishchenko
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Ontico
 
владивосток форум новости технологий 2015
владивосток форум новости технологий 2015владивосток форум новости технологий 2015
владивосток форум новости технологий 2015Elena Ometova
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Fwdays
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
Tarantool, .net, newsql
Tarantool, .net, newsqlTarantool, .net, newsql
Tarantool, .net, newsqlAnatoly Popov
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковEYevseyeva
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015InterSystems
 
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиЕвгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиDrupalSib
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
 
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)Ontico
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 

Similar to Архитектура HAWQ / Алексей Грищенко (Pivotal) (20)

Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
владивосток форум новости технологий 2015
владивосток форум новости технологий 2015владивосток форум новости технологий 2015
владивосток форум новости технологий 2015
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Tarantool, .net, newsql
Tarantool, .net, newsqlTarantool, .net, newsql
Tarantool, .net, newsql
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил Павлючков
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Sivko
SivkoSivko
Sivko
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015
 
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиЕвгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
SAP hands on lab_ru
SAP hands on lab_ruSAP hands on lab_ru
SAP hands on lab_ru
 
TT
TTTT
TT
 
Template Toolkit – зло!?
Template Toolkit – зло!?Template Toolkit – зло!?
Template Toolkit – зло!?
 

More from Ontico

Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Ontico
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Ontico
 

More from Ontico (20)

Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
 

Архитектура HAWQ / Алексей Грищенко (Pivotal)

  • 2. Кто я? Enterprise Architect @ Pivotal •  7 лет в задачах обработки данных •  5 лет с MPP-системами •  4 года с Hadoop •  HAWQ - с первой beta •  Отвечаю за архитектуру всех внедрений HAWQ и Greenplum в EMEA •  Spark contributor •  http://0x0fff.com
  • 3. О чем расскажу? •  Что такое HAWQ
  • 4. О чем расскажу? •  Что такое HAWQ •  Зачем он нужен
  • 5. О чем расскажу? •  Что такое HAWQ •  Зачем он нужен •  Из каких компонент он состоит
  • 6. О чем расскажу? •  Что такое HAWQ •  Зачем он нужен •  Из каких компонент он состоит •  Как он работает
  • 7. О чем расскажу? •  Что такое HAWQ •  Зачем он нужен •  Из каких компонент он состоит •  Как он работает •  Пример выполнения запроса
  • 8. О чем расскажу? •  Что такое HAWQ •  Зачем он нужен •  Из каких компонент он состоит •  Как он работает •  Пример выполнения запроса •  Альтернативные решения
  • 10. Что такое •  Аналитический движок SQL-on-Hadoop •  HAdoop With Queries
  • 11. Что такое •  Аналитический движок SQL-on-Hadoop •  HAdoop With Queries Postgres Greenplum HAWQ 2005 Fork Postgres 8.0.2
  • 12. Что такое •  Аналитический движок SQL-on-Hadoop •  HAdoop With Queries Postgres Greenplum HAWQ 2005 Fork Postgres 8.0.2 2009 Rebase Postgres 8.2.15
  • 13. Что такое •  Аналитический движок SQL-on-Hadoop •  HAdoop With Queries Postgres Greenplum HAWQ 2005 Fork Postgres 8.0.2 2009 Rebase Postgres 8.2.15 2011 Fork GPDB 4.2.0.0
  • 14. Что такое •  Аналитический движок SQL-on-Hadoop •  HAdoop With Queries Postgres Greenplum HAWQ 2005 Fork Postgres 8.0.2 2009 Rebase Postgres 8.2.15 2011 Fork GPDB 4.2.0.0 2013 HAWQ 1.0.0.0
  • 15. Что такое •  Аналитический движок SQL-on-Hadoop •  HAdoop With Queries Postgres Greenplum HAWQ 2005 Fork Postgres 8.0.2 2009 Rebase Postgres 8.2.15 2011 Fork GPDB 4.2.0.0 2013 HAWQ 1.0.0.0 HAWQ 2.0.0.0 Open Source 2015
  • 16. HAWQ – это … •  1’500’000 строк кода C и C++
  • 17. HAWQ – это … •  1’500’000 строк кода C и C++ –  Из которых 200’000 только в заголовочных файлах
  • 18. HAWQ – это … •  1’500’000 строк кода C и C++ –  Из которых 200’000 только в заголовочных файлах •  180’000 строк кода Python
  • 19. HAWQ – это … •  1’500’000 строк кода C и C++ –  Из которых 200’000 только в заголовочных файлах •  180’000 строк кода Python •  60’000 строк кода Java
  • 20. HAWQ – это … •  1’500’000 строк кода C и C++ –  Из которых 200’000 только в заголовочных файлах •  180’000 строк кода Python •  60’000 строк кода Java •  23’000 строк Makefile’ов
  • 21. HAWQ – это … •  1’500’000 строк кода C и C++ –  Из которых 200’000 только в заголовочных файлах •  180’000 строк кода Python •  60’000 строк кода Java •  23’000 строк Makefile’ов •  7’000 строк shell-скриптов
  • 22. HAWQ – это … •  1’500’000 строк кода C и C++ –  Из которых 200’000 только в заголовочных файлах •  180’000 строк кода Python •  60’000 строк кода Java •  23’000 строк Makefile’ов •  7’000 строк shell-скриптов •  Более 50 корпоративных клиентов
  • 23. HAWQ – это … •  1’500’000 строк кода C и C++ –  Из которых 200’000 только в заголовочных файлах •  180’000 строк кода Python •  60’000 строк кода Java •  23’000 строк Makefile’ов •  7’000 строк shell-скриптов •  Более 50 корпоративных клиентов –  Из них более 10 в EMEA
  • 24. Apache HAWQ •  Apache HAWQ (incubating) с 09’2015 –  http://hawq.incubator.apache.org –  https://github.com/apache/incubator-hawq •  Что находится в Open Source –  Исходники версии HAWQ 2.0 альфа –  Релиз HAWQ 2.0 бэта до конца 2015 года –  Релиз HAWQ 2.0 GA в начале 2016 •  Сообщество еще только зарождается – присоединяйтесь!
  • 26. Зачем он нужен? •  Универсальный SQL-интерфейс к данным Hadoop для BI с ANSI SQL-92, -99, -2003
  • 27. Зачем он нужен? •  Универсальный SQL-интерфейс к данным Hadoop для BI с ANSI SQL-92, -99, -2003 –  Пример из практики – запрос Cognos на 5000 строк с множеством оконных функций
  • 28. Зачем он нужен? •  Универсальный SQL-интерфейс к данным Hadoop для BI с ANSI SQL-92, -99, -2003 –  Пример из практики – запрос Cognos на 5000 строк с множеством оконных функций •  Универсальный инструмент для ad hoc аналитики
  • 29. Зачем он нужен? •  Универсальный SQL-интерфейс к данным Hadoop для BI с ANSI SQL-92, -99, -2003 –  Пример из практики – запрос Cognos на 5000 строк с множеством оконных функций •  Универсальный инструмент для ad hoc аналитики –  Пример из практики – распарсить URL, выдернув из него имя хоста и протокол
  • 30. Зачем он нужен? •  Универсальный SQL-интерфейс к данным Hadoop для BI с ANSI SQL-92, -99, -2003 –  Пример из практики – запрос Cognos на 5000 строк с множеством оконных функций •  Универсальный инструмент для ad hoc аналитики –  Пример из практики – распарсить URL, выдернув из него имя хоста и протокол •  Хорошая производительность
  • 31. Зачем он нужен? •  Универсальный SQL-интерфейс к данным Hadoop для BI с ANSI SQL-92, -99, -2003 –  Пример из практики – запрос Cognos на 5000 строк с множеством оконных функций •  Универсальный инструмент для ad hoc аналитики –  Пример из практики – распарсить URL, выдернув из него имя хоста и протокол •  Хорошая производительность –  Сколько раз данные будут скинуты на HDD для выполнения SQL-запроса в Hive?
  • 32. Кластер с HAWQ Сервер 1 SNameNode Сервер 4 ZK JM NameNode Сервер 3 ZK JM Сервер 2 ZK JM Сервер 6 Datanode Сервер N Datanode Сервер 5 Datanode interconnect …
  • 33. Кластер с HAWQ Сервер 1 SNameNode Сервер 4 ZK JM NameNode Сервер 3 ZK JM Сервер 2 ZK JM Сервер 6 Datanode Сервер N Datanode Сервер 5 Datanode YARN NM YARN NM YARN NM YARN RM YARN App Timeline interconnect …
  • 34. Кластер с HAWQ HAWQ Master Сервер 1 SNameNode Сервер 4 ZK JM NameNode Сервер 3 ZK JM HAWQ Standby Сервер 2 ZK JM HAWQ Segment Сервер 6 Datanode HAWQ Segment Сервер N Datanode HAWQ Segment Сервер 5 Datanode YARN NM YARN NM YARN NM YARN RM YARN App Timeline interconnect …
  • 35. Мастер Сервера Сервер 1 SNameNode Сервер 4 ZK JM NameNode Сервер 3 ZK JM Сервер 2 ZK JM HAWQ Segment Сервер 6 Datanode HAWQ Segment Сервер N Datanode HAWQ Segment Сервер 5 Datanode YARN NM YARN NM YARN NM YARN RM YARN App Timeline interconnect … HAWQ Master HAWQ Standby
  • 37. HAWQ Master HAWQ Standby Сегменты Сервер 1 SNameNode Сервер 4 ZK JM NameNode Сервер 3 ZK JM Сервер 2 ZK JM Сервер 6 Datanode Сервер N Datanode Сервер 5 Datanode YARN NM YARN NM YARN NM YARN RM YARN App Timeline interconnect HAWQ Segment HAWQ Segment HAWQ Segment …
  • 39. Метаданные •  Структура аналогична структуре каталога Postgres
  • 40. Метаданные •  Структура аналогична структуре каталога Postgres •  Статистика
  • 41. Метаданные •  Структура аналогична структуре каталога Postgres •  Статистика –  Количество записей и страниц в таблице
  • 42. Метаданные •  Структура аналогична структуре каталога Postgres •  Статистика –  Количество записей и страниц в таблице –  Наиболее частые значения для каждого поля
  • 43. Метаданные •  Структура аналогична структуре каталога Postgres •  Статистика –  Количество записей и страниц в таблице –  Наиболее частые значения для каждого поля –  Гистограмма для каждого числового поля
  • 44. Метаданные •  Структура аналогична структуре каталога Postgres •  Статистика –  Количество записей и страниц в таблице –  Наиболее частые значения для каждого поля –  Гистограмма для каждого числового поля –  Количество уникальных значений в поле
  • 45. Метаданные •  Структура аналогична структуре каталога Postgres •  Статистика –  Количество записей и страниц в таблице –  Наиболее частые значения для каждого поля –  Гистограмма для каждого числового поля –  Количество уникальных значений в поле –  Количество null значений в поле
  • 46. Метаданные •  Структура аналогична структуре каталога Postgres •  Статистика –  Количество записей и страниц в таблице –  Наиболее частые значения для каждого поля –  Гистограмма для каждого числового поля –  Количество уникальных значений в поле –  Количество null значений в поле –  Средний размер значения поля в байтах
  • 47. Статистика Без статистики Join двух таблиц, сколько записей в результате?
  • 48. Статистика Без статистики Join двух таблиц, сколько записей в результате? ü  От 0 до бесконечности
  • 49. Статистика Без статистики Количество строк Join двух таблиц, сколько записей в результате? ü  От 0 до бесконечности Join двух таблиц по 1000 записей в каждой, сколько записей в результате?
  • 50. Статистика Без статистики Количество строк Join двух таблиц, сколько записей в результате? ü  От 0 до бесконечности Join двух таблиц по 1000 записей в каждой, сколько записей в результате? ü  От 0 до 1’000’000
  • 51. Статистика Без статистики Количество строк Гистограммы и MCV Join двух таблиц, сколько записей в результате? ü  От 0 до бесконечности Join двух таблиц по 1000 записей в каждой, сколько записей в результате? ü  От 0 до 1’000’000 Join двух таблиц по 1000 записей в каждой, с известной кардинальностью, гистограммой распределения, наиболее частыми значениями, количеством null?
  • 52. Статистика Без статистики Количество строк Гистограммы и MCV Join двух таблиц, сколько записей в результате? ü  От 0 до бесконечности Join двух таблиц по 1000 записей в каждой, сколько записей в результате? ü  От 0 до 1’000’000 Join двух таблиц по 1000 записей в каждой, с известной кардинальностью, гистограммой распределения, наиболее частыми значениями, количеством null? ü  ~ От 500 до 1’500
  • 53. Метаданные •  Информация о структуре таблицы ID Name Num Price 1 Яблоко 10 50 2 Груша 20 80 3 Банан 40 40 4 Апельсин 25 50 5 Киви 5 120 6 Арбуз 20 30 7 Дыня 40 100 8 Ананас 35 90
  • 54. Метаданные •  Информация о структуре таблицы –  Поля распределения ID Name Num Price 1 Яблоко 10 50 2 Груша 20 80 3 Банан 40 40 4 Апельсин 25 50 5 Киви 5 120 6 Арбуз 20 30 7 Дыня 40 100 8 Ананас 35 90 hash(ID)
  • 55. Метаданные •  Информация о структуре таблицы –  Поля распределения –  Количество hash bucket распределения ID Name Num Price 1 Яблоко 10 50 2 Груша 20 80 3 Банан 40 40 4 Апельсин 25 50 5 Киви 5 120 6 Арбуз 20 30 7 Дыня 40 100 8 Ананас 35 90 hash(ID) ID Name Num Price 1 Яблоко 10 50 2 Груша 20 80 3 Банан 40 40 4 Апельсин 25 50 5 Киви 5 120 6 Арбуз 20 30 7 Дыня 40 100 8 Ананас 35 90
  • 56. Метаданные •  Информация о структуре таблицы –  Поля распределения –  Количество hash bucket распределения –  Партиционирование (hash, list, range) ID Name Num Price 1 Яблоко 10 50 2 Груша 20 80 3 Банан 40 40 4 Апельсин 25 50 5 Киви 5 120 6 Арбуз 20 30 7 Дыня 40 100 8 Ананас 35 90 hash(ID) ID Name Num Price 1 Яблоко 10 50 2 Груша 20 80 3 Банан 40 40 4 Апельсин 25 50 5 Киви 5 120 6 Арбуз 20 30 7 Дыня 40 100 8 Ананас 35 90
  • 57. Метаданные •  Информация о структуре таблицы –  Поля распределения –  Количество hash bucket распределения –  Партиционирование (hash, list, range) •  Общие метаданные –  Пользователи и группы
  • 58. Метаданные •  Информация о структуре таблицы –  Поля распределения –  Количество hash bucket распределения –  Партиционирование (hash, list, range) •  Общие метаданные –  Пользователи и группы –  Права доступа к объектам
  • 59. Метаданные •  Информация о структуре таблицы –  Поля распределения –  Количество hash bucket распределения –  Партиционирование (hash, list, range) •  Общие метаданные –  Пользователи и группы –  Права доступа к объектам •  Хранимые процедуры –  PL/pgSQL, PL/Java, PL/Python, PL/Perl, PL/R
  • 61. Оптимизатор Запросов •  Используется cost-based оптимизатор •  Выбрать можно один из двух
  • 62. Оптимизатор Запросов •  Используется cost-based оптимизатор •  Выбрать можно один из двух –  Planner – модифицированный оптимизатор Postgres
  • 63. Оптимизатор Запросов •  Используется cost-based оптимизатор •  Выбрать можно один из двух –  Planner – модифицированный оптимизатор Postgres –  ORCA (Pivotal Query Optimizer) – разработан специально для HAWQ
  • 64. Оптимизатор Запросов •  Используется cost-based оптимизатор •  Выбрать можно один из двух –  Planner – модифицированный оптимизатор Postgres –  ORCA (Pivotal Query Optimizer) – разработан специально для HAWQ •  Хинты оптимизатора работают как в Postgres
  • 65. Оптимизатор Запросов •  Используется cost-based оптимизатор •  Выбрать можно один из двух –  Planner – модифицированный оптимизатор Postgres –  ORCA (Pivotal Query Optimizer) – разработан специально для HAWQ •  Хинты оптимизатора работают как в Postgres –  Включить/отключить определенную операцию
  • 66. Оптимизатор Запросов •  Используется cost-based оптимизатор •  Выбрать можно один из двух –  Planner – модифицированный оптимизатор Postgres –  ORCA (Pivotal Query Optimizer) – разработан специально для HAWQ •  Хинты оптимизатора работают как в Postgres –  Включить/отключить определенную операцию –  Изменить веса базовых операций
  • 67. Формат Хранения Какой формат хранения данных является наиболее оптимальным?
  • 68. Формат Хранения Какой формат хранения данных является наиболее оптимальным? ü  Зависит от того, что является для вас критерием оптимальности
  • 69. Формат Хранения Какой формат хранения данных является наиболее оптимальным? ü  Зависит от того, что является для вас критерием оптимальности –  Минимальное потребление ресурсов CPU
  • 70. Формат Хранения Какой формат хранения данных является наиболее оптимальным? ü  Зависит от того, что является для вас критерием оптимальности –  Минимальное потребление ресурсов CPU –  Минимальный объем занимаемого дискового пр-ва
  • 71. Формат Хранения Какой формат хранения данных является наиболее оптимальным? ü  Зависит от того, что является для вас критерием оптимальности –  Минимальное потребление ресурсов CPU –  Минимальный объем занимаемого дискового пр-ва –  Минимальное время извлечения записи по ключу
  • 72. Формат Хранения Какой формат хранения данных является наиболее оптимальным? ü  Зависит от того, что является для вас критерием оптимальности –  Минимальное потребление ресурсов CPU –  Минимальный объем занимаемого дискового пр-ва –  Минимальное время извлечения записи по ключу –  Минимальное время извлечения подмножества столбцов таблицы
  • 73. Формат Хранения Какой формат хранения данных является наиболее оптимальным? ü  Зависит от того, что является для вас критерием оптимальности –  Минимальное потребление ресурсов CPU –  Минимальный объем занимаемого дискового пр-ва –  Минимальное время извлечения записи по ключу –  Минимальное время извлечения подмножества столбцов таблицы –  что-то другое?
  • 74. Формат Хранения •  Построчное хранение –  «Обрезанный» формат postgres •  Без toast •  Без ctid, xmin, xmax, cmin, cmax
  • 75. Формат Хранения •  Построчное хранение –  «Обрезанный» формат postgres •  Без toast •  Без ctid, xmin, xmax, cmin, cmax –  Сжатие •  Без сжатия •  Quicklz •  Zlib уровни 1 - 9
  • 76. Формат Хранения •  Apache Parquet –  Поколоночное хранение блоков последовательных строк (“row group”)
  • 77. Формат Хранения •  Apache Parquet –  Поколоночное хранение блоков последовательных строк (“row group”) –  Сжатие •  Без сжатия •  Snappy •  Gzip уровни 1 – 9
  • 78. Формат Хранения •  Apache Parquet –  Поколоночное хранение блоков последовательных строк (“row group”) –  Сжатие •  Без сжатия •  Snappy •  Gzip уровни 1 – 9 –  Размер “row group” и страницы задается для каждой таблицы отдельно
  • 79. Разделение Ресурсов •  Два основных варианта
  • 80. Разделение Ресурсов •  Два основных варианта –  Независимое разделение – HAWQ и YARN не знают друг о друге
  • 81. Разделение Ресурсов •  Два основных варианта –  Независимое разделение – HAWQ и YARN не знают друг о друге –  YARN – HAWQ запрашивает выделение ресурсов у менеджера ресурсов YARN
  • 82. Разделение Ресурсов •  Два основных варианта –  Независимое разделение – HAWQ и YARN не знают друг о друге –  YARN – HAWQ запрашивает выделение ресурсов у менеджера ресурсов YARN •  Гибкая утилизация кластера –  Запрос может выполняться на части нод
  • 83. Разделение Ресурсов •  Два основных варианта –  Независимое разделение – HAWQ и YARN не знают друг о друге –  YARN – HAWQ запрашивает выделение ресурсов у менеджера ресурсов YARN •  Гибкая утилизация кластера –  Запрос может выполняться на части нод –  Запрос может иметь несколько потоков исполнения на каждой из нод
  • 84. Разделение Ресурсов •  Два основных варианта –  Независимое разделение – HAWQ и YARN не знают друг о друге –  YARN – HAWQ запрашивает выделение ресурсов у менеджера ресурсов YARN •  Гибкая утилизация кластера –  Запрос может выполняться на части нод –  Запрос может иметь несколько потоков исполнения на каждой из нод –  Желаемый параллелизм можно задать вручную
  • 85. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают
  • 86. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают –  Количество параллельных запросов
  • 87. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают –  Количество параллельных запросов –  Приоритет на использование CPU
  • 88. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают –  Количество параллельных запросов –  Приоритет на использование CPU –  Лимит по памяти
  • 89. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают –  Количество параллельных запросов –  Приоритет на использование CPU –  Лимит по памяти –  Лимит по ядрам CPU
  • 90. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают –  Количество параллельных запросов –  Приоритет на использование CPU –  Лимит по памяти –  Лимит по ядрам CPU –  MIN/MAX потоков исполнения в целом по системе
  • 91. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают –  Количество параллельных запросов –  Приоритет на использование CPU –  Лимит по памяти –  Лимит по ядрам CPU –  MIN/MAX потоков исполнения в целом по системе –  MIN/MAX потоков исполнения на каждой ноде
  • 92. Разделение Ресурсов •  Пулы ресурсов (Resource Queue) задают –  Количество параллельных запросов –  Приоритет на использование CPU –  Лимит по памяти –  Лимит по ядрам CPU –  MIN/MAX потоков исполнения в целом по системе –  MIN/MAX потоков исполнения на каждой ноде •  Задаются для пользователя или группы
  • 93. Внешние Данные •  PXF –  Фреймворк для доступа к внешним данным –  Легко расширяется, многие пишут свои плагины –  Официальные плагины: CSV, SequenceFile, Avro, Hive, HBase –  Open Source плагины: JSON, Accumulo, Cassandra, JDBC, Redis, Pipe
  • 94. Внешние Данные •  PXF –  Фреймворк для доступа к внешним данным –  Легко расширяется, многие пишут свои плагины –  Официальные плагины: CSV, SequenceFile, Avro, Hive, HBase –  Open Source плагины: JSON, Accumulo, Cassandra, JDBC, Redis, Pipe •  HCatalog –  HAWQ видит таблицы из HCatalog как свои внутренние таблицы
  • 95. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM Движок Ресурсы Подготовка Исполнение Результат Завершение План
  • 96. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Ресурсы Подготовка Исполнение Результат Завершение План
  • 97. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Ресурсы Подготовка Исполнение Результат Завершение План
  • 98. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Ресурсы Подготовка Исполнение Результат Завершение План
  • 99. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Ресурсы Подготовка Исполнение Результат Завершение План
  • 100. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Ресурсы Подготовка Исполнение Результат Завершение План
  • 101. План Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Подготовка Исполнение Результат Завершение Ресурсы
  • 102. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Нужно 5 контейнеров Каждый по 1 ядру и 256 MB RAM План Подготовка Исполнение Результат Завершение Ресурсы
  • 103. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Нужно 5 контейнеров Каждый по 1 ядру и 256 MB RAM Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера План Подготовка Исполнение Результат Завершение Ресурсы
  • 104. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Нужно 5 контейнеров Каждый по 1 ядру и 256 MB RAM Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера План Подготовка Исполнение Результат Завершение Ресурсы
  • 105. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Нужно 5 контейнеров Каждый по 1 ядру и 256 MB RAM Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера План Подготовка Исполнение Результат Завершение Ресурсы
  • 106. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок Нужно 5 контейнеров Каждый по 1 ядру и 256 MB RAM Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера QE QE QE QE QE План Подготовка Исполнение Результат Завершение Ресурсы
  • 107. Ресурсы Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE План Исполнение Результат Завершение Подготовка
  • 108. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Ресурсы План Исполнение Результат Завершение Подготовка
  • 109. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Ресурсы План Исполнение Результат Завершение Подготовка
  • 110. Подготовка Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Ресурсы План Результат Завершение Исполнение
  • 111. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Подготовка Ресурсы План Результат Завершение Исполнение
  • 112. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Подготовка Ресурсы План Результат Завершение Исполнение
  • 113. Исполнение Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Подготовка Ресурсы План Завершение Результат
  • 114. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Исполнение Подготовка Ресурсы План Завершение Результат
  • 115. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE ScanBars b HashJoinb.name = s.bar ScanSells s Filterb.city ='San Francisco' Projects.beer, s.price MotionGather MotionRedist(b.name) Исполнение Подготовка Ресурсы План Завершение Результат
  • 116. Результат Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE Исполнение Подготовка Ресурсы План Завершение
  • 117. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE Освобождаем Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера Результат Исполнение Подготовка Ресурсы План Завершение
  • 118. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE Ок Освобождаем Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера Результат Исполнение Подготовка Ресурсы План Завершение
  • 119. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE Ок Освобождаем Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера Результат Исполнение Подготовка Ресурсы План Завершение
  • 120. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE Ок Освобождаем Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера Результат Исполнение Подготовка Ресурсы План Завершение
  • 121. Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM QE Движок QE QE QE QE QE Ок Освобождаем Сервер 1: 2 контейнера Сервер 2: 1 контейнер Сервер N: 2 контейнера Результат Исполнение Подготовка Ресурсы План Завершение
  • 122. Завершение Жизненный Цикл Запроса HAWQ Master Метаданные Менедж. тр-й Парсер Опт. запросов Диспетч. проц. Менедж. рес-ов NameNode Сервер 1 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер 2 Локальная директория HAWQ Segment Движок HDFS Datanode Сервер N Локальная директория HAWQ Segment Движок HDFS Datanode YARN RM Движок Результат Исполнение Подготовка Ресурсы План
  • 123. Скорость •  Данные не приземляются на диск без необходимости
  • 124. Скорость •  Данные не приземляются на диск без необходимости •  Данные не буферизируются на сегментах без необходимости
  • 125. Скорость •  Данные не приземляются на диск без необходимости •  Данные не буферизируются на сегментах без необходимости •  Данные передаются между нодами по UDP
  • 126. Скорость •  Данные не приземляются на диск без необходимости •  Данные не буферизируются на сегментах без необходимости •  Данные передаются между нодами по UDP •  Хороший стоимостной оптимизатор запросов
  • 127. Скорость •  Данные не приземляются на диск без необходимости •  Данные не буферизируются на сегментах без необходимости •  Данные передаются между нодами по UDP •  Хороший стоимостной оптимизатор запросов •  Оптимальность кода на C++
  • 128. Скорость •  Данные не приземляются на диск без необходимости •  Данные не буферизируются на сегментах без необходимости •  Данные передаются между нодами по UDP •  Хороший стоимостной оптимизатор запросов •  Оптимальность кода на C++ •  Гибкая настройка параллелизма
  • 129. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор
  • 130. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор ANSI SQL
  • 131. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор ANSI SQL Встроенные языки
  • 132. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор ANSI SQL Встроенные языки Нагрузка на диски
  • 133. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор ANSI SQL Встроенные языки Нагрузка на диски Параллелизм
  • 134. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор ANSI SQL Встроенные языки Нагрузка на диски Параллелизм Дистрибутивы
  • 135. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор ANSI SQL Встроенные языки Нагрузка на диски Параллелизм Дистрибутивы Стабильность
  • 136. Альтернативы Hive SparkSQL Impala HAWQ Оптимизатор ANSI SQL Встроенные языки Нагрузка на диски Параллелизм Дистрибутивы Стабильность Сообщество
  • 138. Задачи •  Интеграция с AWS и S3 •  Интеграция с Mesos
  • 139. Задачи •  Интеграция с AWS и S3 •  Интеграция с Mesos •  Улучшение интеграции с Ambari
  • 140. Задачи •  Интеграция с AWS и S3 •  Интеграция с Mesos •  Улучшение интеграции с Ambari •  Интеграция с дистрибутивами Cloudera, MapR, IBM
  • 141. Задачи •  Интеграция с AWS и S3 •  Интеграция с Mesos •  Улучшение интеграции с Ambari •  Интеграция с дистрибутивами Cloudera, MapR, IBM •  Сделать самый быстрый и удобный движок SQL-on-Hadoop
  • 142. Заключение •  Современный движок SQL-on-Hadoop •  Для анализа структурированных данных •  Объединяет в себе лучшие качества альтернативных решений •  Новичок среди open source •  Community на стадии зарождения Присоединяйтесь!