一种复杂事件处理语言的自定义函数功能扩展
2018-11-01刘婧妍廖湖声高红雨
计算机与现代化 2018年10期
刘婧妍,廖湖声,高红雨
(北京工业大学信息学部计算机学院,北京 100124)
0 引 言
在当前的大数据背景下,很多领域需要对实时快速到来的数据(即流数据)进行分析。流数据往往单体价值较小,数据价值随时间后移而降低。传统对大数据的批量计算模式已很难满足对流数据的实时性查询需求。
复杂事件处理(Complex Event Processing, CEP)[1]是对流数据进行即时处理的一种技术。复杂事件处理模型使用事件模型驱动。在处理数据时,使用事件间的因果关系、模式匹配等对事件进行过滤,对事件做聚合映射,从而筛选出用户感兴趣的信息。复杂事件处理广泛应用于医疗[2-3]、物流[4-5]、传感器网络[6-8]等多个领域。
目前大多数的复杂事件处理语言都拥有基础算子[9](选择、映射、逻辑算子、序列化等),可供用户实现相应的复杂事件查询功能。CEL语言是复杂事件处理系统Cayuga[10-11]上运行的语言。CEL语言在传统数据库声明性语言的基础上扩展序列、迭代算子,以应对流数据的处理需求。CEL语言不支持窗口。EPL语言及其支持引擎Esper[12]支持对于XML类型数据的操作。它包含SQL中的所有算子,同时拥有连接、过滤、聚合算子。EPL语言支持自定义函数操作。但是其支持的函数只能处理同一类的所有数据,比如满足筛选条件的同一属性数据,而不能对其中的单个属性进行操作。以上的复杂事件处理语言都是针对流数据进行批量处理,无法针对数据进行细粒度的筛选和操作。XSeq语言及其系统[13-15]主要针对类型更加复杂的半结构化数据(XML流数据)进行查询。……
登录APP查看全文
