В настоящее время я наблюдаю за 5 различными зданиями, в каждом здании около 300 комнат. В каждой комнате есть 4 датчика, три из которых контролируют температуру в разных точках комнаты, а один — количество энергии (киловатт), потребляемой комнатой.
В настоящее время я опрашиваю каждый датчик каждые 15 минут, что дает 576 000 записей в день, количество зданий, которые я отслеживаю, скоро увеличится.
В настоящее время я храню всю информацию в MySQL, у меня есть таблица MySQL для каждого типа датчика, поэтому таблицы называются «мощность», «temp1», «temp2», «temp3». Столбцы в этих таблицах: «id», «building_id», «эпоха», «значение».
Затем я использую эти данные для создания графиков с помощью библиотеки Chart.js и статистических данных, таких как количество энергии, потребляемой зданием в течение определенного периода времени и т. д. Все это я делаю с помощью PHP.
Я не верю, что моя база данных MySQL сможет справиться с этим без серьезного масштабирования и кластеризации.
Мне нужно иметь возможность просматривать исторические данные за 5 лет, хотя некоторая степень детализации может быть потеряна через определенный период времени.
Мне сообщили, что RRD может решить мою проблему, и я провел некоторое исследование, но у меня все еще есть некоторые вопросы.
Позволит ли мне по-прежнему создавать свои собственные графики, используя библиотеку Chart.js? Если я могу получить данные времени/значения JSON из RRD, все должно быть в порядке.
Сколько различных RRD-файлов мне также потребуется создать? Нужно ли мне по одному на здание? За номер? На датчик? Будет ли это по-прежнему легко управлять.
У меня есть PHP-скрипты, которые запускаются с 15-минутными интервалами, извлекают данные с датчиков с помощью SNMP, а затем вставляют данные в MySQL, если я могу использовать те же сценарии для вставки в RRD, что также было бы здорово, судя по тому, что я видел. вы можете использовать PHP для вставки в RRD, так что все должно быть в порядке.
РЕДАКТИРОВАТЬ: сейчас я читаю http://michael.bouvy.net/blog/en/2013/04/28/graph-data-rrdtool-sensors-arduino/, который начал отвечать на некоторые из моих вопросов.