docker部署,mqtt使用wehook桥接数据到时序数据库
使用docker实现emqx桥接数据到taos数据库
在物联网当中,有很多的数据发布和存储版本,这里举例涛思数据库和mqtt的结合,首先在官网查阅这两个结合。此处需要注意,在之前的官网上面的版本号推荐使用的wehook的版本进行数据桥接,但是经过查询现在新的版本已经优化掉了这个,现在实现可以直接与taos数据库建立连接。
然后这里使用Webhook桥接数据,并通过RESTful接口发送。
首先我们要安装涛思数据库或者其他的时序数据库,如果想轻量化使用建议使用docker来进行体验。所以建议先安装和了解一下docker。
容器化部署是体验 EMQX 的最快方式,因此本节将以容器化部署为例,带您开始完整的 EMQX 使用旅程。
在命令行工具中输入如下命令,下载并运行最新版 EMQX。
运行此命令前,请确保 Docker (opens new window)已安装且已启动。
先拉取镜像,版本号推荐使用这个。这个版本使用wehook桥接数据。(后续应该有更好的连接)
docker pull emqx/emqx:5.0.26
然后启动该容器
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest
通过浏览器访问
http://localhost:18083/ (opens new window)(localhost 可替换为您的实际 IP 地址)以访问 EMQX Dashboard 管理控制台,进行设备连接与相关指标监控管理。这时候emqx就已经启动成功了。然后输入默认用户名及密码进行登录:
admin
public
安装 TDengine
通过 Docker 安装并启动 TDengine:
启动一个 TDengine数据库 容器
docker run --name TDengine -p 6041:6041 tdengine/tdengine
这时候执行发布需要数据库有这个数据表,就是存储的超级表,可以在涛思数据库官网进行查看这个概念进行理解和学习。下面创建一个超级表。
首先进入容器,这个地方将TDengine替换成容器的id
使用docker ps
查看容器id
docker exec -it (容器id)bash
在容器中连接到 TDengine 服务器,然后输入以下命令进入涛思数据库
taos
然后创建并选择数据库
CREATE DATABASE mqtt;
use mqtt;
在连接这个数据库时发现docker启动的taos数据库无法连接上,经过收集和查阅文档,应该将localhost的值修改为本机的ipv4的地址才可以连接成功到docker的tao数据库。
使用ipconfig命令实现查询本机ip
然后将taos数据库的桥接服务
将url的ip地址设置为本机的ipv4的地址
设置成这种格式,http请求带上认证的消息
Authorization Basic cm9vdDp0YW9zZGF0YQ==
测试连接成功之后建立规则(这个规则主要是进行数据的存储,也可以通过官网查询文档来自己建立)
查询官网文档规则的建立方式
SELECT <字段名> FROM <主题> [WHERE <条件>]
SELECT 语句用于决定最终的输出结果里的字段。比如:
下面 SQL 的输出结果中将只有两个字段 “a” 和 “b”:
SELECT a, b FROM “t/#”
选取 username 为 ‘abc’ 的终端发来的消息,输出结果为所有可用字段:
SELECT * FROM “#” WHERE username = ‘abc’
选取 clientid 为 ‘abc’ 的终端发来的消息,输出结果将只有 cid 一个字段。
注意 cid 变量是在 SELECT 语句中定义的,故可在 WHERE 语句中使用:
SELECT clientid as cid FROM “#” WHERE cid = ‘abc’
选取 username 为 ‘abc’ 的终端发来的消息,输出结果将只有 cid 一个字段。
注意虽然 SELECT 语句中只选取了 cid 一个字段,所有消息发布事件中的可用字段 (比如 clientid、username 等) 仍然可以在 WHERE 语句中使用:
SELECT clientid as cid FROM “#” WHERE username = ‘abc’
但下面这个 SQL 语句就不能工作了,因为变量 xyz 既不是消息发布事件中的可用字段,又没有在 SELECT 语句中定义:
SELECT clientid as cid FROM “#” WHERE xyz = ‘abc’
然后根据这个官网文档配置自己的主题订阅的方式和,参数,如果是桥接数据转发需要订阅和修改自己的这个sql文档,可以去官网查看更详细的版本。这个地方设置好之后可以在本地的docker服务当中的emqx
文档配置自己的主题订阅的方式和,参数,如果是桥接数据转发需要订阅和修改自己的这个sql文档,可以去官网查看更详细的版本。这个地方设置好之后可以在本地的docker服务当中的emqx
面板当中查看数据去向和发布是否成功,如果发布不成功看一下是建立失败的原因还是taos数据库的问题。
更多推荐
所有评论(0)