【TDengine 使用环境】
测试环境
【TDengine 版本】3.3.7.5 oss
【操作系统以及版本】linux
【部署方式】容器部署
【集群节点数】1
【集群副本数】1
【遇到的问题:问题现象及影响】
1、创建流计算后,在源表energy_storage.meas_bms中添加满足条件的数据,但在目标表energy_storage.events中始终无法正确触发与输出子表,该如何解决呢?
创建流SQL语句如下:
CREATE STREAM IF NOT EXISTS energy_storage.str_bms_to_events_immediate
COUNT_WINDOW(1) – 满足条件就立即触发
FROM energy_storage.meas_bms – 源:STABLE
PARTITION BY tbname, st_id,v_id, t_id, m_id
STREAM_OPTIONS(PRE_FILTER(t_id < 400 AND v > 15) | WATERMARK(0s))
INTO energy_storage.events
OUTPUT_SUBTABLE(
concat(
‘evt_bms_’,
CAST(st_id AS VARCHAR), ‘_’,
CAST(v_id AS VARCHAR), ‘_’,
CAST(m_id AS VARCHAR)
)
)
(ts, msg, v) – 与 events 的数据列顺序一致
TAGS(
st_id SMALLINT AS st_id, – 源标签直映射
dev_id SMALLINT AS v_id, – 设备用 v_id
t_id SMALLINT AS t_id, – 事件类型用源 t_id(或按需改为常量)
n_id SMALLINT AS CAST(m_id AS SMALLINT),
lv SMALLINT AS CAST(1 AS SMALLINT)
)
AS
SELECT
LAST(ts) AS ts,
CAST(‘BMS阈值触发: t_id<400 且 v>15’ AS BINARY(256)) AS msg,
LAST(v) AS v
FROM %%trows;
2、上述energy_storage.str_bms_to_events_immediate这个流的状态始终为Idle,但是其他stream创建后状态可以是Running(截图如下),是什么原因?
3、状态为Running的流计算,也无法显示“源数据库”、“目标数据库”、“目标表”等参数(截图如下)。
【资源配置】16G 32C
【报错完整截图】
