feat(docs): 添加设备心跳表SQL文档
新增TDengine超级表device_heartbeat的建表语句及EMQX规则引擎配置示例。
This commit is contained in:
43
docs/sql/device_status_log.sql
Normal file
43
docs/sql/device_status_log.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
USE iot_log;
|
||||
|
||||
-- 创建同时记录上下线状态的超级表
|
||||
CREATE STABLE IF NOT EXISTS device_status_log (
|
||||
ts TIMESTAMP, -- 事件发生时间
|
||||
event VARCHAR(16), -- 事件类型: 'connected' 或 'disconnected'
|
||||
reason VARCHAR(64), -- 下线原因(上线时填 'clean_start' 或 'none')
|
||||
peername VARCHAR(64) -- 客户端 IP 及端口
|
||||
) TAGS (
|
||||
clientid VARCHAR(128),
|
||||
username VARCHAR(128)
|
||||
);
|
||||
|
||||
-- emqx 设备离线 rules
|
||||
SELECT
|
||||
clientid,
|
||||
username,
|
||||
peername,
|
||||
reason,
|
||||
disconnected_at AS ts,
|
||||
'disconnected' AS event
|
||||
FROM
|
||||
"$events/client_disconnected"
|
||||
|
||||
-- emqx 设备离线 action
|
||||
INSERT INTO mqtt.device_${clientid}
|
||||
USING mqtt.device_status_log TAGS ('${clientid}', '${username}')
|
||||
VALUES (${ts}, '${event}', '${reason}', '${peername}');
|
||||
|
||||
-- emqx 设备上线 rules
|
||||
SELECT
|
||||
clientid,
|
||||
username,
|
||||
peername,
|
||||
connected_at AS ts,
|
||||
'connected' AS event
|
||||
FROM
|
||||
"$events/client_connected"
|
||||
|
||||
-- emqx 设备上线 action
|
||||
INSERT INTO mqtt.device_${clientid}
|
||||
USING mqtt.device_status_log TAGS ('${clientid}', '${username}')
|
||||
VALUES (${ts}, '${event}', 'none', '${peername}');
|
||||
Reference in New Issue
Block a user