CEP即Complex Event Processing缩写,翻译过来就是复杂事件处理(复合事件可能更加准确)。
1.为什么我们需要CEP?CEP是具有实时分析以及快速响应等等功能。下面让我们通过一个案例来思考CEP的意义。经典案例:实时统计过往红色车辆,传统关系型数据库的做法,每一辆车开过,那么记录一条数据放在数据库中,要统计数据,那么拿出数据来统计一遍算出值,我们把这个存取的过程具象化为现实生活,有把这段时间通过的车全部放在停车场中,等到一定的时候,然后把规定时间或者个数的所有红色车辆找出来。这种做法是不合理的,因为存取的开销太大,达不到到实时的效果;而且如果是有连续的查询,那么取的次数太多,开销太大;如果来的数据太多,开销也会增大。这么无法
2.CEP正是为了解决此类的问题,与传统的先存储后查询数据的方式不同。CEP预先设置查询条件,然后让实时数据通过这些查询条件,引擎抓取符合条件的数据,这种查询是连续不断的。
3.CEP是一种事件驱动架构,可以做到感知(实时事件的检测)、分析(聚合各类事件)、响应(更新预期)
4.事件驱动应用与数据库应用对比
5.事件
事件可以看作是在一个系统中可观察到的状态改变。例:看见闪电、听见打雷、信用卡消费。例如发生了一件事情,它总是有现象的,不如如何知道发生了一件事情?简单事件:单一事件。复杂事件:由多个简单事件复合而成,复杂事件也可以理解为复合事件。复合事件例子:听见雷声(简单事件)+看见闪电(简单)-> 将要下雨(复合),通过两个简单事件我们分析出一个复杂的事件。
6.CEP的作用:异常检测、趋势分析、发现机会、模式匹配。
7.业界应用:算法交易 (Algorithmic Trading),量化投资 (Quantitative Investment),风险管理 (Risk Management),传感器数据管理和模式分析,商业活动监控,群众智能,网络监测,系统动态校验等等。
下一章将要介绍在DoNet中StreamInsight和NEsper两个实现CEP技术的引擎的简单介绍以及对比分析。