Ingest Data into TDengine
TDengine can be widely applied to IoT, Industrial Internet, Connected Vehicles, DevOps, energy, finance, and many other scenarios.
Set up TDengine and Create Tables
Deploy TDengine by Huawei Cloud or Docker:
TIP
To use TDengine v3.x, please use EMQX v4.4.12 and later.
docker run --name TDengine -d -p 6030:6030 -p 6041:6041 -p 6043-6049:6043-6049 -p 6043-6049:6043-6049/udp tdengine/tdengine
Execute cmd in docker:
docker exec -it TDengine bash
taos
Create database test
create database test;
Create table t_mqtt_msg
. For more details on TDengine data structures and SQL, see TDengine SQL:
USE test;
CREATE TABLE t_mqtt_msg (
ts timestamp,
msgid NCHAR(64),
mqtt_topic NCHAR(255),
qos TINYINT,
payload BINARY(1024),
arrived timestamp
);
Create Rules
Open EMQX Dashboard. Click Rule
.
Write SQL:
SELECT
*,
now_timestamp('millisecond') as ts
FROM
"#"
The subsequent action creation operation can be selected flexibly depending on your EMQX version.
Add an Action
Find Action
, click Add Action
.
Click Data persist
, Choice Data to TDengine
.
Requires EMQX Enterprise 4.1.1 and later only.
Action parameters:
- SQL template. In this example we insert a data to TDengine, note that we should specify the database name in the SQL and the character type should be enclosed in single quotes, the SQL template:
insert into test.t_mqtt_msg(ts, msgid, mqtt_topic, qos, payload, arrived) values (${ts}, '${id}', '${topic}', ${qos}, '${payload}', ${timestamp})
- Now that the resource drop-down box is empty, you can create a TDengine resource by clicking on
Create
in the upper right corner:
Create new TDengine Resource:
TDEngine Username: root
TDEngine password: taosdata

Click Confirm
.
Return to the action screen and click "Confirm".

Return to the rule screen and click "Create".
Test the Rule
In the rule list, click on the Rule ID link to preview the rule you just created.

The rule has been created, now send a data:
Topic: "t/a"
QoS: 1
Payload: {"msg": "hello"}
Query and check:
select * from t_mqtt_msg;