На чем построить систему записи, хранения и удобного анализа данных с датчиков?
Здравствуйте!
Есть система телеметрии объекта, которая отсылает на сервер данные по TCP-IP по GPRS. Данные с датчиков (давления, температуры, реле и тд.) поступают несколько раз в секунду. Это нужно для создания математической модели объекта. На сегодняшний день все данные сервером записываться в Excel файл. И каждые сутки создается новый Excel файл с названием текущей даты, чтоб хоть как-то различать логи хотя бы по дням. Суточный лог в Excel весит 300 мегабайт (9 ГБ в месяц). Задача проанализировать показатели за месяц/неделю превращается в ад, так-как нужно перелопатить 30 таблиц (в каждой по 250 т. строк), что невозможно сделать оперативно, да и RAM в 16 ГБ едва хватает. Хочется найти какую-то единую архитектуру, желательно Open source для Windows, в которую все эти данные можно быстро записывать (несколько раз в секунду по 100 значений разных датчиков), и потом удобно их просматривать, анализировать и возможно делать отчеты. Самым удобным был бы вариант, при котором запись в базу данных можно было осуществлять с Matlab, а анализ уже в среде ПО которое предназначено для этого.
Если обобщить - нужен аналог ThingSpeak в качестве ПО для Windows только без ограничений на скорость и количество записей.
stratosmi, Я видимо пропустил момент, а когда было модно системные ресурсы без необходимости просто так разбазаривать при наличии более оптимально решения?
Я видимо пропустил момент, а когда было модно системные ресурсы без необходимости просто так разбазаривать при наличии более оптимально решения?
Красиво завернули, но теперь давайте конкретику:
В чем оптимальность?
В чем экономия ресурсов?
Вижу следующие недостатки:
1) БД Кликхаус, предназначенная для анализа слабоструктуированных данных предлагается к применению на проекте, данные в котором вполне себе определенные, прекрасно анализируются в классических реляционных СУБД.
2) Ресурсов на таких данных будет больше жрать как раз Кликхаус.
3) Кликхаус пока редкая экзотика, мало community, мало сопутствующего софта
Так в чем у Кликхауса плюс на этой задаче, может я чего не знаю?
stratosmi, есть статьи, например https://habr.com/post/416681/ есть берчмарки которые лень искать, есть сосед программист средней руки который её использует в работе, его готовая php-библиотека, есть куча докладов, например https://www.youtube.com/watch?v=TAiCXHgZn50 и есть не согласные с моим мнением которые могут таковыми и оставаться. Postgresql прекрасная база у которой есть как минимум одно прекрасное преимущество - лёгкость репликации в отличие от ClickHouse которой нужен ZooKeeper
Postgresql прекрасная база у которой есть как минимум одно прекрасное преимущество
И здесь ошибаетесь.
Постргрес хорошо реплицируется в небольших масштабах.
В том время как для Кликхауса при необходимости действительно масштабных решений - нет таких ограничений как у Постгреса.
Не утруждайте себя.
Бенчмарки зависит от данных и от их обработки.
Для данной конкретной задачи, озвучанной топикстартеру СУБД колоночного типа будут хуже по бенчмаркам, нежели реляционные СУБД.
InfluxDB, Prometheus, Grafana - для других целей
Они для оперативной работы с метриками.
Да - они отлично отработают большие объемы новых данных. Отлично покажут, что происходит с датчиками прямо сейчас. Или час назад.
Но.
Они плохо подходят под ретроспективный анализ - по итогам месяца и т.п.