Есть некая система в которую приходят некие сообщения (время, всякие там данные в float), сии сообщения пока что приходят в объеме 200тыс в сутки, но в дальнейшем планируется нагрузка и в миллион, а то может быть и более.
Сообщения надо обрабатывать, фильтровать, конвертировать, а потом сохранять... на годы (может на пару лет), и уметь быстро по сохраненным данным строить отчеты, графики, диаграммки.
Собственно вся кухня ныне успешно работает на одном сервере, и хранится все это дело в одной таблице субд, с индексами но без внешних ключей, однако с 30млн записей (там сейчас столько) мне не нравится время выборки более менее сложных отчетов.
Вопрос:
- как лучше хранить
- как обрабатывать (вытекает из ответа на предыдущий), банальные реляционные субд ээ немного убоги своим SQL (чтобы мне выбрать данные на основе предыдущего анализа лога приходиться делать временную таблицу, хорошо если одну)
- как бы реализовать очереди, всяких технологий MQ валом, но у меня идет рассылка сообщений сторонним серверам, которые часто падают, виснут, да и интернет тоже, в итоге надо как то сохранять не отправленное в файле (сервер может лежать неделями) а затем потихонечку, дабы не уронить сторонний сервер, сливать туда данные. Прозреваю, что с учетом нагрузки лучше всего будет что-то простое с файлами, но рисовать велосипед некогда.