24
Обработка статистики в системе управления баннерной рекламой Артём Вольфтруб

Hl++ Stats

  • Upload
    ontico

  • View
    395

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Hl++ Stats

Обработка статистики в системе управления баннерной рекламой

Артём Вольфтруб

Page 2: Hl++ Stats

2

Общая архитектура системы

Баннер сервера

….

Балансировщик нагрузки

Сервер обработки статистики

База данных

Портал

Merchant

Affiliate

Балансировщик нагрузки

Page 3: Hl++ Stats

3

Размеры рекламной сети• Более 200 000 рекламных площадок• Более 20 000 рекламодателей• Более 450 000 000 регистрируемых событий

ежедневно

3

Page 4: Hl++ Stats

4

Нагрузка на систему• 15 000 запросов к баннерным машинам в секунду• Около 500 запросов к порталу в секунду

4

Page 5: Hl++ Stats

5

Число регистрируемых событий

5

0

100 000 000

200 000 000

300 000 000

400 000 000

500 000 000

600 000 000

700 000 000

Page 6: Hl++ Stats

6

• Распределение нагрузки– Балансирвка запросов с помощью аппаратного LB

• Повышение отказоустойчивости– Взаимозаменяемость баннерных машин– Дублирование ключевых компонентов системы

Page 7: Hl++ Stats

7

Особенности бизнес модели • Качество сервиса определяется количеством

участников• Отсутствует комиссия за показы• Площадки заинтересованы в эффективном

размещении• Вовлёченность в процесс

7

Page 8: Hl++ Stats

8

Что регистрируем• Показы• Клики• Транзакции

8

Page 9: Hl++ Stats

9

Комиссия за клики и транзакции

0%

20%

40%

60%

80%

100%

Транзакции

Клики

Page 10: Hl++ Stats

10

Основные проблемы• Очень много данных• Очень мало времени на обработку• Система должна работать непрерывно

10

Page 11: Hl++ Stats

11

Способы уменьшения объема данных• Предварительная группировка• Проверка кликов

11

Page 12: Hl++ Stats

12

Способы ускорения обработки• Ускорение загрузки там, где это возможно• Задачи не должны блокировать друг друга• Запуск процессов по расписанию• Взаимосвязанность задач – это хорошо

Page 13: Hl++ Stats

13

Этапы обработки статистики• Загрузка логов с баннерных серверов• Предварительная группировка данных• Проверка кликов• Загрузка данных в БД• Расчет статистики

13

Page 14: Hl++ Stats

14

Проблемы базы данных• Гигантский объем таблиц с показами и

кликами• Необходимо блокировать загрузку на время

расчета статистики

Page 15: Hl++ Stats

15

Предварительное заполнение БД

15

Pageviews

Clicks

Transactions

Pageviews_stg

Clicks_stg

Transactions_stg

Stats_stg

Триггеры Хранимые процедуры

Page 16: Hl++ Stats

16

Денормализация данных

16

Рекламные кампании

Stats_stg

Статистика для рекламодателей

Площадки

Баннеры

Рекламные места

Рекламодатели

Баннеры

Статистика для владельцев

рекламных площадок

Page 17: Hl++ Stats

17

Отображение статистики

17

Merchant

Affiliate

База данных

Web Сервер

Кэш

при

лож

ени

я

Front End

Page 18: Hl++ Stats

18

Почему мы кэшируем данные• Запросы часто повторяются

• Статистика обновляется по расписанию. Если нет новых данных, зачем обращатся к БД?

• Сортировка средствами БД работает медленнее

18

Page 19: Hl++ Stats

19

Контроль работоспособности• Остановка системы приводит к лавинообразному

накоплению необработанной информации• Клиенты хотят видеть свои данные• Обработка статистики используется для биллинга

19

Page 20: Hl++ Stats

20

Основные индикаторы• Число необработанных файлов на сервере• Задержка загрузки файлов с баннер сервера• Задержка обработки статистики

Page 21: Hl++ Stats

21

Что мы контролируем• Баннерные сервера• Сервер обработки статистики• База данных

21

Page 22: Hl++ Stats

22

Как мы контролируем• Готовые решения для контроля на аппаратном

уровне (Nagios)

• Собственные разработки для контроля на уровне приложения

22

Page 23: Hl++ Stats

23

Как защититься от сбоев• Раньше знаешь, больше спишь• Проблему нужно предвидеть• С проблемой нужно научиться бороться

23

Page 24: Hl++ Stats

Вопросы?

Email: [email protected]