如果能够根据事件的字段值来匹配事件,这将是一件非常好的事情,这超出了当前从匹配不同标准的事件中创建模式的能力。例如,在https://flink.apache.org/news/2016/04/06/cep-monitoring.html 我们可以做到:
Pattern<MonitoringEvent, ?> warningPattern = Pattern.<MonitoringEvent>begin("First Event")
.subtype(TemperatureEvent.class)
.where(evt -> evt.getTemperature() >= TEMPERATURE_THRESHOLD)
.next("Second Event")
.subtype(TemperatureEvent.class)
.where(evt -> evt.getTemperature() >= TEMPERATURE_THRESHOLD)
.within(Time.seconds(10));
不过,如果能利用以下能力创建模式,那就太好了: .where(second_evt->evt.getTemperature() == first_evt->evt.getTemperature()
1条答案
按热度按时间gcxthw6b1#
如果要比较不同事件中字段的值,可以在
flatSelect
方法,只需使用一个非常简单的模式,而不需要任何where
表达:创建图案:
将模式应用于数据流:
检查值并通过生成新的复杂事件
flatSelect
方法: