|
Модель данных для сбора, группировки и хранения логов посещений в Cassandra.
|
|||
---|---|---|---|
#18+
Всем привет! Сразу оговорюсь, опыта работы с Cassandra нету абсолютно никакого. Пока просто рассматриваем различные потенциальные технологии для решения нашей задачи. Итак, есть баннерная сеть, порядка 200M показов в день. Всё почти как обычно... рекламодатель > кампания > баннер паблишер > сайт > зона посещение > гео > браузер > ОС В настоящее время статистика собирается в мускулях на бэкендах, далее группируется и вливается на мускульный мастер, откуда в дальнейшем и используется. Сбор, расчет и агрегирование происходит 1 раз в час и занимает примерно 20 минут. Не устраивает время расчета статистики и ее запаздывание на 1 час. Запаздывание не устраивает, т.к. данные статистики учавствуют в других бизнес-процессах, в которых запаздывание на 1 час достаточно критично. Минимальный период отображения статистики - час. Статистику нужно уметь группировать по зонам, баннерам, сайтам, браузерам, ОС и т.д. и т.п. Показывать статистику нужно уметь за произвольный период, например с такого по такое число. Встал логичный вопрос - подходит ли для таких целей Cassandra? Судя по статьям, которые я прочитал в буржуйнете - Cassandra неплохо подходит для timeperiod данных и данных для которых мы заранее знаем что мы будем делать (в нашем случае мы точно знаем какие запросы мы хотим выполнять). Грубо говоря, мы могли бы писать каждый показ в ЧАС, ДЕНЬ, МЕСЯЦ, ГОД. Была бы высокая избыточность данных, но их не так дорого хранить в 21 веке :). Очень смущает один факт - иногда, нам приходится пересчитывать статистику задним числом. Например, неправильно выставили рейты рекламодателю или паблишеру. Или рекламодателю не понравился трафик, он понизил или повысил рейты и нужно пересчитать данные за какой-то период. Т.е. придется иметь дело с UPDATE'ом данных. Что Вы можете посоветовать? Есть ли какие-то мысли на этот счет? Какие технологии лучше использовать для таких задач. PS: Может быть есть книги, в которых почитать про модель данных, как в Cassandra и, самое главное, научиться мыслить такими моделями. Заранее Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2013, 12:55 |
|
Модель данных для сбора, группировки и хранения логов посещений в Cassandra.
|
|||
---|---|---|---|
#18+
Забыл дописать - уметь группировать по дням, месяцам, часам. Сортировка не обязательна, т.к. обычно срезы, которые наблюдаем имеют достаточно маленькое кол-во строк и можно сортировать уже прямо на клиенте или на сервере. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2013, 13:07 |
|
Модель данных для сбора, группировки и хранения логов посещений в Cassandra.
|
|||
---|---|---|---|
#18+
Дык вот же, точно такой же проект с дикими нагрузками и несколькими географическими удаленными датацентрами на Кассандре: http://habrahabr.ru/company/lifestreet/blog/146115/ И кстати UPDATE для нее такая же не затратная операция, как и INSERT. Она на это и заточена :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2013, 22:42 |
|
|
Start [/forum/topic.php?fid=48&fpage=11&tid=1856929]: |
0ms |
get settings: |
16ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
25ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
123ms |
get tp. blocked users: |
1ms |
others: | 158ms |
total: | 336ms |
0 / 0 |