如何实时判断2分钟之内每个设备是否有数据增加

我有一个数据转发逻辑要麻烦您看一下:一张DolphinDB流表中有设备id字段,判断2分钟之内每个设备是否有数据增加,如果没有则推送一条异常。这个请问有什么建议吗?

请先 登录 后评论

1 个回答

chenweijian

分布式时序数据库DolphinDB的流计算框架目前已支持时序聚合引擎横截面聚合引擎异常检测引擎和自定义流计算引擎:

异常检测引擎(Anomaly Detection Engine)能实时检测数据是否符合用户自定义的警报指标,但这个需求不适用。异常检测引擎是按设备分组进行处理的。每次有新数据流入才触发计算,或每隔一段时间,在固定长度的移动窗口中才进行聚合计算。一个传感器若没有产生新数据,无法触发计算。解决办法是自定义一个消息处理函数(message handler)去计算和检测。具体实现思路是:用一个键值内存表记录每个传感器的最新采集时间。消息以一定时间间隔(比如1秒)进入消息处理函数。消息处理函数首先更新键值内存表,然后检查这个表中每个设备记录的最新采集时间是否超过2分钟,若有即报警。实现代码可参考DolphinDB流计算引擎实现传感器数据异常检测demo2 。

请先 登录 后评论