Господа, имеется реальная, сложная задача по БД. Конечно, возможно я заработался и не вижу лёгкого подхода, но за тем и прошу совета.
Ситуация такова: имеется объект в Postgre. Количество, на данный момент - 20 тысяч. Однако это даже не 1% процент от того, что набежит за несколько месяцев в продакшне.
По каждому объекту собирается статистика за каждый день, что есть отдельный объект, добро это хранится в MongoDB. Потому что объёмы большие, нереально большие на инсерты и апдейты, но не на селекты. Логика такова, что статистика за текущий день пересчитывается каждые 30 минут и может меняться в + или в -. Такая же ситуация со статистикой за предыдущие дни, только пересчитывается она редко.
Каждый объект в постгре отображается пользователю и необходимо просчитывать для него статистику за месяц, неделю, всё время. Благо есть пагинация и единовременно необходимо отдавать до 50 объектов, просчитать это довольно просто - 3 MapReduce запроса на каждый объект.
Проблема в том, что необходимо реализовывать такие вещи, как сортировка и фильтрация. Это не говоря уже о том, что если захочется отображать, например, 1000 объектов, то хорошо бы иметь статистику сразу.
Задача понятна - нужно просчитывать статистику и хранить её в БД, кешировать. Например, раз в час. Однако, мы имеем, скажем, 3 млн объектов и по каждому мы должны сделать, пока, 3 MapReduce в MongoDB и 1 Update в Postgre.
Если MapReduce пока меня не сильно беспокоит(пока не знаю что делать в принципе), то с кучей апдейтов нужно что-то придумать. Как вариант, гнать в ту же MongoDB, так как она хорошо справляется с кучей апдейтов и инсертов.
Какие мысли, идеи? Буду рад любым советам.
Похожие темы
- Галерея PuppyRus свежий взгляд (2013)
- Форум [браузеросрач] «свежий взгляд» (2009)
- Форум Нужен интерфейс и база данных (2019)
- Форум [Qt] Требуется свежий взгляд (2010)
- Форум Библиотеки и Базы данных. Нужен совет (2006)
- Форум Ручные апдейты или «свежие» дистрибутивы? (2008)
- Форум База данных (2011)
- Форум База данных (2008)
- Форум базы данных (2009)
- Форум Базы данных (2004)