私は、2番目のイベントがx秒以内に最初のイベントに従わなかった場合に状態を変更する必要があるシナリオを持っています。例えば、ユーザーが100分でログアウトしなかった場合、彼は無効な状態にあると考えます。どのようにこれは現在のパターン操作を使用して設計できますか?Apache Flink CEPパターン操作がNOT followBy
4
A
答えて
2
これはできません。解決策は、定義された時間ウィンドウから外れるのでイベントシーケンスが破棄されるたびにトリガされるタイムアウトハンドラを持つことです。すでにtimeout handler実装を追跡するJIRAの問題があります。
1
これは既に実装されているので、私はここで回答を探している人たちにこの質問に答えようと考えました。あなたのCEPパターンは、このようなものであれば
FLINK 1.0.0のように、これは、例えば、TIMEDOUTパターンを処理して行うことができます。
例の一部Flink Websiteからから(1.2の間でいくつかの主要な変更はありおよび1.3に応じてコードを調整してください、この答えは1.3に焦点を当てて)
パターンの説明: - 10秒以内に「重要な」タイプの2つ目のイベントイベントに続いて、タイプ「エラー」の最初のイベントを取得します
Pattern<Event, ?> pattern = Pattern.<Event>begin("start")
.next("middle").where(new SimpleCondition<Event>() {
@Override
public boolean filter(Event value) throws Exception {
return value.getName().equals("error");
}
}).followedBy("end").where(new SimpleCondition<Event>() {
@Override
public boolean filter(Event value) throws Exception {
return value.getName().equals("critical");
}
}).within(Time.seconds(10));
PatternStream<BAMEvent> patternStream = CEP.pattern(inputStream, pattern)
DataStream<Either<String, String>> result = patternStream.select(new PatternTimeoutFunction<Event, String>() {
@Override
public String timeout(Map<String, List<Event>> map, long l) throws Exception {
return map.toString() +" @ "+ l;
}
}, new PatternSelectFunction<Event, String>() {
@Override
public String select(Map<String, List<Event>> map) throws Exception {
return map.toString();
}
});
この場合、ユーザーが100分後にログアウトしないと、対応するイベントが到着しないため、パターンがタイムアウトになり、部分イベント(開始イベント)が発生します。 PatternTimeoutFunctionに取り込まれます。
関連する問題
- 1. ジェネリック型パラメータがFLINK-CEPにパターンを検出するためのFLINK-CEP
- 2. Apache flink CEPライブラリの問題(クラスタ)
- 3. Apache用の動的ストリームSQL Flink CEP
- 4. 一度に1つのFLINK CEPパターンが存在する
- 5. Apache Flink DataSetの差/減算操作
- 6. apache-flink UnsortedGroupingでのKMeans操作
- 7. Flink CEP No Results Printed
- 8. Flink CEPで "every"パターン演算子を使用する方法
- 9. Apache Flink + CEP - 同じイベントを検出する
- 10. Apache Flinkパターン条件リストあり
- 11. Flink CEPのシーケンス一致のセマンティクス
- 12. Apache Flink CEPタイムアウトパターンが時間ウィンドウで定義されていない
- 13. Apache ApexとApache Flink
- 14. Apache Flink - org.apache.flink.client.program.ProgramInvocationException
- 15. Apache Flink RollingFileAppender
- 16. カフカコンシューマ対Apache Flink
- 17. のApacheのIgnite CEP実装
- 18. Apache Flinkストリームスケーリング
- 19. Apache Flink Kafka Itegration
- 20. Apache Flinkとイベントシーケンス
- 21. Apache Beam/Flink ExceptionInChainedStubException
- 22. Apache Flink - groupBy
- 23. apache flink DataSetウィンドウアグリゲーション
- 24. Apache flinkデータセット
- 25. カスタムデータシンク(Flink CEP)のフィールドを初期化する
- 26. すべてのFlink環境なしでflink-cepパターンマッチングを使用する
- 27. ApacheのFLINKは、[]カフカ
- 28. Apache Flinkでのグローバルソート
- 29. execute()を呼び出した後、FLINK CEPで新しいパターンを追加することは可能ですか?
- 30. UnitOfWorkのパターンとアトミック操作