Real time dmp

Post on 11-Aug-2015

635 views 1 download

Transcript of Real time dmp

datacentric.ru

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

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

Head of R&D

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

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

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

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

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

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

Нужен Real-Time engine

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

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

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

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

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

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

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

Akka + Akka cluster

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

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

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

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

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

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

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

Результаты

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

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

Where we go

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

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

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

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

a.petrov@datacentric.ru

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