Apache Flink:基于先前值的过滤

Apache Flink : filtering based on previous value

apache flink 文档中的所有过滤示例都显示了根据全局阈值进行过滤的简单案例。

但是如果对一个条目的过滤应该考虑到前一个条目呢?

假设我们有一个传感器数据流。如果当前传感器数据条目比之前的条目大 X%,我们需要丢弃它。

有没有简单的解决方法?在 Apache Flink 或普通 Java.

谢谢

在flink中,这可以通过状态来完成。

您的用例与 flink 文档中的 fraud detection example 非常相似。

状态是使这成为可能的推动者,但您还需要注意“先前条目”的定义。如果事件摄取顺序很重要,那么这很容易实现为 RichFilterFunction 或 RichFlatMapFunction。但是,如果“上一个条目”需要考虑每个事件的时间戳,那么这将变得更具挑战性,因为您需要首先按时间戳对流进行排序。