【TDengine】如何对时序数据进行降采样(Downsampling)?
TDengine 时序数据降采样深度解析:从实时查询到智能电表长期存储的优化艺术问题引入用户提问:“如何对时序数据进行降采样(Downsampling)?”这是一个在智能电表计量场景中关乎系统生死存亡的核心问题。我们的平台接入了数百万台智能电表,每台电表每秒上报一次用电功率(kW)。这意味着每天会产生864 亿个数据点。如果将这些原始数据永久存储,不仅磁盘成本会指数级增长,历史数据的查询性能也会急剧恶化——试想一下,要查询过去一年某台电表的日均用电量,却需要扫描 3150 万个原始点!降采样(Downsampling)是解决此问题的唯一出路。它通过将高频率的原始数据聚合成低频率的摘要数据(如每分钟、每小时、每天的平均值),在保留关键业务信息的同时,大幅降低存储成本和查询延迟。TDengine 社区版3.4.x 提供了两种互补的降采样方案:一种是查询时动态降采样,利用其强大的INTERVAL窗口函数;另一种是写入时预计算降采样,通过SNode 流计算引擎创建连续查询(Continuous Query, CQ)。本文将以智能电表场景为背景,深入 TDengine 3.4.x 的SNode和QNode组件,为你揭示一套完