我们计划使用 Flink CEP 根据一些动态模板来处理大量的事件。系统必须识别事件链(有时是具有条件和分组的复杂链)。模板将由用户创建。换句话说,我们必须在不接触代码的情况下创建复杂的模板。是否可以使用 Apache Flink 来解决这个问题?Filnk 是否支持动态模板?
问问题
1021 次
1 回答
2
目前 Flink 的 CEP 库不支持这种动态规则适配。但是,没有根本原因使其无法实施。
事实上,这些变化应该是相当直接的。目前工作流程如下: 用户指定事件模式。该模式被转换为代表该模式的 NFA(这发生在客户端)。然后将 NFA 提供给 CEP 操作员,CEP 操作员将其序列化并发送到集群。在集群上,CEP 算子和 NFA 被反序列化,然后开始处理事件。
可以添加的是一个 co-flat map 运算符,它在一个输入通道上接收事件,在另一个输入通道上接收模式。对于每个新收到的模式,要么更新现有的 NFA(缺少此功能),要么编译一个新模式。在后一种情况下,可以将传入事件应用于所有存储的 NFA。
这样,就可以实现一个模式可以动态更新的 CEP 算子。
于 2016-10-13T15:12:41.970 回答