Вы можете сохранить все данные вашего датчика в одном measurement
.
Затем укажите tag
имя для сохранения имени датчика.
Пример:
> select * from sensors;
name: sensors
time name value
---- ---- -----
1547100000000000000 s1 500
1547200000000000000 s2 600
1547300000000000000 s3 700
1548000000000000000 s1 900
1548000000000000000 s2 800
1548000000000000000 s3 999
Чтобы извлечь последнее сохраненное значение всех датчиков в заданном временном диапазоне t
, вы можете сделать следующее:
SELECT * FROM sensors
WHERE time >= 1547000000000000000 and time <= 1547300000000000000
GROUP BY "name" order by desc limit 1;
Выход:
name: sensors
tags: name=s3
time value
---- -----
1547300000000000000 700
name: sensors
tags: name=s2
time value
---- -----
1547200000000000000 600
name: sensors
tags: name=s1
time value
---- -----
1547100000000000000 500
Приведенный выше запрос, по сути, группирует данные всех ваших датчиков в отдельные сегменты на основе вашего фильтра времени.Затем ORDER BY DESC
служит для сортировки их по убыванию, чтобы первая строка всегда была точкой с наибольшим временем.Limit 1
просто просит механизм запросов вернуть вам верхнюю 1 строку.