近亿条数据聚合计算耗时<1ms!DolphinDB 重塑飞行监测效率

37 阅读4分钟

飞行器在空中巡航时,数据采样频率高达 1000Hz——也就是说,每秒需要采集 *1000 *条数据,包括高度、速度、方向、发动机功率、迎角等指标。与此同时,系统还需根据既定规则实时监测并捕获异常,一旦出现风险信号,必须在第一时间发出告警。

在传统架构下,这样的处理往往存在数秒甚至数分钟的延迟,等系统反应过来,异常早已发生。

而 DolphinDB 只需不到 1 毫秒,就能完成复杂的聚合计算与分析,实现真正意义上的实时响应。

接下来,让我们通过一个真实案例直观感受。

场景说明

在某飞行监控项目中,飞行器每秒产生上千条实时数据,一天的数据量高达 8640 万条。系统需要在尽可能短的时间内完成以下操作:

  • 实时聚合计算:每隔 5 秒计算一次速度的均值、方差、标准差和极差。
  • 实时异常检测:如高度低于 1000,且速度高于 300,持续 3 秒;方向改变超过 30 度,且迎角大于 30 度,持续 3 秒;发动机瞬时功率大于 130,持续 3 秒。

Step 1:

首先,我们将所有数据存储在 DolphinDB 中,数据表 schema 如下:

字段名称DolphinDB 数据类型说明
tsTIMESTAMP采样时间
figherIDSYMBOL飞行器编号
systemIDSYMBOL系统编号
equipmentIDSYMBOL设备编号
heightFLOAT高度
speedFLOAT速度
pitch_angleFLOAT迎角
directionFLOAT方向
powerFLOAT功率

在本例中,我们主要用到以下 4 个数据表:

  • Data 分布式表:共有 9 个字段,分别是采样时间、飞行器编号、系统编号、设备编号、高度、速度、迎角、方向、功率。
  • origData 流表:存储原始流数据。共有 9 个字段,分别是采样时间、飞行器编号、系统编号、设备编号、高度、速度、迎角、方向、功率。
  • warningTable 流表:存储告警信息。共有 4 个字段,分别是采样时间、飞行器编号、异常类型、异常信息。
  • aggregateTable 流表:存储聚合计算后的数据。共有 8 个字段,分别是采样时间、飞行器编号、均值、方差、标准差、极差、计算开始时间、计算结束时间。

Step 2:

定义聚合计算方法并创建时间序列引擎。DolphinDB 提供的时间序列引擎可以对高频数据进行滑动窗口聚合,并采用增量算法保障计算效率。

此处,我们指定时间序列引擎每隔 5 秒计算一次速度的均值、方差、标准差和极差:

5a94d9d7-c1b6-4380-b1ec-474aeda1a521.png

注:metrics 参数可指定窗口内的聚合规则。

接着,定义异常检测测条件并创建异常检测引擎。

当飞行器高度低于 1000 且速度高于 300、方向改变超过 30 度且迎角大于 30 度、发动机瞬时功率大于 130 时,触发告警:

ac913195-c351-41b6-8899-7328570627a2.png

该引擎以事件驱动为核心,具备灵活的规则定义能力和高性能的流式处理架构,能够轻松满足高实时性和高准确性的业务需求。

Step 3:

订阅数据。将流数据打上时间戳后输入到时间序列引擎,便于计算时间序列引擎聚合计算产生的时延;同时将流数据输入到异常检测引擎:

d513efbe-0cdc-45c0-aa5b-68d397d7e36f.png

Step 4:

将 Data 数据表中的历史数据回放到 origData 流表,模拟生成流数据,进行实时计算测试:

4.png

Step 5:

此时,我们可以查看各项所需的结果。

查看某测点的告警信息:

5.png

查看某测点的聚合计算结果:

6.png

查看聚合计算延时:

7.png

可以看到,聚合计算所需耗时均在 1ms 以内。


在这一实战案例中,DolphinDB 以毫秒级的聚合计算性能,快速完成均值、方差、标准差等复杂计算,实现了飞行器监测场景下的实时监控与告警,让系统具备“边飞行、边分析、边决策”的能力,大幅提升飞行安全保障的响应速度和可靠性。

除了航空领域,DolphinDB 也已广泛应用于电力监测、设备振动分析、风电运维、化工生产等各类物联网场景。无论是工业设备的健康管理,还是能源系统的实时调度,DolphinDB 都能凭借强大的存算能力,为企业提供稳定、高效的解决方案。

如果您想了解更多行业解决方案,欢迎添加小助手微信(dolphindb1)或致电 133-0651-0479 与我们联系!也欢迎关注 DolphinDB 物联网公众号,第一时间了解最新动态与技术干货!