Как организовать логирование опроса большого числа unit-устройств?
Вопрос по архитектуре логирования.
Имеется, скажем, 1000 устройств (модемы, например).
Каждую минуту каждое устройство опрашивается и параметры, возвращенные устройством сохраняются для а) истории и б) для быстрого интерактивного построения графиков, аналитических отчетов, статистических исследований и пр.
Вопрос в том, как сохранять.
Пока вижу так.
Сперва логи пишутся в файл. На каждый день отдельный файл.
Затем логи переносятся в какую-то колоночную СУБД, скажем, в 00:00 - весь файл за раз.
Вопрос 1: Насколько годна такая архитектура? Что можно улучшить?
Вопрос 2: Какая СУБД лучше всего подойдет для этих целей?
Рональд Макдональд, в логах нет текста. В каждой записи порядка 10 числовых параметров, то есть 10 полей. Важно очень быстро строить графики и обрабатывать статистику по данным из это таблицы. Насколько я понимаю, для этих целей и нужны колоночные СУБД -- очень быстро читать временные ряды.
Иван Мельников, в sql server есть возможность сделать колоночную таблицу. В postgres есть плагин timescaledb для временных рядов. Подумайте еще о том, как вы будете буферизировать данные до сохранения. Возможно вам надо писать в какую-то очередь, а из очереди асинхронно сохранять. В любом случае вам надо оптимизировать своё хранилище под вставку. И придумать как вы миллион устройств будете одновременно опрашивать, чтобы время не съезжало.