将mqtt队列中的数据存储到两个XDB测量中
我建立了一个由telegraf、influxdb和chronograf组成的influxdata体系结构,用于从环境传感器(温度、压力和湿度计)收集数据。目前,我正在完美地从mqtt收集数据和元数据,以实现具有无限数据保留的测量 现在,项目的用户希望,从通过mqtt的记录中,数据无限存储在一个度量中,元数据存储在第二个度量中,保留期为6个月 目前,我在解析json、解码base64、将值转换为标记和字段、重命名它们或使用telegraf将它们存储在一个度量中都没有问题。但我不太擅长将它们复制成两个测量值并并行处理它们 例如,下面是我从mqtt捕获的json帧:将mqtt队列中的数据存储到两个XDB测量中,mqtt,iot,influxdb,telegraf,Mqtt,Iot,Influxdb,Telegraf,我建立了一个由telegraf、influxdb和chronograf组成的influxdata体系结构,用于从环境传感器(温度、压力和湿度计)收集数据。目前,我正在完美地从mqtt收集数据和元数据,以实现具有无限数据保留的测量 现在,项目的用户希望,从通过mqtt的记录中,数据无限存储在一个度量中,元数据存储在第二个度量中,保留期为6个月 目前,我在解析json、解码base64、将值转换为标记和字段、重命名它们或使用telegraf将它们存储在一个度量中都没有问题。但我不太擅长将它们复制成两
{
"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
}
}
}
以下是从mqtt队列创建的记录如何存储在XDB中:
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
我想要的是:
- 包含以下数据的系列:
设备\u 02000001(时间、设备id、温度、压力、湿度)
- 包含数据和元数据的系列:
device\u meta\u 02000000001(时间、设备id、温度、压力、湿度、网关id、上行链路id、名称、gw\u时间、rssi、loRaSNR、纬度、经度、高度)
telegraf.service:Start请求重复得太快。
谢谢你的帮助
Thierry问题仅仅是文件所有权的问题。使用sudo创建的conf文件属于root用户