首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在InfluxDB数据到达之前对其进行过滤

问在InfluxDB数据到达之前对其进行过滤
EN

Stack Overflow用户
提问于 2018-08-28 00:17:28
回答 2查看 288关注 0票数 1

朋友们,我把我从MQTT得到的温度残留物保存了7天,通过Telegraf把它们存入我的RapsberyyPI InfluxDB上。当我可视化我的温度时,我看到的是,我得到的温度值在-200到+200之间,这似乎是随机的。所以大多数情况下,我确实得到了正确的值。我想知道是否有一种方法可以告诉telegraf只接受-30到+40之间的值,这样我就可以在将这些值插入到Influx DB之前过滤它们。有什么想法吗?数据的来源是运行在我的Rapsi上的aRTL_433嗅探器,并以JSON的形式发送它得到的任何东西。看起来数据并不总是像我所需要的那样准确。

EN

回答 2

Stack Overflow用户

发布于 2018-08-29 20:58:35

您可以尝试创建一个连续查询,该查询只接受您范围内的值。要做到这一点,您的数据库中需要有两个度量,我将它们称为raw_temp和temp。可能是这样的:

代码语言:javascript
复制
    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,这使得数据操作变得非常容易。

票数 2
EN

Stack Overflow用户

发布于 2018-08-30 20:52:26

使用kapacitor来解决这个问题。

首先,使用短保留策略创建一个数据库来存储原始数据。第二步,创建tick DSL脚本以获取所需内容,然后将其写回新数据库,如下所示

代码语言:javascript
复制
batch
   |query('''
       ...
   ''')
       .period(5m)
       .every(5m)
       .groupBy(time(1m))
    |influxDBOut()
        .database('some_database')
        .retentionPolicy('autogen')
        .measurement('some_measurement')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52043315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档