SlideShare a Scribd company logo
1 of 10
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/ - сайт akka
https://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
Спасибо за внимание!

More Related Content

Similar to Real time dmp

Redux и изоморфные приложения
Redux и изоморфные приложенияRedux и изоморфные приложения
Redux и изоморфные приложенияJohn Wezel
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Антон Шестаков
 
Опыт использования инновационных технологий линейки продуктов Autodesk IDS ...
Опыт использования  инновационных технологий линейки продуктов Autodesk IDS  ...Опыт использования  инновационных технологий линейки продуктов Autodesk IDS  ...
Опыт использования инновационных технологий линейки продуктов Autodesk IDS ...RnD_SM
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaRoman Zykov
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINECleverics
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на RailsАндрей Колешко
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?Clouds NN
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Fwdays
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула "Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула Fwdays
 
Дайджест вакансий ИТ-Парка ферваль
Дайджест вакансий ИТ-Парка фервальДайджест вакансий ИТ-Парка ферваль
Дайджест вакансий ИТ-Парка фервальАндрей Жеглов
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"LogeekNightUkraine
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
 

Similar to Real time dmp (20)

YaC 2013 Notes
YaC 2013 NotesYaC 2013 Notes
YaC 2013 Notes
 
Redux и изоморфные приложения
Redux и изоморфные приложенияRedux и изоморфные приложения
Redux и изоморфные приложения
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
 
Опыт использования инновационных технологий линейки продуктов Autodesk IDS ...
Опыт использования  инновационных технологий линейки продуктов Autodesk IDS  ...Опыт использования  инновационных технологий линейки продуктов Autodesk IDS  ...
Опыт использования инновационных технологий линейки продуктов Autodesk IDS ...
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINE
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на Rails
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
Diplom 1
Diplom 1Diplom 1
Diplom 1
 
Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
 
Let's Take a Look at Akka-Java
Let's Take a Look at Akka-JavaLet's Take a Look at Akka-Java
Let's Take a Look at Akka-Java
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула "Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула
 
Дайджест вакансий ИТ-Парка ферваль
Дайджест вакансий ИТ-Парка фервальДайджест вакансий ИТ-Парка ферваль
Дайджест вакансий ИТ-Парка ферваль
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
 

Real time dmp

  • 1. datacentric.ru Переход с Map-Reduce на Real-time архитектуру Александр Петров Head of R&D
  • 2. Архитектура DMP • Действия пользователей накапливаются в HBASE • Раз в сутки Analytic Engine полностью пересчитывает профили пользователей • Analytic Engine – контейнер скриптов • Задержка – минимум сутки
  • 4. Нужен Real-Time engine • Для того чтобы не терять ценных клиентов – нужно обрабатывать данные без задержек • Хочется сохранить возможность конструирования сложных сегментов • Не хочется каждый день обрабатывать всю историю пользователей (даже если она не изменилась)
  • 5. Модель Акторов Актор– примитив параллельного расчета. Актор умеет: • Принимать сообщения • Посылать сообщения • Создавать новых актор’ов • Устанавливать как реагировать на сообщения
  • 6. Akka + Akka cluster Akka – toolkit для scala и java реализующий модель акторов. Предназначен для разработки масштабируемых приложений. Akka cluster – часть akka реализующая распределенную сетевую работу модели акторов. http://akka.io/ - сайт akka https://www.coursera.org/course/reactive - курс на coursera
  • 7. Архитектура Real-Time engine • 1 юзер= 1 актор • Юзеры шардированы по User ID • Dispatcher читает сообщения из очереди и отправляет actor’у соответствующему User ID (или создает новый actor) • Актор при получении сообщения запускает скритпы сегментации
  • 8. Результаты • Входящий поток 3000 событий в секунду • 3 ноды akka-кластера • TTL – 1 час, 7 миллионов пользователей онлайн • Среднее время выполнение одного скрипта < 5мс • Средняя задержка между попаданием юзера в очередь и обновлением информации в aerospike – 1 секунда
  • 9. Where we go • Персистентность – сейчас RT обрабатывает только последнюю сессию юзера • Перевод всех источников данных на RT-обработку и полный отказ от map- reduce • Уменьшение количества используемых мощностей за счет обработки только активных пользователей
  • 10. БОЛЬШИЕ ДАННЫЕ ДЛЯ БОЛЬШОГО ДЕЛА a.petrov@datacentric.ru Спасибо за внимание!