10
datacentric.ru Переход с Map-Reduce на Real-time архитектуру Александр Петров Head of R&D

Выступление Александра Петрова из DCA (Data-Centric Alliance)

  • Upload
    -

  • View
    53

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Выступление Александра Петрова из DCA (Data-Centric Alliance)

datacentric.ru

Переход с Map-Reduce на Real-time архитектуру

Александр Петров

Head of R&D

Page 2: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Архитектура DMP

• Действия пользователей накапливаются в HBASE

• Раз в сутки Analytic Engine полностью пересчитывает профили пользователей

• Analytic Engine – контейнер скриптов

• Задержка – минимум сутки

Page 3: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Ретаргетинг: вероятность конверсии

Page 4: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Нужен Real-Time engine

• Для того чтобы не терять ценных клиентов – нужно обрабатывать данные без задержек

• Хочется сохранить возможность конструирования сложных сегментов

• Не хочется каждый день обрабатывать всю историю пользователей (даже если она не изменилась)

Page 5: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Модель Акторов

Актор– примитив параллельного расчета.

Актор умеет: • Принимать сообщения• Посылать сообщения• Создавать новых актор’ов• Устанавливать как

реагировать на сообщения

Page 6: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Akka + Akka cluster

Akka – toolkit для scala и java реализующий модель акторов. Предназначен для разработки масштабируемых приложений. Akka cluster – часть akka реализующая распределенную сетевую работу модели акторов.

http://akka.io/ - сайт akkahttps://www.coursera.org/course/reactive - курс на coursera

Page 7: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Архитектура Real-Time engine

• 1 юзер= 1 актор

• Юзеры шардированы по User ID

• Dispatcher читает сообщения из очереди и отправляет actor’у соответствующему User ID (или создает новый actor)

• Актор при получении сообщения запускает скритпы сегментации

Page 8: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Результаты

• Входящий поток 3000 событий в секунду• 3 ноды akka-кластера• TTL – 1 час, 7 миллионов пользователей онлайн• Среднее время выполнение одного скрипта < 5мс• Средняя задержка между попаданием юзера в очередь и обновлением

информации в aerospike – 1 секунда

Page 9: Выступление Александра Петрова из DCA (Data-Centric Alliance)

Where we go

• Персистентность – сейчас RT обрабатывает только последнюю сессию юзера

• Перевод всех источников данных на RT-обработку и полный отказ от map-reduce

• Уменьшение количества используемых мощностей за счет обработки только активных пользователей

Page 10: Выступление Александра Петрова из DCA (Data-Centric Alliance)

БОЛЬШИЕ ДАННЫЕДЛЯ БОЛЬШОГО ДЕЛА

[email protected]

Спасибо за внимание!