我的用例是我想将不同的CEP模式应用于同一个数据流。 CEP模式动态变化我希望将它们添加到flink而不必重新启动作业。虽然可以通过实现IterativeCondition的自定义类来处理所有条件,但我的主要问题是时间条件只接受TimeWindow;这是无法处理的。是否有某种方法可以根据输入元素设置传递给.within()的值?
这里有类似的问题:Flink and Dynamic templates recognition
最佳答案: "可以添加的是一个共平图操作符,它在一个输入通道上接收事件和其他输入通道模式。对于每个新接收的模式,要么更新现有的NFA(缺少此功能),要么编译新的模式。在后一种情况下,可以将传入事件应用于所有存储的NFA。"
我正在努力实现这一点但我面临一些困难。具体而言,在"在后一种情况下,可以将传入事件应用于所有存储的NFA"
原因是我使用以下方法将流应用于模式:PatternStream matchStream = CEP.pattern(tmatchStream,pattern);
但是流" tmatchStream"不会在co-flatMap中定义。我在这里遗漏了什么吗???任何帮助将不胜感激。
答案 0 :(得分:0)
不幸的是,链接问题的答案仍然有效。 Flink CEP当时不支持动态模式。尽管如此,已有JIRA票证:FLINK-7129
该功能的最早合理目标版本为1.6.0