我们计划使用flink cep根据一些动态模板处理大量事件。系统必须识别事件链(有时是带有条件和分组的复杂链)。模板将由用户创建。换句话说,我们必须在不接触代码的情况下创建复杂的模板。有没有可能使用apache flink来解决这个问题?filnk支持动态模板吗?
flseospp1#
目前,flink的cep库不支持这种动态规则自适应。然而,没有根本原因使其无法实施。事实上,这些变化应该是相当直接的。目前工作流如下:用户指定一个事件模式。此模式被转换为表示该模式的nfa(发生在客户端)。然后将nfa提供给cep操作符,该操作符被序列化并发送到集群。在集群上,cep操作符和nfa被反序列化,然后开始处理事件。我们可以添加一个共平面Map操作符,它在一个输入通道上接收事件,在另一个输入通道上接收模式。对于每个新收到的模式,要么更新现有的nfa(缺少此功能),要么编译一个新的nfa。在后一种情况下,将传入事件应用于所有存储的nfa。这样,就可以实现一个模式可以动态更新的cep操作符。
1条答案
按热度按时间flseospp1#
目前,flink的cep库不支持这种动态规则自适应。然而,没有根本原因使其无法实施。
事实上,这些变化应该是相当直接的。目前工作流如下:用户指定一个事件模式。此模式被转换为表示该模式的nfa(发生在客户端)。然后将nfa提供给cep操作符,该操作符被序列化并发送到集群。在集群上,cep操作符和nfa被反序列化,然后开始处理事件。
我们可以添加一个共平面Map操作符,它在一个输入通道上接收事件,在另一个输入通道上接收模式。对于每个新收到的模式,要么更新现有的nfa(缺少此功能),要么编译一个新的nfa。在后一种情况下,将传入事件应用于所有存储的nfa。
这样,就可以实现一个模式可以动态更新的cep操作符。