2. 数据库在FMS中的角色:实时数据库与历史数据库的区别、数据采集频率与存储挑战
2.1 实时数据库与历史数据库的核心定位
在厂务监控系统(FMS)中,数据库并非单一实体,而是由实时数据库与历史数据库协同构成的双层存储体系。前者负责毫秒级的数据刷新与报警触发,后者负责长期趋势分析与合规归档。两者在数据模型、写入频率、保留周期上存在本质差异。
关键认知:实时数据库是FMS的“瞬时记忆”,历史数据库是FMS的“长期记忆”。两者缺一不可,且必须通过高效的压缩与归档策略衔接。
2.1.1 实时数据库(RTDB)
- 数据模型:基于内存的键值对或点(Tag)结构,每个点对应一个传感器或计算变量。
- 写入频率:通常为 100ms ~ 1s 一次,支持批量写入与订阅推送。
- 存储周期:仅保留最近数小时至数天的数据,用于操作员画面刷新与即时报警。
- 典型产品:OSIsoft PI(现AVEVA PI System)、GE iFIX、Wonderware InTouch。
2.1.2 历史数据库(Historian)
- 数据模型:基于磁盘的关系表或列式存储,支持时间戳索引与聚合查询。
- 写入频率:通过压缩引擎批量写入,通常为 1s ~ 60s 一次快照或变化记录。
- 存储周期:数月到数年,用于能效分析、设备寿命预测、合规审计。
- 典型产品:AVEVA PI Historian、Canary Labs、InfluxDB(时序数据库)。
2.2 核心差异对比表
| 对比维度 | 实时数据库(RTDB) | 历史数据库(Historian) |
|---|---|---|
| 存储介质 | 内存 + 高速缓存 | 磁盘(SSD/HDD) |
| 写入模式 | 持续流式写入 | 批量压缩写入 |
| 数据精度 | 原始值(无压缩) | 压缩值(旋转门/死区) |
| 查询响应 | 毫秒级(当前值) | 秒级(聚合趋势) |
| 保留周期 | 数小时 ~ 数天 | 数月 ~ 数年 |
| 典型容量 | GB 级 | TB ~ PB 级 |
2.3 数据采集频率与存储挑战
FMS 中一个中等规模的半导体工厂通常包含 10,000 ~ 50,000 个数据点(Tags),涵盖温度、压力、流量、电压、颗粒度等参数。若以 1 秒频率全量采集,单日数据量可达:
单点日数据量 = 86400 条/天
50,000 点日数据量 = 4.32 × 10⁹ 条/天
单条记录约 50 字节 → 日存储量 ≈ 216 GB
年存储量 ≈ 78 TB(未压缩)
上述计算尚未包含报警事件、批次记录、设备状态变更等非周期数据。若不采用压缩与归档策略,存储成本与查询性能将迅速失控。
3.2.1 三大核心挑战
- 写入吞吐瓶颈:高频率写入会导致磁盘 I/O 饱和,影响实时报警响应。
- 查询性能衰减:未压缩的历史表在跨月查询时,全表扫描耗时可达分钟级。
- 存储成本膨胀:企业级 SSD 存储单价约 0.3~0.5 元/GB/月,78TB/年对应约 2.3~3.9 万元/月。
常见误区:部分团队试图通过降低采集频率(如从1s改为10s)来缓解存储压力,但这会丢失设备启停、瞬态波动等关键特征,导致后续能效分析失真。正确的做法是保留高频采集,但通过压缩算法与分层归档来优化存储。
2.4 实时与历史数据库的协同架构
下图展示了 FMS 中实时数据库与历史数据库的典型协同关系:采集层数据先进入实时库供操作员使用,再通过压缩引擎异步写入历史库,最后按策略归档至冷存储。
2.5 数据压缩策略概览
为应对存储挑战,FMS 历史数据库普遍采用以下压缩技术:
| 压缩方法 | 原理 | 压缩比 | 适用场景 |
|---|---|---|---|
| 旋转门算法 | 基于偏差阈值,仅记录超出死区的变化点 | 10:1 ~ 50:1 | 平稳过程参数(温度、压力) |
| 死区压缩 | 设定值或百分比死区,死区内不记录 | 5:1 ~ 20:1 | 缓慢变化参数(液位、浓度) |
| 时间戳聚合 | 将高频数据聚合成分钟/小时平均值 | 60:1 ~ 3600:1 | 长期趋势分析、报表 |
| 列式存储编码 | 使用差分编码、游程编码压缩时间序列 | 3:1 ~ 10:1 | 所有历史数据(通用) |
实践建议:在配置压缩参数时,应针对不同工艺参数设置差异化的死区阈值。例如,洁净室温度(±0.5°C)与纯水流量(±2%)的压缩策略不应相同。建议先进行一周的基线采集,分析信号波动特性后再设定压缩参数。
2.6 本章小结
- 实时数据库与历史数据库在存储介质、写入模式、保留周期上存在本质差异,不可相互替代。
- FMS 数据采集频率通常为 100ms ~ 1s,50,000 点规模下年存储量可达 78TB(未压缩)。
- 核心挑战包括写入吞吐瓶颈、查询性能衰减、存储成本膨胀。
- 旋转门算法与死区压缩是 FMS 历史库最常用的压缩手段,压缩比可达 10:1 ~ 50:1。
- 合理的分层归档策略(实时库 → 历史库 → 冷存储)是保障系统长期稳定运行的关键。