Я использую MongoDB для обработки временных рядов, это работает нормально, так как до сих пор не так много данных, но теперь мне нужно определить, что необходимо для масштабирования для большего количества данных. Сегодня в день поступают + 200 тыс. Данных, каждый из которых поступает каждые пару секунд, что не является огромным, но это должно скоро увеличиться.Mongo для нерегулярных временных рядов
Используемый набор данных далеко не эффективен, поскольку каждый фрагмент данных (parentID, timestamp, value) создает документ. Я видел несколько подходов, которые используют документ, который хранит таймеры в течение целого часа (например, с помощью внутреннего массива, который хранит данные за каждую секунду), это действительно здорово, но поскольку данные, которые я должен обрабатывать, не принимаются регулярно (в зависимости от parentID), этот подход может оказаться неприемлемым.
Среди данных, которые я получаю:
- некоторые из них получили каждую пару секунд
- некоторые из них получили каждые несколько минут
Для всех этих данных, шаг между 2 последовательными из них не обязательно то же самое.
Есть ли лучший подход, который я мог бы использовать для обработки этих данных, например, используя другую моделью, которая могла бы помочь масштабировать БД?
Сегодня работает только один процесс mongod, и мне интересно, на каком уровне может понадобиться осколок, какие-либо советы для этого?
Дело в том, что в моих случаях использования, когда данные хранятся в документе, запрос на их получение основывается на parentID и на метке времени. С подходом, который вы предлагаете, я не смог бы индексировать метку времени, не так ли? – Luc
Правильно - вы могли бы сохранить первую и последнюю временную метку на документе, скажем, и использовать их. Но предопределенная схема просто не может работать для вас, в зависимости от того, что все ваши требования. – wdberkeley