SlideShare a Scribd company logo
1 of 35
Хранилище данных
Avito: аналитика
для
микросервисной
архитектуры
Данилов Артем
Сайт объявлений №1 в России*
Moscow
St. Petersburg
Novosibirsk
N. Novgorod
Kazan
Samara
Rostov
Volgograd
Voronezh
Ufa
Chelyabinsk
Omsk
Krasnoyarsk
Vladivostok
Yakutsk
Irkutsk
Khabarovsk
ТОП-10 самых
посещаемых
сайтов Рунета
34 миллиона
активных
объявлений
35 миллионов
уникальных
посетителей в
месяц
50%
просмотров с
мобильных
устройств
* По данным ООО «ЛПСР» (LiveInternet.ru) в категории «Товары и услуги» на 30 августа 2016 года
Развитие хранилища данных
4
10
15
17
21
Cluster size (servers)
11
26
51
76
101
Cluster size (TB)
3
14
23
29
35
Integrated systems count
Подробнее о хранилище данных Avito
• Как мы считали трафик на Вертике — Голов
Николай — http://www.highload.ru/2014/abstra
cts/1570.html
• От больших к очень большим данным — зачем
нужна нормализация в Big Data? — Голов
Николай -
http://www.highload.ru/2015/abstracts/1878.html
Развитие хранилища данных
300
560
740
1,000
1,500
0
200
400
600
800
1,000
1,200
1,400
1,600
Clickstream size (millions/day)
Clickstream – что это такое
Просмотр
…
Отправка письма
Размещение
Контакт
Отклонение
Пользователь
Сотрудник
Робот
log01
log02
logNN
Пример события
{
"_id" : ObjectId("59fec1938a3e56701d106a13"),
"src_id" : NumberLong(12),
"u" : "26ipf817.1mya2z7.fjq4avqn2b",
"uid" : NumberLong(96385256),
"url" : "/api/items/tabs/",
"version" : NumberLong(0),
"dt" : NumberLong(1509867913),
"dtm" : 1509867913.97855,
"eid" : NumberLong(1272),
"ip" : "10.9.2.104",
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64;
Trident/7.0; rv:11.0) like Gecko”
}
Clickstream – как это было
Push Route ELT
3 Days
Backend
(PHP)
Микросервисы – резкий рост событий
Проблемы
Время
Перестали отвечать
аналитическим потребностям
Ошибки
Деградация качества
событий
Backend – разработчик
«Привет! Мне поставили задачу, чтобы завести событие
clickstream. У меня тут вопросы есть:
• Что это такое — clickstream?
• А какие атрибуты надо писать для десктопа? А для
мобилки?
• А есть примеры, как писать для гошечки?
• А куда писать?»
Ищем причины проблем
Нет общего формата событий и примеров для новых
языков – каждый пишет свой маленький велосипед
Каждое событие пишется вручную. Много ошибок –
забыли обязательный атрибут, сделали лишний,
сломали что-то старое…
Аналитик
«Привет! Мы делаем новый крутой микросервис и хотим
аналитику.
• Как нам можно по-быстрому завести 15 новых событий?
• Да, правда, такое событие уже существует?! Извините, мы
сделали новое, не заметили.
• Хм, как бы это попроще все объяснить разработчику.
• А кто делал это событие, оно странное, хотим разобраться – к
кому идти? А таск почитать есть?
• Здравствуйте, а мы из домофонда. И тоже хотим события. Как
нам их сделать?»
Ищем причины проблем
Общий язык между аналитиками, backend’ом, DWH –
WTF и к кому идти
Сложность навигации в текущий событиях и их
истории. Дублирование уже существующих
DWH – разработчик
Ааааа! Сколько вопросов!
• А кто опять забыл обязательное поле?
• Хм, а почему в этом событии льется древний атрибут? Его
же везде убрали.
Пора что-то предпринять!
Ищем причины проблем
Почти все вопросы в итоге приходят к DWH
разработчику
Отсутствие версионирования событий. И, как следствие,
отсутствие четкой схемы событий
Осознание
В условиях быстрого роста событий и их
децентрализации, для дальнейшего
масштабирования необходима единая точка знаний о
всех событиях
Единый справочник событий
Базовые
метаданные
Языковые пакеты
для backend –
разработчиков
Валидация
событий
Версионирование
событий
Дополнительные
метаданные
Гайды, гайды и
еще раз гайды
package bo
type HelpdeskTicketCreateV0 struct {
*event
}
func NewHelpdeskTicketCreateV0Event()
*HelpdeskTicketCreateV0 {
e := &HelpdeskTicketCreateV0{
event: new(
4,
802,
0,
`dwh.helpdesk`,
),
}
e.required["ctid"] = struct{}{}
return e
}
Пример события – Go и Python
class HelpdeskTicketCreateV0(BaseEvent):
_fields = dict(
tag=Field('tag', str, True, False),
esp_tag=Field('esp_tag', str, True, False),
field_eid=Field('eid', int, True, False),
field_ctid=Field('ctid', int, True, False),
field_version=Field('version', int, True, False),
field_src_id=Field('src_id', int, True, False),
field_dt=Field('dt', int, True, False),
)
def __init__(self, field_ctid: int,
field_url: Optional[str] = None,
field_ip: Optional[str] = None,)
super().__init__()
# Non changeable
self.esp_tag: str = '’
self.field_dt = int(time())
self.tag: str = 'dwh.helpdesk’
self.field_src_id: int = 4
self.field_eid: int = 802
self.field_version: int = 0
# Changeable
self.field_ctid: int = field_ctid
Дополнительные потребности
• Ребят, могу ли я в свой крутой микросервис тянуть данные
не из DWH, а сразу из MongoDB?
• Мы хотим показывать нашим пользователям чистую от
ботов статистику в реальном времени. Как нам это сделать?
Централизация трансляции событий (ESP)
NotificationRegistration
Search Item
Segmentation
Stat Counter
ESP
Подробнее об ESP
События, события и ещё раз события.
Опыт построения Event Stream Processing — Сухов
Антон — http://ritfest.ru/2017/abstracts/2652.html
К чему это все привело – рост типов
событий
0
100
200
300
400
500
600
700
800
900
1000
09/2013 03/2014 09/2014 03/2015 09/2015 03/2016 09/2016 03/2017 09/2017
Осознание
MVP
V2
Clickstream – как это стало
ELT
ESP
Segmentation
Stat Counter
Push
Get
Route
О чем не подумали сразу
Единый
справочник полей
Дополнительные
метаданные
Перевод старых
событий на новые
языковые пакеты
Как назвать пользователя
user_id
user id
userid
user
uid
u
Что может передаваться в mid
metro_id
microcategory_id
Какой тип данных у времени события
Timestamp
Int
Float
Varchar
Дополнительные метаданные
Тип события
• Просмотр страницы
• Контакт
• Прочее
Уровень логирования
• Только сырые данные
• Все отчеты, кроме детального
• Все отчеты, включая детальный
Перевод старых событий на новые
языковые пакеты
Просвещение
Мониторинг событий
Возможность тестирование событий
Что дальше?
Реализация автоматической загрузки в DWH
Полная централизация очистки событий
Stream – аналитика в реальном времени
Обвязка событиями без участия аналитиков
Микросервисы => централизация
Централизация
•Централизация описания событий
•Централизация трансляции событий (ESP)
Автоматизация
• Автоматическая загрузка событий в DWH
• Автоматическая отчетность
Спасибо
за
внимание
!

More Related Content

What's hot

Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцMikhail Tabunov
 
Перевод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQLПеревод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQLDmitry Kremer
 
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.42014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4Nikolay Samokhvalov
 
2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN searchNikolay Samokhvalov
 
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминHOWWEDOIT
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016Anastasia Goryacheva
 
Как устроено API в AppMetrica
Как устроено API в AppMetricaКак устроено API в AppMetrica
Как устроено API в AppMetricaAppTractor
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
 
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Ontico
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6Nikolay Samokhvalov
 
МойСклад, облачный сервис ERP
МойСклад, облачный сервис ERPМойСклад, облачный сервис ERP
МойСклад, облачный сервис ERPOleg Alexeev
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентовNikolay Samokhvalov
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанкуNikolay Sivko
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 

What's hot (20)

Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 
Перевод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQLПеревод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQL
 
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.42014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
 
2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search
 
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
 
Avito Stachka 2012
Avito Stachka 2012Avito Stachka 2012
Avito Stachka 2012
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
 
Как устроено API в AppMetrica
Как устроено API в AppMetricaКак устроено API в AppMetrica
Как устроено API в AppMetrica
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
 
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
 
МойСклад, облачный сервис ERP
МойСклад, облачный сервис ERPМойСклад, облачный сервис ERP
МойСклад, облачный сервис ERP
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанку
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 

Viewers also liked

Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...Ontico
 
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Ontico
 
WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...
WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...
WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...Ontico
 
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...Ontico
 
Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore)
Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore) Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore)
Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore) Ontico
 
Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ)
Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ) Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ)
Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ) Ontico
 
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)Ontico
 
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Ontico
 
Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017Ontico
 
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)Ontico
 
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)Ontico
 
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Ontico
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
 
Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...
Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...
Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...Ontico
 
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)Ontico
 
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)Ontico
 
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...Ontico
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
 
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Ontico
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ontico
 

Viewers also liked (20)

Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
 
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
 
WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...
WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...
WAMP[-proto] как основа композитных SOA-приложений и его имплементация на Lua...
 
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
 
Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore)
Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore) Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore)
Блокчейн. Lego для интересующихся / Александр Боргардт (GolosCore)
 
Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ)
Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ) Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ)
Организации в бирюзовом цвете / Мария Груздева (НИУ ВШЭ)
 
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
 
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
 
Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017
 
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
 
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
 
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
 
Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...
Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...
Рост с нуля до 15000 сообщений в секунду. Мучительный и поучительный / Юрий К...
 
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
 
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
 
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
 
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 

Similar to Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Данилов (Avito)

МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)Ontico
 
Ефимов, презентация на финале DeepHack
Ефимов, презентация на финале DeepHackЕфимов, презентация на финале DeepHack
Ефимов, презентация на финале DeepHackSkolkovo Robotics Center
 
Devconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логированииDevconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логированииAlex Popov
 
Логическая витрина данных
Логическая витрина данныхЛогическая витрина данных
Логическая витрина данныхSergey Gorshkov
 
Zabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discoveryZabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discoveryBadoo Development
 
Одна лекция из мира Big Data: тренды, кейсы и технологии
Одна лекция из мира Big Data: тренды, кейсы и технологии Одна лекция из мира Big Data: тренды, кейсы и технологии
Одна лекция из мира Big Data: тренды, кейсы и технологии Evgeniy Pavlovskiy
 
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...Coub
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...HappyDev
 
Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"OdessaJS Conf
 
Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Andzhey Arshavskiy
 
Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...
Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...
Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...MobileUp
 
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...Positive Hack Days
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинOntico
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circleOlexiy Strashko
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Media Gorod
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circlewebriders
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Ontico
 
InfoboxCloud для СМИ
InfoboxCloud для СМИInfoboxCloud для СМИ
InfoboxCloud для СМИYuri Trukhin
 

Similar to Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Данилов (Avito) (20)

МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)
 
Ефимов, презентация на финале DeepHack
Ефимов, презентация на финале DeepHackЕфимов, презентация на финале DeepHack
Ефимов, презентация на финале DeepHack
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
Devconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логированииDevconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логировании
 
Логическая витрина данных
Логическая витрина данныхЛогическая витрина данных
Логическая витрина данных
 
Zabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discoveryZabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discovery
 
Одна лекция из мира Big Data: тренды, кейсы и технологии
Одна лекция из мира Big Data: тренды, кейсы и технологии Одна лекция из мира Big Data: тренды, кейсы и технологии
Одна лекция из мира Big Data: тренды, кейсы и технологии
 
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
 
Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"
 
Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)
 
Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...
Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...
Мобильная разработка и IoT, machine learning, VR. Специфика проектов с точки ...
 
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circle
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
 
Mouse
MouseMouse
Mouse
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circle
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
 
InfoboxCloud для СМИ
InfoboxCloud для СМИInfoboxCloud для СМИ
InfoboxCloud для СМИ
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)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
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в 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...
 

Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Данилов (Avito)

  • 2. Сайт объявлений №1 в России* Moscow St. Petersburg Novosibirsk N. Novgorod Kazan Samara Rostov Volgograd Voronezh Ufa Chelyabinsk Omsk Krasnoyarsk Vladivostok Yakutsk Irkutsk Khabarovsk ТОП-10 самых посещаемых сайтов Рунета 34 миллиона активных объявлений 35 миллионов уникальных посетителей в месяц 50% просмотров с мобильных устройств * По данным ООО «ЛПСР» (LiveInternet.ru) в категории «Товары и услуги» на 30 августа 2016 года
  • 3. Развитие хранилища данных 4 10 15 17 21 Cluster size (servers) 11 26 51 76 101 Cluster size (TB) 3 14 23 29 35 Integrated systems count
  • 4. Подробнее о хранилище данных Avito • Как мы считали трафик на Вертике — Голов Николай — http://www.highload.ru/2014/abstra cts/1570.html • От больших к очень большим данным — зачем нужна нормализация в Big Data? — Голов Николай - http://www.highload.ru/2015/abstracts/1878.html
  • 6. Clickstream – что это такое Просмотр … Отправка письма Размещение Контакт Отклонение Пользователь Сотрудник Робот log01 log02 logNN
  • 7. Пример события { "_id" : ObjectId("59fec1938a3e56701d106a13"), "src_id" : NumberLong(12), "u" : "26ipf817.1mya2z7.fjq4avqn2b", "uid" : NumberLong(96385256), "url" : "/api/items/tabs/", "version" : NumberLong(0), "dt" : NumberLong(1509867913), "dtm" : 1509867913.97855, "eid" : NumberLong(1272), "ip" : "10.9.2.104", "ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko” }
  • 8. Clickstream – как это было Push Route ELT 3 Days Backend (PHP)
  • 11. Backend – разработчик «Привет! Мне поставили задачу, чтобы завести событие clickstream. У меня тут вопросы есть: • Что это такое — clickstream? • А какие атрибуты надо писать для десктопа? А для мобилки? • А есть примеры, как писать для гошечки? • А куда писать?»
  • 12. Ищем причины проблем Нет общего формата событий и примеров для новых языков – каждый пишет свой маленький велосипед Каждое событие пишется вручную. Много ошибок – забыли обязательный атрибут, сделали лишний, сломали что-то старое…
  • 13. Аналитик «Привет! Мы делаем новый крутой микросервис и хотим аналитику. • Как нам можно по-быстрому завести 15 новых событий? • Да, правда, такое событие уже существует?! Извините, мы сделали новое, не заметили. • Хм, как бы это попроще все объяснить разработчику. • А кто делал это событие, оно странное, хотим разобраться – к кому идти? А таск почитать есть? • Здравствуйте, а мы из домофонда. И тоже хотим события. Как нам их сделать?»
  • 14. Ищем причины проблем Общий язык между аналитиками, backend’ом, DWH – WTF и к кому идти Сложность навигации в текущий событиях и их истории. Дублирование уже существующих
  • 15. DWH – разработчик Ааааа! Сколько вопросов! • А кто опять забыл обязательное поле? • Хм, а почему в этом событии льется древний атрибут? Его же везде убрали. Пора что-то предпринять!
  • 16. Ищем причины проблем Почти все вопросы в итоге приходят к DWH разработчику Отсутствие версионирования событий. И, как следствие, отсутствие четкой схемы событий
  • 17. Осознание В условиях быстрого роста событий и их децентрализации, для дальнейшего масштабирования необходима единая точка знаний о всех событиях
  • 18. Единый справочник событий Базовые метаданные Языковые пакеты для backend – разработчиков Валидация событий Версионирование событий Дополнительные метаданные Гайды, гайды и еще раз гайды
  • 19. package bo type HelpdeskTicketCreateV0 struct { *event } func NewHelpdeskTicketCreateV0Event() *HelpdeskTicketCreateV0 { e := &HelpdeskTicketCreateV0{ event: new( 4, 802, 0, `dwh.helpdesk`, ), } e.required["ctid"] = struct{}{} return e } Пример события – Go и Python class HelpdeskTicketCreateV0(BaseEvent): _fields = dict( tag=Field('tag', str, True, False), esp_tag=Field('esp_tag', str, True, False), field_eid=Field('eid', int, True, False), field_ctid=Field('ctid', int, True, False), field_version=Field('version', int, True, False), field_src_id=Field('src_id', int, True, False), field_dt=Field('dt', int, True, False), ) def __init__(self, field_ctid: int, field_url: Optional[str] = None, field_ip: Optional[str] = None,) super().__init__() # Non changeable self.esp_tag: str = '’ self.field_dt = int(time()) self.tag: str = 'dwh.helpdesk’ self.field_src_id: int = 4 self.field_eid: int = 802 self.field_version: int = 0 # Changeable self.field_ctid: int = field_ctid
  • 20. Дополнительные потребности • Ребят, могу ли я в свой крутой микросервис тянуть данные не из DWH, а сразу из MongoDB? • Мы хотим показывать нашим пользователям чистую от ботов статистику в реальном времени. Как нам это сделать?
  • 21. Централизация трансляции событий (ESP) NotificationRegistration Search Item Segmentation Stat Counter ESP
  • 22. Подробнее об ESP События, события и ещё раз события. Опыт построения Event Stream Processing — Сухов Антон — http://ritfest.ru/2017/abstracts/2652.html
  • 23. К чему это все привело – рост типов событий 0 100 200 300 400 500 600 700 800 900 1000 09/2013 03/2014 09/2014 03/2015 09/2015 03/2016 09/2016 03/2017 09/2017 Осознание MVP V2
  • 24. Clickstream – как это стало ELT ESP Segmentation Stat Counter Push Get Route
  • 25.
  • 26.
  • 27. О чем не подумали сразу Единый справочник полей Дополнительные метаданные Перевод старых событий на новые языковые пакеты
  • 29. Что может передаваться в mid metro_id microcategory_id
  • 30. Какой тип данных у времени события Timestamp Int Float Varchar
  • 31. Дополнительные метаданные Тип события • Просмотр страницы • Контакт • Прочее Уровень логирования • Только сырые данные • Все отчеты, кроме детального • Все отчеты, включая детальный
  • 32. Перевод старых событий на новые языковые пакеты Просвещение Мониторинг событий Возможность тестирование событий
  • 33. Что дальше? Реализация автоматической загрузки в DWH Полная централизация очистки событий Stream – аналитика в реальном времени Обвязка событиями без участия аналитиков
  • 34. Микросервисы => централизация Централизация •Централизация описания событий •Централизация трансляции событий (ESP) Автоматизация • Автоматическая загрузка событий в DWH • Автоматическая отчетность

Editor's Notes

  1. О том: что Авито большой и о том, что много данных
  2. Как развивалось хранилище данных HP Vertica + Anchor Modelling
  3. О том: что это сердце аналитики Поведение пользователей – AB тесты, конверсии, аномалии
  4. Ckickstream – поток событий, которые происходят у вас в продукте. Немного слов о том, что такое Домофонод и Автотека
  5. Fluentd – коллектор логов На беке все хардкодом – каждое событие написано немного по-своему
  6. Не забыть сказать, зачем вообще стали переходить на микросервисы
  7. Добавить историй и мяса
  8. Добавить историй и мяса История – забыли метку AB теста, записали событие в другую коллекцию, пока писали свое событие – сломали чужое – контакты.
  9. Добавить историй и мяса
  10. Например, завели второе событие просмотра телефона. Событие заполнение какой-либо формы. Добавить историй и мяса
  11. Добавить историй и мяса
  12. Добавить историй и мяса
  13. ToDo: детали + скрины Обязательно расшифровать что такое языковой пакет, детальнее рассказать о кодогенерации Языковой пакет – библиотека, которая умеет генерить код отправки событий для конкретного яхыка
  14. Обязательно сказать, что до этого данные тянули из вертики
  15. ToDo: наглядно показать разницу со старой схемой
  16. по мотивации и легаси (попытались автоматически перевести, а что мне за это будет, логика в событиях)
  17. Единый репозиторий метаданных позволяет быстро и удобно управлять существующими и новыми источниками данных и их жизненными циклом. Единая шина данных позволяет быстро и удобно маршрутизировать события в децентрализованной архитектуре.