Структура 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, время: 13:06. |