飞行器在空中巡航时,数据采样频率高达 1000Hz——也就是说,每秒需要采集 *1000 *条数据,包括高度、速度、方向、发动机功率、迎角等指标。与此同时,系统还需根据既定规则实时监测并捕获异常,一旦出现风险信号,必须在第一时间发出告警。
在传统架构下,这样的处理往往存在数秒甚至数分钟的延迟,等系统反应过来,异常早已发生。
而 DolphinDB 只需不到 1 毫秒,就能完成复杂的聚合计算与分析,实现真正意义上的实时响应。
接下来,让我们通过一个真实案例直观感受。
场景说明
在某飞行监控项目中,飞行器每秒产生上千条实时数据,一天的数据量高达 8640 万条。系统需要在尽可能短的时间内完成以下操作:
- 实时聚合计算:每隔 5 秒计算一次速度的均值、方差、标准差和极差。
- 实时异常检测:如高度低于 1000,且速度高于 300,持续 3 秒;方向改变超过 30 度,且迎角大于 30 度,持续 3 秒;发动机瞬时功率大于 130,持续 3 秒。
Step 1:
首先,我们将所有数据存储在 DolphinDB 中,数据表 schema 如下:
| 字段名称 | DolphinDB 数据类型 | 说明 |
|---|---|---|
| ts | TIMESTAMP | 采样时间 |
| figherID | SYMBOL | 飞行器编号 |
| systemID | SYMBOL | 系统编号 |
| equipmentID | SYMBOL | 设备编号 |
| height | FLOAT | 高度 |
| speed | FLOAT | 速度 |
| pitch_angle | FLOAT | 迎角 |
| direction | FLOAT | 方向 |
| power | FLOAT | 功率 |
在本例中,我们主要用到以下 4 个数据表:
- Data 分布式表:共有 9 个字段,分别是采样时间、飞行器编号、系统编号、设备编号、高度、速度、迎角、方向、功率。
- origData 流表:存储原始流数据。共有 9 个字段,分别是采样时间、飞行器编号、系统编号、设备编号、高度、速度、迎角、方向、功率。
- warningTable 流表:存储告警信息。共有 4 个字段,分别是采样时间、飞行器编号、异常类型、异常信息。
- aggregateTable 流表:存储聚合计算后的数据。共有 8 个字段,分别是采样时间、飞行器编号、均值、方差、标准差、极差、计算开始时间、计算结束时间。
Step 2:
定义聚合计算方法并创建时间序列引擎。DolphinDB 提供的时间序列引擎可以对高频数据进行滑动窗口聚合,并采用增量算法保障计算效率。
此处,我们指定时间序列引擎每隔 5 秒计算一次速度的均值、方差、标准差和极差:
注:metrics 参数可指定窗口内的聚合规则。
接着,定义异常检测测条件并创建异常检测引擎。
当飞行器高度低于 1000 且速度高于 300、方向改变超过 30 度且迎角大于 30 度、发动机瞬时功率大于 130 时,触发告警:
该引擎以事件驱动为核心,具备灵活的规则定义能力和高性能的流式处理架构,能够轻松满足高实时性和高准确性的业务需求。
Step 3:
订阅数据。将流数据打上时间戳后输入到时间序列引擎,便于计算时间序列引擎聚合计算产生的时延;同时将流数据输入到异常检测引擎:
Step 4:
将 Data 数据表中的历史数据回放到 origData 流表,模拟生成流数据,进行实时计算测试:
Step 5:
此时,我们可以查看各项所需的结果。
查看某测点的告警信息:
查看某测点的聚合计算结果:
查看聚合计算延时:
可以看到,聚合计算所需耗时均在 1ms 以内。
在这一实战案例中,DolphinDB 以毫秒级的聚合计算性能,快速完成均值、方差、标准差等复杂计算,实现了飞行器监测场景下的实时监控与告警,让系统具备“边飞行、边分析、边决策”的能力,大幅提升飞行安全保障的响应速度和可靠性。
除了航空领域,DolphinDB 也已广泛应用于电力监测、设备振动分析、风电运维、化工生产等各类物联网场景。无论是工业设备的健康管理,还是能源系统的实时调度,DolphinDB 都能凭借强大的存算能力,为企业提供稳定、高效的解决方案。
如果您想了解更多行业解决方案,欢迎添加小助手微信(dolphindb1)或致电 133-0651-0479 与我们联系!也欢迎关注 DolphinDB 物联网公众号,第一时间了解最新动态与技术干货!