当前位置: 首页 > 知识库问答 >
问题:

将来自mqtt队列的数据存储到两个influxdb度量中

长孙谦
2023-03-14

我建立了一个由telegraf、influxdb和chronograf组成的influxdata架构,用于从环境传感器(温度、压力和湿度)收集数据。目前,我正在完美地收集从mqtt到具有无限数据保留的度量的数据和元数据。

现在,项目的用户希望,从通过mqtt的记录中,数据被无限地存储在一个度量中,元数据被存储在保留6个月的第二个度量中。

{
    "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队列创建的记录存储在inflxDB中:

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(时间、device_id、温度、压力、湿度)
  • 包含数据和元数据的系列:device_meta_0200000001(时间、device_id、温度、压力、湿度、gatewayID、uplinkID、名称、gw_time、rssi、loRaSNR、纬度、经度、海拔)

谢谢你的帮助

蒂埃里

共有1个答案

晋奕
2023-03-14

问题只是文件所有权的问题。使用sudo创建的conf文件属于root用户

 类似资料:
  • 我正在尝试将 json 对象数组反序列化为 java 对象数组。我正在使用数据提供程序将此数据组合传递给测试方法,以便为每个数据集执行测试方法。 我已经创建了下面提到的数据提供程序方法,并对 JSON 进行了删除: 测试方法: 和JSON: 不幸的是,它不起作用。如果我使用如下所示的强类型对象,那么它将按预期工作: 错误: org . TestNG . internal . reflect . m

  • 本文向大家介绍将列的值存储到MySQL存储过程的变量中,包括了将列的值存储到MySQL存储过程的变量中的使用技巧和注意事项,需要的朋友参考一下 要声明变量,请在MySQL存储过程中使用DECLARE。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是创建存储过程并将上述表的列值存储在存储过程变量中的查询- 调用存储过程- 这

  • 问题内容: 在此先感谢您的帮助。 好吧,这就是我的情况。我有一个Web系统,该系统基于超声波计创建的样本进行一些与噪声相关的计算。最初,数据库仅存储这些计算的结果。但是现在,我被要求也自己存储样本。每个样本只是一个300或600个数字的列表,每个数字都有一个小数。 因此,我想到的最简单的方法是在表中添加一列,该列存储给定样本的所有计算。此列应包含数字列表。 那么我的问题是:将这一数字列表存储在单列

  • 问题内容: 我有一张供用户使用的表。但是,当用户对其个人资料进行任何更改时,我会将它们存储在临时表中,直到我批准它们为止。然后将数据复制到活动表中,并从临时表中删除。 我想要实现的是,在管理面板中或用户可以在提交前仔细检查的页面中查看数据时,我想编写一个查询,该查询将允许我从两个表中获取ID为ID的表中的数据两者都等于$ userid。然后,我想以表格形式显示它们,其中旧值显示在左列中,而新值显示

  • 问题内容: 有人可以告诉我,在以下情况下如何进行? 接收文件(MS文件,ODS,PDF) 通过Apache Tika提取公元核心元数据+通过jackrabbit-content-extractors提取内容 使用Jackrabbit将文档(内容)及其元数据存储到存储库中 ? 检索文档+元数据 我对第3点和第4点感兴趣… 详细信息:该应用程序正在以交互方式处理文档(一些分析-语言检测,单词计数等。+

  • 我是的初学者。现在,我正在尝试开发一个移动应用程序,但在将数据存储到数组列表中时遇到了一些问题。例如,数据如下所示 现在我使用的是一个名为的第三方库。要使用此库,必须以这种方式存储数据, 在这个中,id的道具是一个字符串,标签也是一个字符串。那么我如何像这样单独存储我的数据呢?例如,像这样 我已经尝试用地图的方法做到这一点。代码将是 但还是不行。 代码如下: