复杂事件处理
大数据公司使用 "事件云 "一词来指代正在收集的大量事件数据。对快速、可操作的决策的需求说明了像复杂事件处理(CEP)这样的授权技术的重要性。
数据就在我们身边。传感器网络、智能设备和移动应用程序正在不断收集越来越多的数据。
"当今世界90%的数据仅在过去两年中产生,每天创造2.5万亿字节的数据--随着新设备、传感器和技术的出现,数据增长速度可能会更快"。IBM营销云报告
当我们努力以近乎实时的方式处理和分析不断增长的数据流时,对不断变化的趋势作出快速反应或提供最新的商业和安全情报的能力,对公司的成功或失败都是无价的。随着数以千计到数以百万计的数据流和传入事件的出现,我们不断面临着如何积极主动地采取有效行动的挑战。解决方案是什么?CEP正好解决了这个问题。
什么是复杂事件处理,为什么它很重要?
根据Shamim Bhuiyan和Michael Zheludkov撰写的《使用Apache Ignite的高性能内存数据网格》一书,CEP主要是 "一个事件处理概念,处理多个事件的任务,目标是实时或接近实时地识别事件云中有意义的事件。"
CEP处理范式可以在各种行业中找到,包括金融、安全和医疗。对于金融应用,CEP经常被用于信用卡欺诈检测和股票市场监测。此外,安全方面的CEP被用来标记恶意代理,甚至可以自动采取适当的反措施应对。而在医疗保健方面,CEP可用于关联护理、治疗事件、相关治疗和保险合规制度。
CEP是如何工作的?
CEP使用声明性规则来指定事件处理逻辑。其持续匹配传入事件模式的能力归功于以下各种技术。
- 事件模式检测
- 事件抽象化
- 事件过滤
- 事件聚合和转换
- 检测关系,如因果关系
- 成员关系,以及事件之间的时间性
- 事件驱动过程的抽象化
我不会详述,但是,我将用一个汽车的例子来说明一般的概念。
首先,我们需要一个事件源,即任何能提供环境信息的东西。这可以是交易、日志文件、边缘处理/检测算法或传感器的形式。例如,我们的汽车轮胎可以在15分钟内从45磅/平方英寸移动到41磅/平方英寸。这就是我们的事件。
接下来是事件处理。在这一步,我们可以对我们收到的数据进行推断,变成有意义的行动。这可以使用复杂的规则引擎、神经网络、贝叶斯网络、分析法或数据和语义规则来完成。例如,我们的汽车在很长一段时间内失去轮胎压力,就会产生LossOfTirePresure 事件。
最后,最后一步是反应或行动。为了有效地应对一个事件,要采取行动。这些行动可以是警报、日志文件、更复杂的工作流程的触发器,或自动行动。对于汽车的例子,事件 "LossOfTirePresure "可以触发一个反应过程,将压力损失记入汽车的维护日志,并通过汽车的门户提醒司机,轮胎压力已经下降。

图片来源。Databricks
有哪些工具可用?
根据Databricks公司的说法,复杂事件处理最常用的工具是。
- Databricks公司使用的Apache Spark Streaming
- Data Artisans使用的Apache Flink
- LinkedIn使用的Apache Samza
- Twitter使用的Apache Storm
- Hadoop/MapReduce
- 亚马逊Kinesis分析
- 微软Azure流分析,流洞察力
- 富士通软件Interstage大数据复杂事件处理服务器
- IBM Streams, Operational Decision Manager (ODM)
- 甲骨文流分析和流探索
这些只是一些可用的开源流框架,允许用户在其设备上设置数据处理引擎。