簡體   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