[发明专利]一种流处理方法和装置有效
申请号: | 201180003717.6 | 申请日: | 2011-12-26 |
公开(公告)号: | CN103282880A | 公开(公告)日: | 2013-09-04 |
发明(设计)人: | 刘晓 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理 方法 装置 | ||
技术领域
本发明涉及复杂事件处理领域,尤其涉及一种流处理方法和装置。
背景技术
目前信息处理系统需要处理的数据量越来越大,实时性要求也越来越高。复杂事件处理(Complex Event Processing,CEP)技术是一种新兴的基于事件流的数据处理技术。它将系统数据看作不同类型的事件流,通过分析事件之间的关系,检测、建立不同事件之间的关联关系,并利用过滤、关联、聚合等技术,最终由简单事件产生、触发高级事件或商业流程。与传统的数据库技术不同,CEP技术不是处理静态存储的大量数据,而是对动态生成的具有时序性的数据流进行实时地处理,以期发现在大量不同事件之间的关系——模式、异常、缺失、层次等。
在CEP系统中,当有事件流到来时,查询语句连续地作用/执行(即进行过滤、关联等操作)于事件上。由于事件是连续不断地经过CEP系统,因此,在CEP处理中,往往需要定义一个窗口,查询一般是基于该特定的窗口来进行计算的。例如:对于股票事件流,统计最后一分钟内所有股票的均值;或者统计最后100个交易的股票均值。
CEP系统中的查询语句有多种方式可以进行描述,连续查询语言(Continuous Query Language,CQL)是一种较好的描述语言。CQL是一种基于SQL的描述语言,可以针对流数据进行连续查询。EPL(Event Process Language)是一种类结构化查询语言(Structured Query Language,SQL)的流处理描述语言,基于SQL描述语言加入了,针对流处理的窗口、模式等描述能力。
在EPL语言中,在FROM子句后面跟随的是流名称(假设流名为S),而在流名称后面“.”以后的定义表示的则是窗口的概念。例如:Select*From S.win:time(60sec),则表示对于流S开设60秒的流处理窗口。在EPL中,主要有以下几种窗口:时间滑动窗口(表示为S.win:time(60sec))、数量滑动窗口(表示为S.win:length(60sec))、分组窗口(表示为S.std:groupwin(*))等等。
在EPL语言中,having**>=10表示在查询结果中只返回满足having条件的结果,与SQL用法类似;on myevent(CallCounter>=10)as a update mywindow as b set flag=true where a.strImsi=b.strImsi and b.flag=false表示当满足where条件时,myevent流字段CallCounter>=10满足某条件时,更新mywindow中的flag字段内容。
在现有技术中,流处理中现有的关键字Having,只能输出满足条件以后的记录,之前的数据被认为是不满足条件数据与过期数据一同处理,不能与满足条件后的记录一起输出,如:条件是having>5;那么如果实际满足条件的记录有10条,但实际输出结果只有5~10。
如果要实现输出满足条件的所有记录,则在现有技术下,需要采用多规则嵌套实现:对同一周期内的数据生成两份A、B,从A中找到满足条件的用户,再从B中,找出这个用户的通话记录。
发明内容
本发明实施例所要解决的技术问题在于,提供一种流处理方法和装置。可以在不采用多规则嵌套的情况下,实现满足条件的全部事件的输出。
为了解决上述技术问题,一方面,本发明实施例提供了一种流处理方法,所述方法包括:
接收属于当前流处理窗口的事件;
缓存所述属于当前流处理窗口的事件;
判断已缓存的属于当前流处理窗口的事件是否满足与第一关键字有关的第一表达式;
当判断结果为不满足所述第一表达式时,不删除已缓存的属于当前流处理窗口的事件,并接收属于当前流处理窗口的下一事件;
当判断结果为满足所述第一表达式时,按照所述第一关键字输出已缓存的属于当前流处理窗口的事件,其中所述第一关键字用于指示输出已缓存的属于当前流处理窗口并满足所述第一表达式的事件。
另一方面,本发明实施例还提供了一种流处理装置,所述装置包括:
接收单元,用于接收属于当前流处理窗口的事件;
缓存单元,用于缓存所述属于当前流处理窗口的事件;
第一表达式判断单元,用于判断已缓存的属于当前流处理窗口的事件是否满足与第一关键字有关的第一表达式;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180003717.6/2.html,转载请声明来源钻瓜专利网。