zoukankan      html  css  js  c++  java
  • 复杂事件处理(complex event processing)

    复杂事件处理

    复杂事件处理是一种新兴的基于事件流的技术,它将系统数据看作是不同类型的事件,事件在这里通常是有意义的状态变化,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合关系定制检测规则,持续地从事件流中查询出符合要求的事件序列,最终分析得到更加复杂的复合事件。CEP适合的场景包括实时风险管理、实时交易分析、网络欺诈、网络攻击、市场趋势分析等等。

    复杂事件处理的特征:

    • 目标:从有序的简单事件流中发现一些高阶特征
    • 输入:一个或多个由简单事件构成的事件流
    • 处理:识别简单事件之间的内在联系,多个符合一定规则的简单事件流构成复杂事件
    • 输出:满足规则的复杂事件

    复杂事件处理面临多方面的挑战:

    • 减少应用存储数据(在分析数据之前)造成的延迟
    • 能够持续、实时地分析多个数据流
    • 能够关联不同数据流中的事件,从而发现新的相关情形
    • 能够迅速响应并发现危险和机会
    • 能够迅速地将先前发现的规律应用到新的数据流模型中
    • 能够利用已有的应用开发能力快速开放新的高性能,高扩展的应用
    • 确保系统和应用的连贯性
    • 缺少对于大量的多查询的支持和优化

    复杂事件处理引擎

    复杂事件处理一般都采用非确定性有限自动机NFA变体模型来处理事件。典型的复杂事件处理系统有SASE,Cayuga以及Esper等。

    SASE系统采用了一种基于本地序列操作符以及管道查询的数据流模型,使用关系运算符来定义随后到来的序列,SASE采用了非确定性有限自动机来获取序列事件。SASE提供了一种由EVENT、WHERE、以及WITHIN等组成的规则描述语言,使用逻辑操作符和序列操作来描述事件间的关系。但是SASE语言缺少对聚集操作的支持。SASE+则扩展了SASE语言,提供了迭代和聚集操作的支持。与其他系统不同,SASE不仅会报告用户感兴趣的查询结果,而且会报告匹配此查询的所有事件,这在很大程度上增加了查询的复杂度。SASE的主要局限性在于不能处理层状结构的复杂事件类型,也就是一个查询的结果不能用作另一个查询的输入。

  • 相关阅读:
    [Ramda] Create a Query String from an Object using Ramda's toPairs function
    UVA 10285 Longest Run on a Snowboard(记忆化搜索)
    为什么鲍尔默现在说要辞职?
    c++中经常需要访问对象中的成员的三种方式
    【实用技术】DreamWeaver常用快捷键
    Objective-C中NSString和NSMutableString的基本用法
    《数据通信与网络》笔记--IPSec
    最小费用最大流模板 poj 2159 模板水题
    UVa 10192: Vacation
    C++按值和按址传递对象的思考和优化
  • 原文地址:https://www.cnblogs.com/xiepl1997/p/13646398.html
Copyright © 2011-2022 走看看