Java 如何在apache flink中创建动态规则?

Java 如何在apache flink中创建动态规则?,java,apache-flink,Java,Apache Flink,我将flink与Java结合使用,并成功地定义了一个静态模式,如下所示: Pattern=模式。begin(“first”).where(new SimpleCondition(){@Override public boolean filter(Event Event){return Event.getTemperature()>50;}})。在(Time.seconds(10L))内 ApacheFlink中有没有一种方法可以动态创建模式? 我需要根据用户的输入定义模式 谢谢您可能对“”模式感

我将flink与Java结合使用,并成功地定义了一个静态模式,如下所示:

Pattern=模式。begin(“first”).where(new SimpleCondition(){@Override public boolean filter(Event Event){return Event.getTemperature()>50;}})。在(Time.seconds(10L))内

ApacheFlink中有没有一种方法可以动态创建模式? 我需要根据用户的输入定义模式


谢谢

您可能对“”模式感兴趣

将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())
//流设置
数据流事务=[…]
数据流rulesUpdateStream=[…]
BroadcastStream RulessStream=rulesUpdateStream.broadcast(规则\状态\描述符);
//处理管道设置
数据流警报=
交易
.connect(规则流)
.process(新的DynamicKeyFunction())
.keyBy((keyed)->keyed.getKey())
.connect(规则流)
.process(新的DynamicAlertFunction())

在这种情况下,用户输入是数据流吗?或者只是传递给作业的参数?用户的输入是我构建条件所需的输入。据我所知,数据流本身就是事件本身,但您将如何从用户那里获取输入?我们将通过REST调用获取用户的输入,例如使用JSON定义条件的POST/createRule。