天天看点

事件流处理

事件流处理

事件流处理(ESP)是一组旨在帮助构建事件驱动的信息系统的技术。ESP技术包括事件可视化,事件数据库,事件驱动的中间件和事件处理语言,或复杂事件处理(CEP)。在实践中,术语ESP和CEP通常可互换使用。ESP处理处理事件数据流的任务,目的是识别这些流中的有意义模式,采用诸如检测多个事件之间的关系,事件相关性,事件层次结构以及因果关系,成员资格和时间等其他方面的技术。

ESP支持许多不同的应用,例如金融服务中的算法交易,RFID事件处理应用,欺诈检测,过程监控以及电信中基于位置的服务。

示例

作为说明,以下代码片段展示了对事件流内的模式的检测。第一个是使用连续SQL查询处理数据流的示例(根据时间戳和WINDOW持续时间永久执行处理到达数据的查询)。此代码片段说明了两个数据流的JOIN,一个用于库存订单,另一个用于生成的库存交易。查询在订单的一秒内输出与交易匹配的所有订单的流。输出流按时间戳排序,在本例中为Orders流的时间戳。

SELECT DataStream

   Orders.TimeStamp, Orders.orderId, Orders.ticker,

   Orders.amount, Trade.amount

FROM Orders

JOIN Trades OVER (RANGE INTERVAL '1' SECOND FOLLOWING)

ON Orders.orderId = Trades.orderId;

另一个示例代码片段检测外部“事件”流中的婚礼,例如教堂钟声响起,穿着燕尾服或晨衣的男人的外表,流动的白色礼服中的女人和穿过空中的米饭。一个“复杂”或“复合”事件是从个别简单事件中推断出来的:婚礼正在发生。

WHEN Person.Gender EQUALS "man" AND Person.Clothes EQUALS "tuxedo"

FOLLOWED-BY

  Person.Clothes EQUALS "gown" AND

  (Church_Bell OR Rice_Flying)

WITHIN 2 hours

ACTION Wedding