【问题标题】:Adding patterns dynamically in Apache Flink without restarting job在 Apache Flink 中动态添加模式而不重新启动作业
【发布时间】:2018-03-13 09:20:33
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: apache-flink flink-streaming flink-cep


    【解决方案1】:

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

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

    【讨论】:

    • 这个还没实现?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 2020-10-15
    • 2011-02-11
    相关资源
    最近更新 更多