物联网时序数据降采样能节省的带宽没有固定公式,核心取决于原始采集频率、单条数据体积和聚合窗口,多数场景下,把秒级上报压到分钟级,带宽需求会降到原来的几十分之一,存储量也同步大幅下降。
下面用一个中型工厂的真实参数来拆解计算逻辑。
物联网时序数据降采样能节省多少带宽?先算一笔账
假设某工厂有200个温湿度传感器,采集频率为每5秒1次,单条数据包含时间戳、设备ID、温度值、湿度值、质量戳等,体积约60字节。
- 每秒数据条数:200÷5=40条/秒
- 每秒字节数:40×60=2400B/s
- 上行带宽:2400×8=19200bps,约19.2kbps
- 每日数据量:2400×86400=207,360,000B,约198MB
如果把采集窗口从5秒改为1分钟,每个传感器每分钟只上报1条聚合结果,聚合后单条数据包含平均值、最大值、最小值、计数等,体积约100字节。
- 每秒数据条数:200÷60≈3.33条/秒
- 每秒字节数:3.33×100≈333B/s
- 上行带宽:333×8≈2664bps,约2.7kbps
- 每日数据量:333×86400=28,800,000B,约27.5MB
| 指标 | 原始上报(5秒/次) | 降采样后(1分钟/次) |
|---|---|---|
| 单条数据体积 | 60字节 | 100字节 |
| 每日数据条数 | 3,456,000条 | 288,000条 |
| 日数据量 | 约198MB | 约27.5MB |
| 平均上行带宽 | 约19.2kbps | 约2.7kbps |
从表格可以看出,降采样后上行带宽从约19.2kbps降到约2.7kbps,日数据量从约198MB降到约27.5MB,降幅相当明显,大多数情况下带宽需求能降到原来的几分之一到几十分之一。
实际节省还要看平台计费规则。 有些物联网平台按消息条数计费,有些按流量计费,有些按峰值带宽档位收费,降采样对按条数计费的场景尤其友好,因为消息量直接从百万级降到十万级。

工业物联网数据降采样方案:从边缘网关到云端的实操路径
工业场景里,最划算的做法是把降采样放在边缘网关,数据不出厂区就已经完成聚合,上行链路和云端存储同时受益,云端只接收低频聚合结果,网络抖动影响也小得多。
边缘网关降采样配置步骤
以常见的Telegraf采集引擎为例,配置过程可以拆成四步。
- 确定聚合窗口,温湿度、能耗统计建议用1分钟;压力、流量可以放到30秒;高频振动或电流谐波不要轻易降采样,原始数据需要保留。
- 选择聚合函数,趋势分析用
mean,峰值监测用max,累计量用sum,状态变化用last。 - 修改配置文件,在
telegraf.conf中增加聚合器配置,
[[aggregators.basicstats]]
period = "1m"
drop_original = true
stats = ["mean","max","min","count"]
这段配置的作用是每1分钟做一次聚合,计算平均值、最大值、最小值和计数,并且丢弃原始高频数据,输出到MQTT时,主题可以设置为:
/plant1/sensor/aggregated
- 验证输出频率,在局域网内用命令行工具订阅主题,观察是否每分钟收到一次数据:
mosquitto_sub -h 192.168.1.20 -t "/plant1/sensor/aggregated" -v
如果输出频率符合窗口设置,边缘降采样就生效了,此时上行链路已经完成了大部分瘦身。
时序数据库降采样查询语句示例
如果暂时不想动边缘侧,也可以先把原始数据入库,再用时序数据库的内置聚合能力生成降采样视图,下面给出两种常见数据库的查询写法。
InfluxDB查询最近1小时每分钟平均温度和最高温度:

SELECT mean("temperature"), max("temperature")
FROM "sensor_data"
WHERE time >= now() - 1h
GROUP BY time(1m) fill(previous)
TDengine查询最近1小时每分钟平均温度和最高温度:
SELECT _wstart, avg(temperature), max(temperature)
FROM sensor_data
WHERE ts >= NOW - 1h
INTERVAL(1m)
这些查询结果可以直接写入新的降采样表,也可以作为冷存储转存依据,时序数据库一般对这类聚合查询做了优化,执行速度比应用层自己算要快很多。
物联网时序数据存储成本对比:降采样前后差距有多大
继续用上面的200个传感器例子,原始数据一天约198MB,一个月约6GB,降采样后一天约27.5MB,一个月不到1GB,如果设备量再大一些,比如1000台、每1秒上报一次,差距会被进一步放大,这也是为什么很多工业物联网平台默认开启分钟级聚合。
- 原始数据量大时,冷热分层存储成本会快速上升。
- 降采样后热数据量变小,查询更快,冷存储转存也更省空间。
- 华东地区物联网专线带宽费用通常按峰值或95计费法核算,降采样后峰值从原来几Mbps降到几百kbps,带宽档位可以下调,月租成本因此下降。
- 广东物联网流量费用在制造业密集区同样敏感,按消息条数计费时,条数从几百万降到几十万,账单变化非常直观。
说白了,降采样不仅省今天的带宽,还在持续减轻明天的存储负担,很多工厂在做物联网平台选型时,会优先看边缘侧是否支持聚合、数据库是否支持自动降采样。
降采样不是万能的:哪些场景不能盲目压缩
降采样本质上是用时间精度换带宽和存储空间,如果业务需要毫秒级细节,就不能随便压。
高频振动、故障录波等需要保留原始数据
设备故障往往出现在毫秒级,一旦用分钟级聚合,峰值会被平均掉,波形会变得平滑,失去诊断价值,对这类场景,行业共识认为,原始数据必须保留,或者至少保留事件触发前后的高精度切片,常见的做法是:正常情况下做分钟级降采样,检测到异常时自动切换为原始高频记录。

地域和行业差异:对成本敏感的地区更应重视窗口设计
制造业密集的华东、华南地区,设备点位多、采集频率高,物联网专线带宽费用往往在整体IoT成本里占不小比例,这类地区更值得在设计阶段就把降采样窗口和聚合函数定清楚,相反,点位少、采集频率低的场景,比如农业墒情监测,每10分钟上报1次,降采样收益有限,就不必引入复杂配置。
降采样不是简单删数据,而是把细流转成粗流,先算清原始数据量,再根据业务容忍度设置聚合窗口,最后在边缘或数据库层落地规则,多数场景能把成本压到原来的十分之一甚至更低,关键是窗口和业务容忍度要匹配,而不是一味追求最大压缩。
物联网时序数据降采样带宽估算怎么做?
先按公式计算原始带宽:原始带宽=(设备数÷采集间隔)×单条数据字节数×8,再计算降采样后带宽:降采样后带宽=(设备数÷窗口时长)×聚合后单条字节数×8,两者相减就是节省量,计算时还要加上MQTT或CoAP的协议开销,以及平台按条数或峰值档位的计费规则。
物联网时序数据降采样会影响趋势分析吗?
分钟级窗口对温湿度、能耗等慢变化趋势影响很小,但会丢失峰值细节,分析趋势时优先用平均值和最大值组合,而不是只存平均值,高频振动、故障录波等场景必须保留原始数据,不能用降采样替代。
工业物联网数据降采样方案从哪里入手?
从边缘网关入手最划算,先确定窗口和聚合函数,再修改采集引擎配置,让数据在厂区内部完成聚合,上行链路和云端存储同时受益,边缘侧预聚合还能减少云平台的消息条数计费,效果在设备量上升后更加明显。