【TDengine 3.3.6 流计算异常插入数据】

【TDengine 使用环境】
生产环境

【TDengine 版本】

3.3.6

【操作系统以及版本】

NAME=“Kylin Linux Advanced Server”
VERSION=“V10 (Halberd)”
ID=“kylin”
VERSION_ID=“V10”
PRETTY_NAME=“Kylin Linux Advanced Server V10 (Halberd)”
ANSI_COLOR=“0;31”

【部署方式】

容器

【集群节点数】

单节点

【集群副本数】

1

【描述业务影响】

数据统计异常

【遇到的问题:问题现象及影响】
采集频率:20s

创建的流计算:taos> SELECT *

FROM information_schema.ins_streams
WHERE stream_name = ‘nbq_stream_on_fdl_interval_1d’ \G;
*************************** 1.row ***************************
stream_name: nbq_stream_on_fdl_interval_1d
create_time: 2026-02-04 10:23:47.042
stream_id: 0x9c10ec8120d13c4
history_id: NULL
sql: create stream if not exists nbq_stream_on_fdl_interval_1d trigger at_once into stream_nbq_fdl_interval_1d as
select _wstart as ts,last_row(p_rfdl) as p_rfdl,last_row(p_yfdl) as p_yfdl, last_row(p_nfdl) as p_nfdl,last_row(p_yggl) as p_yggl,last_row(p_zlgl) as p_zlgl,dept_ivice_model_id,device_id from nbq partition by tbname interval(1d) fill(null)
status: ready
source_db: swp_analysis
target_db: swp_analysis
target_table: stream_nbq_fdl_interval_1d
watermark: 0
trigger: at once
sink_quota: 0
checkpoint_interval: 300 sec
checkpoint_backup: none
history_scan_idle: 100a

问题现象:偶发性 同一天会存在一条脏数据

【报错完整截图】

【疑问】
当前的触发时机 TRIGGER AT_ONCE,因为每次写入都触发,取当前窗口已有的最后一条,会不会因为入库频率过高有影响,因为我想要每天窗口结束时触发一次,取前一天的最后一条,那使用 TRIGGER WINDOW_CLOSE 触发时机可不可以避免这种问题??还是升级tdengine版本?哪个版本合适?

3.3.6.x版本的流计算不稳定,已经不推荐使用。流计算在 3.3.8 和 3.4.x 版本进行重大重构,建议直接升级到 3.4的最新版本。升级之前,先删除了所有的流。

升级后,流计算的建流语法有变化,需要重新创建。