Exasol на кластере из 24 нод и с 400 Тб данных: опыт Badoo

 

 

Как многие из наших читателей уже знают, Exasol – одна из самых быстрых аналитических баз данных в мире, лидер по производительности, согласно тестам TPC-H. За 20 лет существования, у этой БД более 500 инсталляций в мире и уже несколько крупных клиентов в России (Ситимобил, Badoo, Adidas). Сегодня расскажем об опыте использования Exasol в Badoo, крупной международной социальной сети знакомств.

 

О BI-департаменте Badoo

Badoo – крупная социальная сеть знакомств, с более 420 миллионами пользователей и более 60 миллионами активных пользователей ежемесячно. Центральный офис компании – в Лондоне, но поскольку владелец компании из России, в Москве у Badoo также есть большой офис, где находится часть BI-команды.

Итак, BI-департамент Badoo – это:

a.  40 сотрудников, которые собирают, исследуют и анализируют пользовательские данные с целью понять поведение пользователей

b.  7 команд (включая инжиниринг данных, ETL, продуктовая аналитика, data science, машинное обучение)

c. 2,5 Пб данных (в озере данных Hadoop)

d. 1,5 млн/сек событий о поведении пользователей в приложениях

e. 10 Тб/день обрабатывается в ETL-системах

 

Видео об Exasol в Badoo на русском

Для тех, кто не любит долго читать, мы смонтировали видео на 6 минут о том:

a. как Exasol используется в Badoo;

b. на каком кластере развернут;

c. для каких задач по продуктовой (и не только) аналитике используется, включая A/B тестирование;

d. что об Exasol думают BI-директор и data-инженеры в Badoo.

 

Смотрите:

Посмотрели? Дальше есть дополнительная информация, поэтому придется читать =)

 

Exasol в Badoo: как все начиналось (2015 год)

В 2015 году Vectorwise, в то время основная аналитическая база данных Badoo, перестала справляться с накопленными объемами данных (в силу того, что это single-node решение).

После нескольких месяцев тестирования Exasol, в Badoo убедились в хорошей производительности (относительно сложности SQL-запросов и используемого «железа») и развернули Exasol на кластере из двух нод.

 

Ноябрь 2015: рост инсталляции Exasol до кластера из 8 нодов:

увеличение кластера Exasol до 8 серверов со следующими характеристиками:

а. от 16 до 20 CPU Cores;

-768 Гбайт RAM;

-16×1 Тбайт HDD (RAID 1 — 8 Тбайт);

-10 Гбит сеть.

b. Общий объем памяти, доступной Exasol: 5,6 Тб

c. Общий объем данных без сжатия: 85 Тб

d. Размеры крупных таблиц: от 500 миллионов до 50 миллиардов рядов

e. Один аналитический запрос: в среднем около 4,5 миллиардов рядов

 

Производительность Exasol на реальных запросах за ноябрь 2015 (все запросы):

Это реальная статистика Badoo по настоящим запросам живых пользователей:

Кол-во объектов в запросе

Кол-во

Медиана

Среднее

До 3

240 914 0.021 сек 9 сек

От 4 до 10

45 122 13 сек 47 сек

От 11 до 30

12 642 24 сек 69 сек

От 31 и больше

740 41 сек 303 сек

 

 

Производительность Exasol на реальных запросах за ноябрь 2015 (запросы длительностью от 1 секунды):

Для запросов длительностью от 1 секунды собрана отдельная статистика, чтобы снизить влияние слишком быстрых in-memory запросов на результат и показать наиболее близкую к реальности картину для тех случаев, когда Exasol все же нужно что-то прочитать с диска.

Кол-во объектов в запросе

Кол-во

Медиана

Среднее

До 3

34 808

29 сек

63 сек

От 4 до 10

30 005

34 сек

70 сек

От 11 до 30

5 615

45 сек

156 сек

От 31 и больше

740

41 сек

303 сек

Как можно увидеть, даже в самых сложных случаях, Exasol делает расчет за секунды или минуты, но речь никак не идет о часах или днях.


Как в таблице выше рассчитывается количество объектов в пользовательском запросе в Exasol? Сложность запроса рассчитывается условно путем простого поиска слов FROM и JOIN в тексте SQL. Так и определяется примерное количество использованных объектов. Ну а чем больше объектов используется, тем сложнее запрос.

 

Exasol в инфраструктуре хранилища данных Badoo

Исторически в Badoo облака не используются. Только собственный дата-центр. Есть озеро данных в Hadoop на 2,5 петабайта сырых данных, развернуто на «скромном» кластере из 90 нодов.

«Exasol – сердце нашей аналитической экосистемы. 5 лет назад мы начали достаточно масштабный пилотный проект с Exasol, поскольку достигли «потолка» в нашем предыдущем хранилище данных, и после нескольких месяцев мы развернули решение на 2-х нодах, а после еще нескольких итераций мы дошли до кластера на 24 нодах и 2-х нодов на бэкапе. У нас в Exasol около 16 Тб памяти и 400 Тб данных. Это горячие данные, которые используются аналитиками, командами по машинному обучению, data science и т.д. Данные в Exasol мы поставляем из озера данных Hadoop», – рассказывает Артем Иванов, директор по бизнес-аналитике, Badoo.

Кратко о хранилище данных Badoo:

 

Exasol как аналитическая БД: мнение инженеров платформы данных Badoo (и не только)

 

Виталий Марков, инженер по платформе данных, Badoo:

https://xperience.exasol.com/wp-content/uploads/2019/05/Vitaly-Markov.png«В целом Exasol стал для нас реальным открытием. Вы просто загружаете данные и можете сразу их анализировать на высокой скорости. It just works. При этом нет никакой возни с индексами, представлениями, какими-то ручными оптимизациями. Можно связать между собой данные из абсолютно разных источников, а не только те, которые заранее были для этого предназначены. Любые джойны к вашим услугам.
Фактически вы ограничены только способностью сформулировать свою задачу в форме SQL-запроса. Если для каких-то особых случаев возможностей SQL окажется недостаточно, то Exasol позволяет создавать custom-функции на Python, LUA, Java, R. При этом сохраняются все плюсы колоночного хранения, общей параллельности всех операций и эффективного использования памяти»

 

Владимир Казанов, ведущий инженер по платформе данных, Badoo:

«Exasol – это одновременно и колоночная, и распределенная база данных. Эта особенность позволяет нам иметь 400 Тб данных в кластере Exasol, и при этом делать действительно эффективные запросы к ним. Здесь я говорю о минутах, когда сравнимые системы не выдают даже приблизительно такой скорости. Например, в Hive мой недавний запрос по тем же данным за те же 3 месяца выполнялся не менее двух часов. У Exasol-а потрясающая скорость. Аналитикам в Exasol нравится, что они могут просто джойнить таблицы с событиями и делать запросы по ним. Это отлично, потому что не приходится никого учить какому-то новому языку, в отличие от систем, которые мы также используем, например, Yandex ClickHouse или даже Hive, или Presto. В общем, Exasol – это действительно удобно»

 

Артем Иванов, директор по бизнес-аналитике, Badoo:

«Поддерживать фреймворк А/B тестирования нам также помогает Exasol. Сейчас в параллель у нас идет более 100 тестов по поведению пользователей, ценам, оплатам, локализации и многому другому. Некоторые из них удачные, некоторые – нет, и чтобы понимать, что сработало, мы помещаем все вычисления в Exasol. При наших объемах пользователей вы можете представить, какие ресурсы нужны, чтобы вычислить пересечения между сотнями различных тестов в зависимости от измерения, страны, и быть уверенными, что выводы верны. Благодаря Exasol мы можем делать такую аналитику действительно быстро»

 

PyExasol: Open-source Python драйвер для Exasol, разработанный в Badoo

Badoo даже инвестирует в создание Open Source решений для Exasol. В компании разработали кастомный Python драйвер для Exasol, PyExasol. PyExasol основан на веб-сокетах и позволяет легко интегрироваться с pandas (Python Data Analysis Library) через HTTP, а также снимает ограничение на одно CPU ядро.

Репозиторий на GitHub: https://github.com/badoo/pyexasol

 

P.s. Протестировать Exasol Вы можете несколькими способами:

a. на основе бесплатной версии, Exasol Community Edition. Это полнофункциональная версия аналитической базы данных, ограниченная 200 Гигабайтами сырых данных. Она идеально подходит для тестирования с последующим переходом на платную версию Exasol, по мере роста данных.

b. Триальная версия Exasol на 30 дней в облаке AWS (с 200$ на аккаунт для тестирования)

c. Демо версия Exasol на собственном облаке компании, ExaCloud.

 

Если у Вас есть дополнительные вопросы по Exasol, или Вы хотите провести пилотный проект, пожалуйста, обращайтесь к нам. Консультационная Группа АТК – официальный партнер Exasol в России, со штатом сертифицированных специалистов по развертыванию и поддержке решений на основе Exasol.

Обращайтесь: consult@atkcg.ru или +7 (495) 937 16 50

 

Источники:

Хабр: Exasol: опыт использования в Badoo

Inspired Business media: A Badoo Data Story | Artem Ivanov – Badoo

Big Data LDN: Blueprint Series: Data Engineering in Badoo, handling 20 billion events per day