Java 如何在apache flink中创建动态规则?
我将flink与Java结合使用,并成功地定义了一个静态模式,如下所示: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中有没有一种方法可以动态创建模式? 我需要根据用户的输入定义模式 谢谢您可能对“”模式感
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。