如何解决将来自mqtt队列的数据存储到两个influxdb测量中
我建立了一个由telegraf,influxdb和chronograf组成的influxdata架构,以从环境传感器(温度,压力和湿度)收集数据。目前,我正在完美地从mqtt收集数据和元数据,以进行具有无限数据保留的测量。
现在,该项目的用户希望通过传递给mqtt的记录将数据无限次存储在一个度量中,将元数据存储在第二个度量中,保留6个月。
当前,我没有问题可以解析json,解码base64,将值转换为标签和字段,重命名它们或将它们存储在telegraf中一次测量中。但是我不太擅长将它们复制为两个度量并并行处理它们。
例如,这是我从mqtt捕获的json帧:
indexedDb
这是从mqtt队列创建的记录存储在influxdb中的方式:
{
"applicationID":"1","applicationName":"chirp-app","deviceName":"0200000001","devEUI":"60c5a8fffe76ea89","rxInfo":[
{
"gatewayID":"60c5a8fffe76154b","uplinkID":"70254019-7f5b-42cd-8cdf-c6f1eaf421c8","name":"rak7249","time":"2020-10-23T14:29:14.260435Z","rssi":-76,"loRaSNR":9,"location":{
"latitude":43.50438,"longitude":1.52947,"altitude":293
}
}
],"txInfo":{
"frequency":868100000,"dr":0
},"adr":true,"fCnt":1290,"fPort":8,"data":"CAIBZwdosAZzJyYCZwCtBAIBtA==","object":{
"analogInput":{
"4":4.36,"8":3.59
},"barometer":{
"6":1002.2
},"humiditySensor":{
"7":88
},"temperatureSensor":{
"2":17.3
}
}
}
我想要得到什么:
- 一个包含数据的系列:
Connected to http://localhost:8086 version 1.8.3 InfluxDB shell version: 1.8.3 > use iot Using database iot > select time,device_id,longitude,latitude,altitude,temperature,pressure,humidity from device_0200000001 order by time desc limit 5 name: device_0200000001 time device_id longitude latitude altitude temperature pressure humidity ---- --------- --------- -------- -------- ----------- -------- -------- 1603698989487116640 0200000001 1.52989 43.50454 275 11.4 995.5 89 1603698383735575991 0200000001 1.52981 43.50444 267 11.4 995.5 89 1603697777987368971 0200000001 1.52983 43.5044 232 11.4 995.3 88.5 1603697172240129341 0200000001 1.52988 43.50445 235 11.5 995.2 88 1603696566494739058 0200000001 1.52999 43.50457 243 11.6 995 87
- 包含数据和元数据的系列:
device_02000001 (time,humidity)
有人可以告诉我如何并行处理数据,然后将其存储在两个不同的测量值中吗?
我已经尝试创建两个使用相同mqtt文件的配置文件,但是每次重新启动telegraf时,它都会崩溃,并出现错误systemd [1]:device_meta_0200000001 (time,humidity,gatewayID,uplinkID,name,gw_time,rssi,loRaSNR,altitude)
感谢您的帮助
蒂埃里
解决方法
问题仅是文件所有权问题。使用sudo创建的conf文件属于root用户
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。