apache-flink - 在不重启作业的情况下在 Apache Flink 中动态添加模式

我的用例是我想将不同的 CEP 模式应用于同一数据流。 CEP 模式是动态出现的,我希望将它们添加到 flink 而无需重新启 Action 业。虽然所有条件都可以通过实现 IterativeCondition 的自定义类来处理,但我的主要问题是时间条件只接受 TimeWindow;这是无法处理的。有什么方法可以根据输入元素设置传递给 .within() 的值吗?

这里问了类似的问题:Flink and Dynamic templates recognition

最佳答案: “可以添加的是一个 co-flat map 运算符,它在一个输入 channel 上接收事件,在另一个输入 channel 模式上接收。对于​​每个新接收的模式,要么更新现有的 NFA(缺少此功能),要么编译一个新的. 在后一种情况下,将传入事件应用于所有存储的 NFA。”

我正在尝试实现它,但我遇到了一些困难。具体来说,关于“在后一种情况下,将传入事件应用于所有存储的 NFA”

原因是我将流应用于模式使用:PatternStream matchStream = CEP.pattern(tmatchStream, pattern);

但是流“tmatchStream”不会在 co-flatMap 中定义。我在这里错过了什么吗???任何帮助将不胜感激。

最佳答案

不幸的是,链接问题的答案仍然有效。 Flink CEP 目前不支持动态模式。虽然已经有一张 JIRA 票:FLINK-7129

该功能最早的合理目标版本是 1.6.0

https://stackoverflow.com/questions/49252363/

相关文章:

google-app-engine - 如何在 objectify 中通过嵌套 Refs 进行查询

android - 在 test.Jar 中启动 startActivity() ,Cordova

android - React Native StackNavigator 在重新进入时消失

amazon-web-services - 在 Looker 中可以进行分页吗?

asynchronous - 使用 async/await 进行异步 mocha 测试时遇到问题

python - 如何使用 R 按列将 .csv 拆分为多个 .csv?

python - 如何对 Pandas RE .str.extract() 使用 RE OR 操作数

jenkins - 如何在多分支管道项目中为每个分支级别的用户提供访问权限?

c# - 可空类型 "int?"(包括问号)的默认值是多少?

google-apps - 迄今为止的 Google 表格查询字符串