【发布时间】:2020-06-21 02:06:06
【问题描述】:
有没有办法将所有收到的消息存储到 VerneMQ 中的 TimescaleDB 中?
有没有我可以使用的现有插件或服务?
【问题讨论】:
有没有办法将所有收到的消息存储到 VerneMQ 中的 TimescaleDB 中?
有没有我可以使用的现有插件或服务?
【问题讨论】:
如果您正在寻找特定于制造的解决方案,您可以查看United Manufacturing Hub 中的“mqtt-to-postgresql”。
微服务从 VerneMQ 获取数据并将它们(负载平衡和面向性能)写入 TimescaleDB。
如果您要寻找更通用的东西,您可以自己构建它并从上述项目中复制一些代码。
【讨论】:
首先,我想概括一下这个问题。对于所描述的用例,它与“将 MQTT 数据写入 PostgreSQL”相同。
您需要使用任何 MQTT 兼容客户端订阅 VerneMQ 主题,然后将此数据写入 PostgreSQL 数据库(为此目的,TimescaleDB 完全依赖 PostgreSQL)。
选项 1:编写自己的服务来读取 MQTT 主题(使用 Eclipse Paho 等 MQTT 客户端库),然后将数据写入 PostgreSQL。
选项 2:使用 Telegraf (https://docs.timescale.com/timescaledb/latest/tutorials/telegraf-output-plugin/#before-we-start)。 Telegraf 的唯一问题 - 支持 PostgreSQL 的版本只能作为 fork 提供,并且已经过时 (1.13)。
选项 3:使用 Node-RED。他们有内置插件来读取 MQTT 数据和一个插件来写入 PostgreSQL(这个工作:https://flows.nodered.org/node/node-red-contrib-re-postgres)
【讨论】:
我对 VerneMQ 不熟悉,但一个快速的谷歌建议它应该与 PostgreSQL (https://vernemq.com/blog/2015/08/05/vernemq-says-hi-to-postgresql.html) 集成。
TimescaleDB 是作为 PostgreSQL 的扩展而构建的,并通过标准 PostgreSQL 连接器说话。因此,首先尝试任何现有的 PostgreSQL 连接器/集成。
【讨论】:
为此,您需要一个自定义插件。 VerneMQ 背后的公司或其他合作伙伴可以帮助您咨询编写自定义插件。或者,您可以使用 VerneMQ webhook 将数据发送到将写入 TimescaleDB 的 webhook,尽管这不是更有效/可扩展的方法。
【讨论】: