В настоящее время я сталкиваюсь с проблемой выбора лучшего инструмента для хранения огромного количества данных со многих устройств. Проблема заключается в следующем: около 1000 устройств отправляют каждую секунду около 150 параметров (скажем, двойной точности), которые должны быть сохранены и легко доступны для многих клиентов. Легкий доступ означает, что мне нужен доступ в реальном времени к данным за последние 2-3 часа и быстрый доступ к данным за последние 24 часа.
Мой первыйПопытка была базой данных SQL с Redis в качестве слоя кэширования для последних чтений, но SQL не справляется с тысячами запросов к таким большим данным временных рядов.
Поскольку Redis выполнял довольно потрясающе с тысячами операций ввода-вывода, я думалто, что пребывание только с Redis (удаление полностью SQL) решит мои проблемы. К сожалению, большой экземпляр Redis довольно дорог с облачными провайдерами.
Поэтому я начал искать решения и нашел что-то вроде баз данных временных рядов (InfluxDb и TimescaleDb). В описании показано, что эти базы данных созданы для тех же проблем, что и мои.
Вопросы: могут ли они поддерживать тысячи операций ввода-вывода? Насколько они могут быть большими? Какие машины им нужны для хорошей работы? Вы рекомендуете этот подход или, может быть, есть лучшие решения?
Спасибо за ответы заранее:)