Мы храним данные наших устройств IIOT в InfluxDB.
Наши устройства IIOT отправляют только измененные данные. Таким образом, неизмененные данные «не» повторяются большую часть времени.
Пример:
time malfunction_status service_status warning_status
---- ------------------ -------------- --------------
2020-02-27T14:55:38Z 0 0 0
2020-02-27T14:55:39Z 0 1 0
2020-02-27T14:55:57Z 1 0 1
2020-02-27T14:56:08Z 1 1 1
2020-02-27T14:56:24Z 1 1 1
2020-02-27T14:57:38Z 0
2020-02-27T14:57:50Z 0 0
2020-02-27T14:57:56Z 1 1
2020-02-27T14:58:19Z 1 0 0
2020-02-27T15:01:16Z 0 1
2020-02-27T15:01:25Z 1
2020-02-27T15:01:54Z 1 0 0
2020-02-27T15:02:34Z 0 1
2020-02-27T15:02:52Z 1 1 0
2020-02-27T15:02:53Z 0 0 1
2020-03-02T15:33:37Z 0 0 1
2020-03-02T15:33:57Z 1
2020-03-02T15:33:58Z 1
2020-03-02T15:35:21Z 0 0 0
2020-03-02T15:35:38Z 1 1
2020-03-02T15:35:49Z 1 0
2020-03-02T15:35:53Z 0 1
2020-03-02T15:36:16Z 1 0
2020-03-03T08:52:40Z 0 0
2020-03-03T08:53:24Z 1
2020-03-03T08:53:33Z 1 1
2020-03-03T08:55:16Z 0 0
2020-03-03T08:55:29Z 0 1
2020-03-03T08:55:57Z 1 0
2020-03-03T08:56:11Z 1 1
2020-03-03T08:58:04Z 0
2020-03-03T08:58:35Z 0
2020-03-03T09:02:37Z 1 0 1
2020-03-03T09:02:52Z 0 1 0
2020-03-03T09:03:02Z 1 0 1
2020-03-03T09:03:06Z 0 0
2020-03-03T09:03:37Z 1 1 1
2020-03-03T09:04:42Z 0
2020-03-03T09:04:45Z 0 0
2020-03-03T09:05:04Z 1
2020-03-03T09:05:15Z 1 1
2020-03-03T09:06:26Z 0 0 0
Кажется невозможным найти все вхождения каждого _status, являющегося '0', с помощью простого query.
select / _status / из iot_data, где mId = 'sim_az1_0' и malfunction_status = 0 и service_status = 0 и warning_status = 0
дает только те строки, которые имеют конкретные значения '0' для каждого статуса.
time malfunction_status service_status warning_status
---- ------------------ -------------- --------------
2020-02-27T14:55:38Z 0 0 0
2020-03-02T15:35:21Z 0 0 0
2020-03-03T09:06:26Z 0 0 0
Как минимум результат:
2020-03-03T09:04:42Z 0
2020-03-03T09:04:45Z 0 0
для 2020-03-03T09: 04: 45Z отсутствует.
Это будет только последний вариант - заполнить все значения столбцов при вставке данных в Influx, когда мы записываем сотни столбцов.
В настоящее время я должен был бы выбрать поля из Influx и оценить их за пределами выбора.
Элегантное решение с притоком запросов?
Спасибо!