Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Flink CEP event handling

2025-03-29 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/01 Report--

This article will explain in detail the handling of Flink CEP events for you. The editor thinks it is very practical, so I share it with you as a reference. I hope you can get something after reading this article.

What is CEP?

Complex event processing that allows specific event models to be detected in unbounded data streams

Single mode

A single pattern refers to a pattern, which can be a singleton or a circular pattern.

Patterns are singleton and can be converted into circular patterns through quantifiers. Each pattern can have one or more conditions to decide which events to accept.

Quantifier

Pattern.oneOrMore (): expect a given event to occur one or more times

Pattern.times (# oftimes): a pattern that expects a given event to occur a certain number of times

Pattern.times (# fromTimes, # toTimes): expect a given event to occur between a minimum and a maximum

Pattern.greedy (): greedy algorithm, matching as many as possible, can not make the pattern group greedy

Pattern.optional (): become optional

Example: / / expect 4 times start.times (4); / / expect 0 or 4 times start.times (4) .optional (); / / expect 2, 3 or 4 times start.times (2, 4); / / expect 2, 3 or 4 times and repeat as many times as possible start.times (2, 4) .greedy () / expect 0, 2, 3 or 4 start.times (2, 4) .optional (); / expect 0, 2, 3 or 4 times, and repeat as many times as possible start.times (2, 4). Optional (). Greedy (); / expect 1 to multiple start.oneOrMore (); / / expect 1 to multiple times and repeat as many times as possible start.oneOrMore (). Greedy () / / expect 0 to multiple start.oneOrMore () .optional (); / / expect 0 to multiple times and repeat as many times as possible start.oneOrMore () .optional () .greedy (); / / expect 2 to multiple start.timesOrMore (2); / / expect 2 to multiple times and repeat as many times as possible start.timesOrMore (2) .greedy () / expect 0, 2 or more start.timesOrMore (2) .optional (); / / expect 0, 2 or more times and repeat as many times as possible start.timesOrMore (2) .optional () .greedy (); condition

The conditions for judging event attributes can be the following methods

Pattern.where ()

Pattern.or ()

Pattern.until ()

The input parameters of these methods can be IterativeCondition or SimpleCondition

The pattern.subtype method restricts acceptance that the event type is a subtype of the initial event.

Iterative condition IterativeCondition

Simple conditional SimpleCondition

Combinatorial conditions. Where (). Or (), etc.

Stop condition. Stop ()

Combination mode

FlinkCEP supports continuous policies between events in the following form

Strictly continuous: expect all matching events to occur strictly one after another, without any mismatch

Loose continuity: ignores mismatched events between matching events

Uncertain loose continuity: further loose continuity, allowing additional matches for some matching events to be ignored

1. Next () specifies strict continuous 2. FollowedBy () specifies loose continuous 3. FollowedByAny () uncertain loose continuous 4. NotNext () if you don't want to be directly followed by a specific event 5. NotFollowedBy (), if you don't want a particular event to occur anywhere between two events. Ps: a pattern sequence cannot end with notFollowedBy () A NOT pattern cannot be preceded by an optional pattern

Define a pattern with a valid time constraint: the pattern.within () method specifies that it occurs within the valid time.

Pattern sequences can only have one time limit, and if multiple times are limited to different patterns, the minimum time limit will be used.

The loop mode is loose contiguous by default, and if the combination is strictly continuous, it needs to be explicitly specified using the consecutive () method. If you want to use uncertain loose continuity, you can use the allowCombinations () method

= = example: consecutive==

Pattern.begin ("start") .where (new SimpleCondition () {@ Override public boolean filter (Event value) throws Exception {return value.getName () .equals ("c");}}) .followedBy ("middle") .where (new SimpleCondition () {@ Override public boolean filter (Event value) throws Exception {return value.getName () .equals ("a")) }}) .oneOrMore () .consecutive () .followedBy ("end1") .where (new SimpleCondition () {@ Override public boolean filter (Event value) throws Exception {return value.getName () .equals ("b");}}) Input: C D A1 A2A3 D A4B, the following output will be produced: if strict continuity is applied: {C A1 B}, {C A1 A 2B}, {C A1 A 2A 3 B}} does not impose strict continuity: {C A1 B}, {C A1 A 2B}, {C A1 A 2A 3 B}, {C A1 A 2A 3 A 4 B}

= = example: allowCombinations==

Pattern.begin ("start") .where (new SimpleCondition () {@ Override public boolean filter (Event value) throws Exception {return value.getName () .equals ("c");}}) .followedBy ("middle") .where (new SimpleCondition () {@ Override public boolean filter (Event value) throws Exception {return value.getName () .equals ("a")) }}) .oneOrMore () .allowCombinations () .followedBy ("end1") .where (new SimpleCondition () {@ Override public boolean filter (Event value) throws Exception {return value.getName () .equals ("b");}}) Input: C D A1 A2A3 D A4B, the output is as follows: if you use uncertain loose continuity: {C A1 B}, {C A1 A 2B}, {C A 1A 3 B}, {C A 1A 4 B}, {C A1 A 2A 3 B}, {C A1 A 3A 4 B}, {C A1 A 2A 3 A 4 B}, {C A1 A 2A 3 A 4 B}, if not used: {C A 1B}, {C A1 A 2B}, {C A1 A 2A 3B}, {C A1 A 2A 3A4B} mode group

Define a sequence of patterns as begin,followedBy,followedByAny and next conditions

This is the end of this article on "Flink CEP event handling". I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, please share it for more people to see.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report