Esper学习笔记(未完成)
1.什么是CEP
CEP【是一种标准】 Complex Event Process 复杂事件处理 基于事件流进行数据处理
数据抽象成事件 -> 事件传递到CEP引擎 -> 引擎根据输入的事件和注册的处理模型进行处理 -> 结果
2.什么是Esper
Esper是对CEP标准的一种开源实现,基于事件流进行处理
3.什么是EPL
EPL Event Process Language 事件处理语言
4.Esper Client:
EPServiceProvider -> 事件处理Provider
EPAdministrator -> 事件管理员
5.EPL语法:
match_recognize 匹配识别
格式
match_recognize (
[ partition by partition_expression [, partition_expression ] [,...] ]
measures measure_expression as col_name [, measure_expression as col_name ] [,...]
[ all matches ]
[ after match skip (past last row | to next row | to current row) ]
pattern ( variable_regular_expr [, variable_regular_expr ] [,...] )
[ interval time_period [or terminated] ]
[ define variable as variable_condition [, variable as variable_condition] [,...] ]
)
例子
select * from TemperatureSensorEvent
match_recognize (
partition by device
measures A.id as a_id, B.id as b_id, A.temp as a_temp, B.temp as b_temp
pattern (AB)
define
B as Math.abs(B.temp - A.temp) >= 10)
A B C 认为是事件对象
pattern
A (B|C) AB AC进行轮流
(AB * C) 贪婪匹配 0或多次
(AB *? C) 非贪婪匹配
A {,3}
A {2,}
A + 一次货多次
? 0或一次
match_recognize_permute (A,B) 排列组合,等价于 (AB|BA)
interval 5 seconds 定义5s间隔
Define
B as Math.abs(B.temp - A.temp) >= 10) 表示B要做这些事
Y as Y.price <prev(Y.price,2) 表示向前数两个
// Apple事件进入Esper,只有amount大于200的才能进入win:length,并且length长度为5
EPL:select * from Apple(amount>200).win:length(5)
// 统计进入的5个Apple事件,amount的总数是多少
select sum(amount) from Apple.win:length_batch(5)
// 统计进入的5个Apple事件,amount的总数是多少,并按照price分组
select price, sum(amount) from Apple.win:length_batch(5) group by price
// 统计进入的5个Apple事件,amount的总数和name,并按照price分组
select price, name, sum(amount) from Apple.win:length_batch(5) group by price
// context定义
create context esbtest2 partition by id from ESB
// 每当5个id相同的ESB事件进入时,统计price的总和
context esbtest select sum(price) from ESB.win:length_batch(5)
// 根据不同的id,统计3秒内进入的事件的平均price,且price必须大于10
context esbtest select avg(price) from ESB(price>10).win:time(3 sec)
create context esbtest group by id<0 as low, group by id>0 and id<10 as middle,group by id>10 as high from " + esb
context esbtest select context.id,context.name,context.label, price from " + esb
create context NineToFive start (0, 9, *, *, *) end (0, 17, *, *, *)
跟随
EPL: select * from pattern[every a=example.FollowedEvent -> b=example.FollowedEvent(size < a.size)]
Send Event1: FollowedEvent{size=1}
Send Event2: FollowedEvent{size=3}
Send Event3: FollowedEvent{size=2}
Result:
FollowedEvent{size=3} FollowedEvent{size=2}
为每一个做监听
1).
select * from pattern[every LimitEvent]
// equals to
select * from LimitEvent
2).
every FollowedEvent(size > 2)
3).
every a=LimitEvent -> b=FollowedEvent(size > a.age) 等待后面那个跟随的事件
//TODO 具体笔记待补充
Esper学习笔记(未完成)相关推荐
- Esper学习笔记四:EPL语法(2)
2019独角兽企业重金招聘Python工程师标准>>> 1.select 查询所有属性或特定属性 EPL的select和SQL的select很相近,SQL用*表示查询表的所有字段,而 ...
- Esper学习笔记三:EPL语法(1)
2019独角兽企业重金招聘Python工程师标准>>> 1.EPL语法简介 EPL全称Event Processing Language,是一种类似SQL的语言,包含了SELECT, ...
- Esper学习笔记五:EPL语法(3)
2019独角兽企业重金招聘Python工程师标准>>> 1.Aggregation 类似于SQL中的聚合函数,EPL中聚合函数格式如下: aggregate_function([al ...
- Java学习笔记(未完成.....)
J2SE 5 与J2SE 1.5 J2SE 5 和J2SE 1.5其实都是指同一个版本的J2SE,前者是它的外部版本号,而后者是内部版本号. 从Java产生时,Sun公司发布了Java 1.0.而后都 ...
- 【原创】积性函数和狄利克雷卷积学习笔记 未完成
Index 狄利克雷卷积和积性函数 〇.说在前面 一.一些定义 1.数论函数 2.积性函数与完全积性函数 (1)定义 (2)举例 ①(普通)积性函数 ②完全积性函数 (3)性质 二.狄利克雷卷积 1. ...
- 第6周学习笔记未完成
低压系统接地制式的分类: 按接地制式划分,配电系统有TT.IT.TN(TN-S.TN-C.TN-C-S)五种. 第一个字母表示电源接地点对地的关系: T -表示直接接地: I -表示不接地或通过阻抗与 ...
- react render没更新_web前端教程分享React学习笔记(一)
web前端教程分享React学习笔记(一),React的起源和发展:React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写 ...
- JavaScript:学习笔记(9)——Promise对象
JavaScript:学习笔记(9)--Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...
- Flowable学习笔记(二、BPMN 2.0-基础 )
转载自 Flowable学习笔记(二.BPMN 2.0-基础 ) 1.BPMN简介 业务流程模型和标记法(BPMN, Business Process Model and Notation)是一套图 ...
最新文章
- C++简单使用Jsoncpp来读取写入json文件
- Java Review - 线程池资源一直不被释放案例源码分析
- 假如我是面试官,我会这样虐你
- 强制apt使用ipv4来更新
- 今年暑假不AC-贪心
- 微信小程序—day01
- 深度学习目标检测之 YOLO v4
- 如何给领导打造一款掌上财务管理驾驶舱?
- Time除了监控程序运行时间还能干这个?
- hashmap containsvalue时间复杂度_Java-HashMap面试问答
- 利用URL重写跟踪Session(多学一招)
- tomcat context 配置 项目部署
- idea apollo启动VM参数设置
- 运算放大器相关参数基本知识(一)
- java rome,ROME - RSS聚合类库 - 组件类库 - JAVA开源项目 - 开源吧
- paip.提升性能---list,arraylist,vector,linkedlist,map的选用..
- 推荐一款windows下好用的文件夹加密、文件加密软件(含使用说明)
- 彩灯控制器课程设计vhdl_基于VHDL的彩灯控制器设计与实现.doc
- 「 神器 」极简网速监控悬浮窗软件
- 关于盗墓笔记的那些事