Фильтруйте данные InfluxDB до их поступления - PullRequest
0 голосов
/ 27 августа 2018

Folks, Я храню в течение 7 дней температурные сообщения, которые я получаю через MQTT через Telegraf в сообщения на моем RapsberyyPI InfluxDB. то, что я вижу, когда я визуализирую свою температуру, получаю значения температуры в диапазоне от -200 до +200, что кажется случайным. Так что большую часть времени я получаю правильное значение. Просто подумайте, есть ли способ сообщить телеграфу, что он принимает значения только в диапазоне от -30 до +40, чтобы я мог отфильтровать эти значения, прежде чем вставить их в свою базу данных Influx. Есть идеи? Источник данных - c omming от сниффера aRTL_433, работающего на моем Rapsi и отправляющего все, что он получил, в виде JSON. Похоже, эти данные не всегда так точны, как они мне нужны.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

используйте kapacitor для решения этой проблемы.

сначала создайте базу данных с короткой политикой хранения для хранения необработанных данных. На втором шаге создайте сценарий tick DSL, чтобы получить то, что вы хотите, а затем запишите его обратно в новую базу данных, например

.
batch
   |query('''
       ...
   ''')
       .period(5m)
       .every(5m)
       .groupBy(time(1m))
    |influxDBOut()
        .database('some_database')
        .retentionPolicy('autogen')
        .measurement('some_measurement')
0 голосов
/ 29 августа 2018

Вы можете попытаться создать непрерывный запрос, который принимает только значения в вашем диапазоне. Для этого вам нужно иметь два измерения в вашей базе данных, я буду называть их raw_temp и temp. Может быть что-то вроде:

    CREATE CONTINUOUS QUERY "temp_filter" ON "my_db"
    RESAMPLE EVERY 30s FOR 30s
    BEGIN
    SELECT "temperature" INTO "temp" from "raw_temp" where "temperature" > -40 and 
    "temperature" < 40 GROUP BY *
    END

А затем создайте непрерывный запрос, который удаляет в raw_temp все, что старше часа. Или вы можете установить Kapacitor, который позволяет довольно легко манипулировать данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...