繁体   English   中英

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

[英]How can I create dynamic rule in apache-flink?

我将 flink 与 Java 一起使用,我成功地定义了一个 static 模式,如下所示:

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 有没有办法以动态方式创建模式? 我需要根据用户的输入来定义模式。

谢谢

您可能对“ 应用程序逻辑的动态更新”模式感兴趣。

将 BroadcastStream 用于您connect到 stream 的规则。

通过文章中的示例,您甚至可以拥有动态聚合定义:

// 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())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM