thingdb_t.KEEP 45d,存储水泥磨实时电流、余热功率等高频访问数据,
CACHEMODEL 'last_row'确保大屏 5 秒轮询时响应时间<500ms;
优化效果:单厂大屏查询延迟从 1.2-1.8 秒降至 300-500ms,运维人员盯屏无卡顿,后续未再错过预警。thingdb_t.KEEP 365d,存储周 / 月报表数据,
COMP 2
压缩后数据压缩率可达到10%,节省大量 HDD 磁盘存储成本。envdb_t的 共享存储存 3 年以上数据。通过对象存储周期参数
SS_KEEPLOCAL 1576800m(3 年)设置本地保留周期,超过 3 年自动归档至对象存储,本地仅保留索引。
对象存储的使用,使环保合规数据归档耗时从原来的 150-250 小时 / 月降至 0,无数据丢失风险。ALTER DATABASE envdb_t SS_CHUNKPAGES 131072 -- 按131072页打包,提升传输效率 SS_KEEPLOCAL 1576800m; -- 本地保留3年
ts(时间戳)、
point_value(数据值)、
quality(数据质量状态)point_id格式为 “业务类型_工厂编码_设备类型_序号”(如
EMS_F001_CEMENTMILL_01),
point_name统一为中文业务名,新接入设备严格按规则配置;ALTER TABLE thingdb_t.tbname tag point_name = '某电力室_某库某区尾部***收尘风机_C相电流', point_id = 'DG_SNKD_***_Ic'
diff、
spread、
last_row等)编写核心 SQL,覆盖 “能耗差异分析、异常检测、波动统计、实时监控” 四大关键场景,以下为整理后的完整 SQL 及业务意义:spread(point_value)计算指定时段内能耗的波动范围,用于设备能耗稳定性分析(如判断脱硫风机的电流波动是否正常),波动超阈值时触发维护提醒。SELECT
spread(point_value) AS energy_spread, -- 计算数值极差(最大值-最小值)
quality,
oa_code,
point_name,
point_id
FROM conchems_t.conchems_base
WHERE
1 = 1
AND point_id IN ('DG_YL5_SCRKYJ1_Ea', 'DG_YL5_SCRKYJ1_Eb',……)
AND oa_code = 'F003'AND ts <= '2025-10-30 00:00:00'
AND ts >= '2025-10-01 00:00:00' GROUP BY quality, oa_code, point_name, point_id;
diff(point_value, 3)按步长 3 计算能耗差异,
SUM累计后得到指定时段内的总能耗变化,用于能耗总量核算(如每日水泥磨总耗电量统计),支撑成本分摊。SELECT
SUM(diff) AS total_energy_diff,
point_id,
point_name,
oa_code
FROM (SELECT
diff(point_value, 3) AS diff,
oa_code,
point_name,
point_id,
ts FROM conchems_t.conchems_base WHERE
1 = 1 AND point_id IN ('DG_95_0005_Er', 'DG_95_0005_Ia', …… ) -- 补充完整测点)AND oa_code = 'F004'AND ts BETWEEN '2025-10-01 00:00:00' AND '2025-10-31 00:00:00'PARTITION BY tbname
AND oa_code = 'F004' AND ts BETWEEN '2025-10-30 00:00:00' AND '2025-10-31 00:00:00'
) AS sub_queryGROUP BY point_id, point_name, oa_code;
CASE修正窗口起始与查询起始不一致的情况,用于精准能耗统计(如小时级余热发电量修正),避免统计偏差。SELECT
CASE
WHEN _wstart > _qstart THEN SUM(step_diff) - FIRST(step_diff)
else sum(diff) end as spreadvalue ,
_wstart AS wstart,
_wend AS wend,
point_idFROM (SELECT
diff(point_value, 3) AS step_diff,
point_value,
oa_code,
point_name,
point_id,
ts WHERE
1 = 1 AND point_id IN ('DG_YL12_YLB1_E', 'DG_YT45_3BYQ_E', 'DG_YL4_13092_E',……)
AND oa_code = 'F005'AND ts BETWEEN '2025-10-01 00:00:00' AND '2025-10-31 00:00:00' )
partition by point_id INTERVAL(1h) ;
LAST_ROW函数快速获取设备最新能耗数据,用于监控大屏实时展示(如水泥磨当前电流、余热发电当前功率),运维人员可直观掌握设备运行状态。SELECT
LAST_ROW(*),
point_name,
point_idFROM conchems_t.conchems_baseWHERE
oa_code = '01030206' AND point_id IN ('DG_MTHF_0109_E', 'DG_YM3_0110_E'……);
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70014783/viewspace-3115756/ ,如需转载,请注明出处,否则将追究法律责任。