我正在处理流数据(使用java和apacheflink),我想执行异常值检测。我有一个网络,每个传感器接收一个流。然后,它们将流的采样版本发送到“leader”节点,该节点组合所有采样并生成一个全局模型。
之后,它将全局模型发送给每个子对象。孩子们将使用这个模型来检测异常值。这必须以连续的方式发生(即,每次领导者接收到x个样本时,它都会更新模型并广播它)。
我在论文/方法中遇到的问题是,为了构建模型,我需要所有的数据,而这是不可能的。对于领导者来说,储存所有收到的样品也是不可行的。
我写下一个小例子:
传感器a接收一些数据并发送给领队
传感器b接收一些数据并发送给领队
领导者使用接收到的值来构建广播的模型。
两个传感器接收其他数据,对于每个值,它们使用接收到的模型来执行异常点检测。然后他们将新数据发送给领导。
领导者更新模型并将新更新的模型发送给子对象。
我可以使用哪种方法来获得这种行为?
1条答案
按热度按时间siotufzp1#
一种方法是让领导者将模型更新写入Kafka主题,并让a和b从Kafka读取这些模型更新(除了他们的传感器流)。
更新时间:
检测异常值/异常的一个非常简单的算法是t-digest(是的,它是递增的)。来自mapr的此页面将引导您了解更多信息。