复杂事件处理 (CEP) 是一种基于事件流的技术,它将业务数据看作不同类型的事件,通过分析事件间的关系,建立不同的事件关系库,利用过滤、关联、聚合等技术,最终由简单事件产生高级事件或商业流程。早在20世纪80年代,SQL的出现就解决了用结构化的方式查询数据的问题。90年代,Sybase率先提出触发器(trigger)的理念,把事件处理和数据层紧密联系起来,随着数据的某种特征触发下游的动作。但触发器技术的干扰性较强,能够处理的数据量和复杂度有限,且没有时间序列的概念。

实时分析不是一项简单的数据管理技术,而是基于数据流的实时分析技术,有几个相关的技术点:一是必须能够对数据流而不是简单的数据进行处理;二是使用内存管理技术,CEP中所有的操作都不会落地,因为一旦落地就失去时效性;三是集成企业级的需求,比如说怎样用多台服务器并行或串行解决一系列复杂事件,怎样分流、合并、连接;四是高可用性, 在一台服务器发生危险的情况下,其它服务器如何接管。

关系数据库,内存数据库与CEP:

关系数据库:

关系数据库,是建立在关系数据模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示,标准用户和应用程序到一个关系数据库的接口是结构化查询语言(SQL)。SQL 声明被用来交互式查询来自一个关系数据库的信息和为报告聚集数据。目前主流的关系数据库有oracle、SQL、access、db2、sqlserver,sybase等。

内存数据库:

内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。通常,内存数据库都是通过先将数据存入内存,然后通过一套类似关系数据库SQL规则实现对内存数据的查询检索。

CEP:

CEP实际是基于内存数据库上的实现,但它以事件流的方式,提供了更加复杂的过滤、关联、聚合等规则实现对数据的处理,保证了实时性。

1.过滤

例如:交易系统需要通过对源源不断的交易数据,过滤交易金额大于100万的业务数据,并做分析。

通过CEP引擎过滤后的只剩下金额大于100万的数据。

2.基于窗口的数据分组

例如:需要将业务数据分成三种类型,按照某一项值区分大、小、平均。这三种不同类型的数据后处理业务逻辑不同。

3.基于规则模式的匹配

例如:使用模式匹配事件流中的前一条数据与后一条数据的某一项值相等。

待续。

 

 

 

 

版权声明:本文为sunwke原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sunwke/articles/2520518.html