EMQX数据直接对接TDengine数据库

发布于:2025-07-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

EMQX数据直接对接TDengine数据库

最近系统中引进了新的数据库 TDengine 数据库

TDengine 是一个高性能、开源的时序数据库

我们这边主要看中了他的 高性能写入极致压缩高性能都是读取

本文重点介绍 EMQX数据是怎么直接对接TDengine数据库的(本文默认已经安装好TDengine数据库)

在EMQX的官网文档中是可以直接对接TDengine数据库的。将 MQTT 数据写入到 TDengine | EMQX文档

要将MQTT中的数据直接写入到TDengine数据库中,需要两步:

第一步,建表

在TDengine数据库中创建与MQTT消息内容相匹配的数据库结构,这个与MySQL建表类似。

在这里插入图片描述

建表是有STables和Tables之分的,MQTT消息的存储,建议创建STables,这样可以创建逻辑子表。提高存储和查询的效率。创建的时候只创建超表即可。具体查看官方文档

在这里插入图片描述

第二步,建立连接

要建立连接,首先要先进入EMQX的管理后台,一般是MQTT地址加18083端口

在这里插入图片描述

2.1、创建连接器

首先要创建一个HTTP协议的连接器,用来做EMQX和TDengine之间的连接。

在这里插入图片描述

创建的时候有两点需要注意,第一点就是连接的URL第二点就是请求头的键。

在这里插入图片描述

  • 此处的 6041/resl/sql 这个地址格式是 TDengine 官方规定的、用于通过其 RESTful API 执行 SQL 命令的标准入口点

  • 此处的 Authorization 是必须要有的,如果没有测试连接也是可以成功,但是在执行sql操作的时候不会成功,后面具体的值,是根据用户名个密码生成的 可以参考官方文档地址

在这里插入图片描述

在这里插入图片描述

获取到相关value值之后,可以根据官方文档来验证是否可以查到相关数据。验证sql可以记上limit限制,避免数据过多造成卡顿。

可以根据此处的提示生产对应的value值,填上即可。

2.2、创建规则

2.2.1、数据输入

在这里插入图片描述

此处sql配置的内容,即为MQTT中的消息,想要哪个主题,哪个字段直接配置即可

2.2.2、数据输出

在这里插入图片描述

此处的动作选择创建动作即可,连接器的选择,直接选择2.1处创建的连接器即可,其他请求投不需要变动。

重要的是请求体SQL的书写。跟MySQL的insert语句是一样的 ,但是值的处理都是动态的。

INSERT INTO 库名.表名 (
	tbname,
    aaa, -- 字符串
    bbb, -- 数值或者时间
    aaa.ccc -- 取数据中的数据
)
VALUES
	(
		'父表名_${动态子表区分字段}',
		'${aaa}',
		$ { bbb },
		'${ccc}'
	)

这样就可以准确的传输数据到TD数据都对应的表中了。


网站公告

今日签到

点亮在社区的每一天
去签到