FLINK-CEP
2021-03-02 09:00:22 1 举报
flink CEP原理
作者其他创作
大纲/内容
Final
Normal(condition1)
action : TAKE | IGNORE | PROCEEDsourceState : 指向当前StarttargetState :指向下一个Statecondition : 条件
SharedBufferNode
take
一个事件都没有匹配中
Normal (condition)
LockablerefCounter : 引用数(初始化为0)element : 具体的SharedBufferNode
Normal | Stop
proceed
EventIdid: 从0自增timestamp
命中的state的action是 TAKE
NodeId(null)
QuantifierProperty数量配置
从elementState中删除
NodeId(2)
Start:0 (condition)
ignore
... stateTransitions
entryCache
找到当前事件能匹配的 state封装为 NFAState
eventsBufferCache
name:begin
Pattern.begin(\"begin\").where(condition).time(2)
Pattern.begin(\"begin\").where(condition).notFollowedBy(\"middle1\").where(condition1).followedBy(\"middle2\").where(condition_03);
ConsumingStrategy消费策略
Pattern.begin(\"begin\").where(condition).next(\"middle\").where(condition1);
Start (condition_01)
进行nfaState的pattern匹配
在当前的nfaState中有命中
DeweyNumber(1.0)
开始
NodeIdEventIdpageName
LockablerefCounter : 引用数(初始化为1)element : 具体的event
Pattern.begin(\"begin\").where(condition).oneOrMore();
NodeId(1)
用户配置的pattern
states
EventIdid:timestamp
name:middle
LockablerefCounter : 引用数(初始化为1)element : 具体的StreamRecord
completedMatches当前需要计算的nfaState
beginversion(1)
Pattern.begin(\"begin\").where(condition).notNext(\"middle\").where(condition1);
NodeId(3)
Pattern.begin(\"begin\").where(condition).timesOrMore(2);
Quantifier
DeweyNumber(1.1)
end
element到来保存到 flinkState中
name:end
Stop(condition1)
保存数据到cache中
Pattern.begin(\"begin\").where(condition).followedBy(\"middle\").where(condition1);
Pattern.begin(\"begin\").where(condition);
Pattern.begin(\"begin\").where(condition).times(2).optional().next(\"middle\").where(condition)
Start
waterMark到达
命中的state的action是 IGNORE
Pattern.begin(\"begin\").where(condition).followedByAny(\"middle\").where(condition1);
保存到 computationStates
转换为states
NFAState
几种times
Pattern.begin(\"begin\").where(condition).oneOrMore()until(condition1);
Pattern.begin(\"begin\
DeweyNumber 管理版本
0 条评论
下一页