
Esper
文章平均质量分 89
luonanqin
这个作者很懒,什么都没留下…
展开
-
Esper学习之一:Esper介绍
由于项目需要,我开始了学习Esper的任务。刚开始觉得他是个很高级的东西,学了一段时间后发现他确实是很高级的东西。不过貌似在国内的应用很少,网上都查不到什么资料的,所以我觉得在博客里写一下自己的学习的收获,一是总结所学知识点,二是分享给更多的学习者,毕竟好东西不能这样被埋没了。今天就先来简单介绍一下Esper是什么玩意儿。 说到Esper,不得不说一下CEP。CEP即Complex原创 2013-08-11 16:10:44 · 56968 阅读 · 27 评论 -
Esper学习之九:EPL语法(五)
暂停更新三个多月,转眼间就2014年了。年底相信都是大家最忙碌的时候,我也不例外,以至于真的是没腾出手来继续更新,好在年初这段时间可以休息一阵了,所以赶着这段时间空闲就多写点吧。本来想先写view,pattern这些常用的内容以满足大部分人的需求,但是考虑到这些章节有涉及到前面章节的知识,所以我觉得基础还是要学的,不能还没学会走就想跑,否则可能会摔得很惨哦。原创 2014-01-11 12:56:29 · 9951 阅读 · 11 评论 -
Esper学习之十五:Pattern(二)
上一篇开始了新一轮语法——Pattern的讲解,一开始为大家普及了几个基础知识,其中有说到操作符。当时只是把它们都列举出来了,所以今天这篇就是专门详解这些操作符的,但是由于篇幅限制,本篇先会讲几个,剩余的后面几篇会逐个讲解。原创 2014-09-16 19:19:14 · 7394 阅读 · 17 评论 -
Esper专栏介绍
之前在csdn的博客专栏里没有查到Esper,所以本人抛砖引玉,开设了第一个Esper专栏。如果有大神也在研究Esper,希望能以专栏的形式推广Esper。虽然说小众,但是功能强大。下面我为各位做了简单的介绍。原创 2014-03-16 11:12:45 · 30696 阅读 · 27 评论 -
Esper学习之十四:Pattern(一)
前述的几篇关于EPL语法的文章,如果各位都掌握得很好,那基本上应付不少业务场景应该说是轻轻松松。但是总有那么些复杂场景只靠那点基础语法还是搞不定,比如说:某个用户在请求登录服务时,n秒内连续m次未登录成功,可视为该ip在暴力破解密码。又或者:用户在页面上的操作间隔超过n秒即认为该用户已关闭该网页。也许上面的几个例子不够好或者已经有别的方式实现,但是Esper确实能够将其抽象成多个关联的事件进行处理。像这类具有关联性事件的处理,即是本篇的中心内容——Pattern,它就像一个我们自定的模板,如果事件按照模板进原创 2014-08-27 17:00:06 · 8019 阅读 · 4 评论 -
Esper学习之十三:EPL语法(九)
距离上一篇博客已经有很多个月的时间了,由于工作的原因,没怎么腾出手来写博客。再加上自己已计划算法学习为第一要务,更新博客的事情暂时就放缓了脚步。所以各位童鞋大可不必等我的博客,先把文档看起来,有什么不懂的先记下来,可以私信问我也可以等文章出来后再理解一遍,这样就不耽误大家的学习了。原创 2014-08-01 13:44:17 · 6302 阅读 · 2 评论 -
Esper学习之十二:EPL语法(八)
今天的内容十分重要,在Esper的应用中是十分常用的功能之一。它是一种事件集合,我们可以对这个集合进行增删查改,所以在复杂的业务场景中我们肯定不会缺少它。它就是Named Window。原创 2014-04-10 22:07:17 · 10566 阅读 · 13 评论 -
Esper学习之十:EPL语法(六)
年前的最后一篇说的是子查询和join,基本上epl的大部分简单语法都说完了。之前有朋友问我epl怎么和数据库交互,正好今天这篇就是来专门解释这个问题。但是要提醒各位,本篇只是说明了在epl中如何与数据库交互,并且只能算是简单的交互。而高级的用法会在esperio里有详细的指导(esperio的文档可在esper的官网找到)。原创 2014-02-10 16:48:33 · 9881 阅读 · 5 评论 -
Esper学习之六:EPL语法(二)
从上一篇开始说EPL的语法,主要是关于注解的。今天来说说比较常用的语法,Select Clause和From Clause。这个两个可以说是写EPL必备,要想得到事件流的处理结果,基本上就靠他们俩了(Pattern除外)。今天的内原创 2013-09-21 23:02:13 · 12285 阅读 · 24 评论 -
Esper学习之十一:EPL语法(七)
上一篇说到了EPL如何访问关系型数据库这种数据源,实际上别的数据源,比如:webservice、分布式缓存、非关系型数据库等等,Esper提供了统一的数据访问接口。然后今天会讲解如何创建另外一种事件类型——Schema。原创 2014-02-20 23:32:34 · 7313 阅读 · 0 评论 -
Esper学习之五:EPL语法(一)
上篇说到了Esper的Context,要是不了解的同学请参看《Esper学习之四:Context》,看过的同学如果还是不理解的话可以给我评论,我将会尽可能的解答。之前有些同学问我Context和Group by有什么区别,其实如果只是很简单的用Context,那么确实没太大区别,无非是在Context下select可以不包含group by修饰的属性。但是Group by明显没有Context原创 2013-09-13 05:58:19 · 24467 阅读 · 15 评论 -
Esper学习之八:EPL语法(四)
国庆假期之后的工作周,居然苦逼的只有一个休息日,博客没写成不说,打球还把脚给扭了。不仅如此,这周开始疯狂加班了,所以今天这篇拖了又拖。。。关于EPL,已经写了三篇了,预估计了一下,除了今天这篇,后面还有5篇左右。大家可别嫌多,官方的文档对EPL的讲解有将近140页,我已经尽量将废话都干掉了,再配合我附上的例子,看我的10篇文章比那140页英文文档肯定舒服多了吧。也请各位原谅我一周一篇的原创 2013-10-22 22:02:16 · 8883 阅读 · 24 评论 -
Esper学习之七:EPL语法(三)
国庆七天,本想出去玩玩,可是哪里都是人,所以还是家里蹲吧。上篇说到了Select Clause和From Clause,今天这篇就说说Aggregation,Group by,Having和Output Clause。先预告一下,由于例子比较多,所以篇幅会有些长,需要各位耐心观看哦。1.Aggregation2.Group by2.1多字段Group by2.2@Hint3原创 2013-10-06 23:38:01 · 13911 阅读 · 15 评论 -
Esper学习之四:Context
Context是Esper里一个很有意思的概念,要是理解为上下文,我觉得有点不妥。以我的理解,Context就像一个框,把不同的事件按照框的规则框起来,并且有可能有多个框,而框与框之间不会互相影响。不知道各位在看完这篇文章后是否认同我的观点,我愿洗耳恭听。原创 2013-09-04 20:51:07 · 16414 阅读 · 21 评论 -
Esper学习之二:事件类型
上周我们介绍了Esper,它是一个适合实时分析数据的内存计算引擎。若有不了解的同学可以看一下Esper学习之一:Esper介绍。如果各位自己运行过之前的程序,应该对Esper的处理机制和EPL比较感兴趣。不过这篇文章就先来介绍一下Esper能处理的数据结构,即“事件”。Esper对事件有特殊的数据结构约定。能处理的事件结构有:POJO,java.util.Map,Object Arra原创 2013-08-18 18:35:32 · 21470 阅读 · 15 评论 -
Esper学习之三:进程模型
上周末本来要更新第三篇的,但是因为突发事情没能完成。这周我会争取更新两篇,让感兴趣的同学一次看个够。之前对Esper所能处理的事件结构进行了概述,并结合了例子进行讲解,不清楚的同学请看Esper学习之二:事件类型。今天主要为大家解释一下Esper是怎么处理事件的,即Esper的进程模型。1.UpdateListenerUpdaterListener是Esper提供的一个接口,用于监原创 2013-08-31 14:38:34 · 18638 阅读 · 43 评论