我将flink与Java结合使用,并成功定义了一个静态模式,如下所示:
Pattern<Event, ?> pattern = Pattern.<Event>
begin("first")
.where(
new SimpleCondition<Event>() {
@Override
public boolean filter(Event event) {
return event.getTemperature() > 50;
}
}).within(Time.seconds(10L));在apache-flink中有没有一种动态创建模式的方法?我需要根据用户的输入定义模式。
谢谢
发布于 2020-07-29 21:15:31
您可能会对"Dynamic Updates of Application Logic“模式感兴趣。
对于您要connect到流的规则,请使用BroadcastStream。
使用本文中的示例,您甚至可以拥有动态聚合定义:
// Streams setup
DataStream<Transaction> transactions = [...]
DataStream<Rule> rulesUpdateStream = [...]
BroadcastStream<Rule> rulesStream = rulesUpdateStream.broadcast(RULES_STATE_DESCRIPTOR);
// Processing pipeline setup
DataStream<Alert> alerts =
transactions
.connect(rulesStream)
.process(new DynamicKeyFunction())
.keyBy((keyed) -> keyed.getKey())
.connect(rulesStream)
.process(new DynamicAlertFunction())https://stackoverflow.com/questions/63152612
复制相似问题