Как мы считали трафик на Вертике, Николай Голов (avito)
DESCRIPTION
Доклад Николая Голова на HIghLoad++ 2014.TRANSCRIPT
Как мы считали трафик на ВертикеГолов Николай
Что такое Avito.ru?#1 сайт объявлений в России*
–3.9 млрд просмотров в месяц
–40 млн посетителей в месяц
Уникальные посетители Avito.ru
46 млн
Активные объявления Avito.ru
20 млн
Что такое Avito.ru?Более 150млн просмотров в день – один из крупнейших сайтов объявлений в мире
20 млн активных объявлений**: Недвижимость, Транспорт, Работа, Услуги, Товары для дома и т. д.
Big data инсталляция Авито
Backoffice DB Clickstream
(10-серверный кластер)
• ~500 млн. событий/день• Загрузка раз в 15 минут
Таблицы действий посетителей~ 50 таблиц~ 100 млрд. записей
Таблицы Backoffice~ 300 таблиц~ до 2 млрд. записей
Daily syncLive connection
Внешние данные
Analysts
~26TB несжатых данных
• Загрузка раз в 20 мин.• Все изменения
Отчет о трафике – задача
Город
Регион Краснодарский край
Сочи Краснодар Категория
Мастеркатегория
Автомобили
Новые Подержанные
День
Неделя
Месяц Июль
07.07.2014
07.07.2014 08.07.2014 09.07.2014
…
Меры:• Количество просмотров• Количество сессий• Количество уникальных
посетителей
Отчет о трафике - размерность
Город
Регион Краснодарский край
Сочи Краснодар Категория
Мастеркатегория
Автомобили
Новые Подержанные
Количество сочетаний:5000*67*3*3*… >3mln
85
~5000
11
67
Малые измерения:• 3+ типа действий• 3 платформы (api, desc,
mobile)• …
Отчет о трафике - размерность
250 mln/day
Select count(...), …
From TGroup by …
250 mln. 3 mln. groups
Неаддитивные меры
….Сочи, Новые авто,
1.1.1.127, 13:09 07.08.2014
….
250 mln. ~20*250mln.=5 bln. 3 mln. groups
Российская федерация, все
Краснодарский край, Авто
Сочи, Авто
Сочи, Новые авто
Все авито
Размерность с учетом неаддитивности
5 bln/day250
mln/day3
mln/day
Day = 5 bln.Week = 150 bln.Month = 1.5 trln.
Задача сложна =>шардирование
Тонкость – шардирование возможно только по результирующим данным, не по входящим.
Шардирование по аггрегатным группам
Сочи, подержанные авто
Сочи, новые авто
Краснодар, новые авто
Краснодарский край, авто
Уникальные непустые сочетания входных измерений
Уникальные непустые сочетания целевых
измерений
Инициализация метаданных
Исходные события
Уникальные непустые сочетания целевых измерений
Уникальные непустые входные
сочетания
Красн. край, авто
Кранодар, авто
Сочи, авто
Сочи, подерж.
авто
Матрица соответствия
входных и целевых сочетаний
Рассчет шарда
Выделение целевой группы по остатку от деления уникального ключа
Красн. край, авто
Кранодар, авто
Сочи, авто
Сочи, подерж.
авто
Отбор входных групп по матрице соответствия
Размножение записей отобранных входных групп
Select count(distinct...), …
From TGroup by …Аггрегация
Алгоритм: реализация
Select count(distinct...), …
From TGroup by …
Выделение фрагмента, отбор целевых групп, оркестровка
07.07.2014 08.07.2014 09.07.2014
Параллельный запуск SQL
запросов по дням
Результаты• Сутки: ~250 млн. на вход, 7
фрагментов, 1-2 часа.• Неделя: ~2 млрд. на вход, 14
фрагментов, 4-5 часов.• Месяц: ~7 млрд. на вход, 21
фрагмент, 16-18 часов.