如何将 MQTT 数据存储到 QuestDB 中?

How can I store MQTT data into QuestDB?

我正在构建一个使用 Mosquitto 代理 IoT 传感器数据的解决方案。物联网传感器正在发布到 MQTT 主题,我想将有效负载数据存储在 QuestDB 中以供分析,使用它作为存储有哪些选择。

将数据从 MQTT 主题提取到 QuestDB 中的最简单和最快的方法之一是使用 Telegraf 通过 InfluxDB 线路协议流式传输记录。 Telegraf 的配置如下所示:

# Configuration for Telegraf agent
[agent]
  ## Default data collection interval for all inputs
  interval = "5s"
  hostname = "qdb"

[[outputs.socket_writer]]
  # Write metrics to a local QuestDB instance over TCP
  address = "tcp://127.0.0.1:9009"

[[inputs.mqtt_consumer]]
  ## The MQTT broker
  servers = ["tcp://127.0.0.1:1883"]

  ## Topics that will be subscribed to.
  topics = [
    "telegraf/host01/cpu",
    "telegraf/+/mem",
    "sensors/#",
  ]

有关 Telegraf 的 MQTT 消费者的更多信息,请参阅 plugin's README which has usage info(与 SSL 等一起使用)

此外,我要指出的是,有一些工具,例如 this example stack,其中将 MQTT 代理、Telegraf 和 QuestDB 定义为网络服务。