我有一个EventTime流应用程序,该应用程序将CEP库用于加入的流上的基本三步模式。加入的流是实时数据,水印数据和窗口数据以及窗口/水印之外的历史项流的组合。
设置与dataArtisans blog post相似,但最后一步是CEP模式。
我们的CEP设置如下所示,并且在添加未加时间戳的历史流之前可以正常工作。 EscalatingAlertEventIterativeCondition
确保上一个事件的匹配级别高于下一个事件的匹配级别。
Pattern<AlertEvent, ?> pattern = Pattern.<AlertEvent>
begin("one")
.where((AlertEvent event) -> event.level > 0)
.next("two")
.where(new EscalatingAlertEventIterativeCondition("one"))
.next("three")
.where(new EscalatingAlertEventIterativeCondition("two"));
return CEP.pattern(
alertEventStream,
pattern
);
我看到的问题是CEP永远在缓冲(过滤器内的断点和迭代条件现在没有出现),并且过滤/选择从未发生。我最初以为这可能是由于CEP缓冲区引起的,但是不确定,因为我对Flink和Flink CEP都是陌生的。有什么办法可以避免延迟缓冲,或者其他东西看起来不对?