使用EMQX将数据写入IotDB

一、启动一个IotDB容器

bash 复制代码
sudo docker run --rm -p 6667:6667 -p 2883:2883 -e enable_rest_service=true -e enable_mqtt_service=true -e mqtt_port=2883 --name iotdb apache/iotdb:1.3.2-standalone 

重要参数解析:

1. 容器生命周期管理

--rm

  • 容器停止后自动删除,避免积累未使用的容器

2. 网络端口映射

bash 复制代码
-p 6667:6667 -p 2883:2883
  • -p 6667:6667: 将容器内的 6667 端口映射到主机的 6667 端口

    • 6667 是 IoTDB 的默认 RPC 端口
  • -p 2883:2883: 将容器内的 2883 端口映射到主机的 2883 端口

    • 2883 是 MQTT 服务端口

3. 环境变量配置

bash 复制代码
-e enable_rest_service=true
-e enable_mqtt_service=true  
-e mqtt_port=2883
  • 启用 REST API 服务

  • 启用 MQTT 协议支持

  • 设置 MQTT 服务端口为 2883

二、设置存储组

bash 复制代码
# 进入容器内部
docker exec -it iotdb bash start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root

# 设置存储组
set storage group to root.imooc;

三、在Emqx创建连接器,设置规则和添加动作

1、创建连接

连接器上填写的信息MQTT服务地址,为上面启动的Iotdb容器的服务器地址和端口,用户名和密码默认为root。填写好点击下方的测试连接,如果提示连接成功,则进入下一步。

2、设置规则

重点说下里面的SQL

sql 复制代码
SELECT
  clientid,
  now_timestamp('millisecond') as now_ts_ms,
  payload.charging as charging
FROM
  "charge/stat"

FROM中的charge/stat为主题,payload.charging为发送的消息

编写完SQL可以启用调试,以验证是否正确

主题必须与SQL中from后面的主题保持一致,Payload也必须SQL中的payload点后面的值保持一致,编写完点击运行测试,如果无误,可以在输出结果中看到正常输出的结果。

3、添加动作

这里主要是选择连接器和主题,然后填写消息模板,消息模板要写对,否则消息无法保存到IotDB中。消息模板的示例:

sql 复制代码
{
  "device":"root.imooc.${clientid}",
  "timestamp":${now_ts_ms},
  "measurements":[
    "charging"
    ],
  "values":[
    ${charging}
    ]
}

device中root.imooc为IotDB中存储组的名称,measurements为payload的值,values需要提供数组的形式数据,为payload的值。

四、在mqttx上发送消息

五、验证消息

在emqx上查看消息是否命中

使用IotDB查询数据是否写入

从中可以看到数据已经写入到IotDB。

相关推荐
Apache IoTDB3 天前
从 IoTDB 到 CED-DB:哈尔滨工业大学探索云边端协同时序数据库
数据库·时序数据库·iotdb
Flynn Liang5 天前
物联网时序数据乱序问题全链路治理:从设备到存储的五层实战(附 Flink/Kafka/IoTDB 配置级代码)
flink·kafka·iot·iotdb·emqx·乱序·时序数据
骑着蜗牛撵大象3279 天前
一套引擎撑起树表双模型:Apache IoTDB 2.0 与 TsFile 的选型答卷
apache·时序数据库·iotdb·tsfile·树模型·表模型
wangbing112520 天前
开发指南149-IotDB-常用命令
linux·运维·iotdb
倔强的石头10620 天前
突破高基数瓶颈——国产替代浪潮下的时序选型
iotdb
一个天蝎座 白勺 程序猿1 个月前
IoTDB集群扩容:从慌乱到从容的经验分享
数据库·wpf·时序数据库·iotdb
Apache IoTDB2 个月前
效能优化:IoTDB 性能调优的底层逻辑与实战路径
iotdb·技术大会
Apache IoTDB2 个月前
天谋科技 CTO 乔嘉林:多模态时序数智化软件栈
人工智能·科技·iotdb·技术大会
A-刘晨阳2 个月前
时序数据基础设施选型手册:Apache IoTDB 技术深度解析与性能实战
apache·iotdb
TDengine (老段)2 个月前
TDengine vs InfluxDB — 全方位对比
大数据·数据库·物联网·时序数据库·tdengine·涛思数据·iotdb