Skip to content

集成 IoTDB

环境准备

按照 IoTDB 快速上手 的步骤下载和安装 IoTDB。

以 Unix/OS X 系统为例,启动 IoTDB:

bash sbin/start-standalone.sh

使用 CLI 工具登录 IoTDB 命令行终端:

bash sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root

创建数据库和时间序列:

IoTDB> CREATE DATABASE root.ln

IoTDB> CREATE TIMESERIES root.ln.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
IoTDB> CREATE TIMESERIES root.ln.temperature WITH DATATYPE=FLOAT, ENCODING=RLE

创建资源

打开 EMQX Dashboard,选择左侧的 “资源” 选项卡,点击创建,资源类型选择 “IoTDB”。

填写以下参数:

  • IoTDB 版本:根据您下载的 IoTDB 版本选择。
  • IoTDB 用户名:用于认证的用户名
  • IoTDB 密码:用于认证的密码

其他参数保持默认值。

image

点击测试链接按钮,显示测试成功之后点击确定按钮创建资源。

创建规则

打开 EMQX Dashboard,选择左侧的 “规则” 选项卡。

填写规则 SQL:

SQL
SELECT
  payload.st as st,
  payload.tmp as tmp
FROM
  "t/#"

关联动作

在创建规则页面下方的 “响应动作” 界面选择 “添加动作”,然后在 “动作类型” 下拉框里选择 “数据持久化” - “保存数据到 IoTDB”。

image

填写以下参数:

  • 使用资源:在下拉框选择上面创建好的资源。
  • 设备名称:root.ln
  • 要插入的数据:要插入 IoTDB 的数据行,其中时间戳字段可以为空。测点名称可以使用 ${var} 格式的占位符。
    时间戳测点名称数据类型
    statusBOOLEAN${st}
    temperatureFLOAT${tmp}

其他参数保持默认值。

image

最后点击 “确定” 按钮完成动作的创建,并返回规则创建页面点击 “确定”。

规则已经创建完成,现在发一条消息:

  • Topic: t/1

  • QoS: 0

  • Payload: {"st": true, "tmp": 36.5}

在 IoTDB 终端中查询结果:

IoTDB> select * from root.ln;
+-----------------------------+-------------------+--------------+
|                         Time|root.ln.temperature|root.ln.status|
+-----------------------------+-------------------+--------------+
|2023-03-04T13:53:45.804+08:00|               36.5|          true|
+-----------------------------+-------------------+--------------+