Структура MongoDB БД для аггрегации больших объемов данных
У меня есть коллекция, в которой хранится статистика кликов. На основе этих данных нужно строить отчеты. Вот пример документа
Код:
{Код:
2014-12-24 | 50 lp clicks | 21 offer clicks | $600 // srv1 + srv2
db.clicks.aggregate([
{$match: {'_id.dateVisited': new Date('2014-12-24')}},
{$group:{
_id: '$_id.dateVisited',
totalLandingpageClicksCount: {$sum: '$value.landingpageClicksCount'},
totalOfferTrackingsCount: {$sum: '$value.offerTrackingsCount'},
totalOfferTrackingsAmount: {$sum: '$value.offerTrackingsAmount'}
}}
])
В $match может быть включено несколько параметров (в зависимости что выберет пользователь), $group тоже может быть по нескольми параметрам, например по по dateVisited, serverId и campaignId и т.д. Аггрегация для такой коллекции работает оочень медленно, т.к. на каждый dateVisited приходится ~10000 документов, и если пользователь захочет получить отчет за год, то $group должен обработать 365*10000=3650000 документов Есть идеи, как спроектировать структуру БД, чтобы построение отчетов работало быстро? |
Я бы хотел увидеть ответ ))
Не нашли решений? |
| Часовой пояс GMT +3, время: 09:00. |