论文部分内容阅读
大数据时代,很多基于网络的应用系统会持续自动地产生大量包含各种信息的数据流,如何高效的从海量数据中获取有价值的信息并进行相应处理成为一种挑战。由此,衍生了一种复杂事件处理平台。复杂事件检测技术旨在快速准确地从持续到来的流数据中抽取有价值的信息,是复杂事件处理平台的关键部分。XML作为网络数据交换和数据共享的主要格式,是复杂事件处理平台的数据模型之一。目前,对于XML流数据的复杂事件检测方法的研究主要针对于两个方面:一方面,使用更丰富的复杂事件描述语言;另一方面,提出更高效的事件流模式匹配方法。当前存在很多针对于XML数据流的检测方法,其中一部分虽然较为高效,但其查询大多是在XPath的基础上进行扩展,它们对于复杂事件中时序关系的检测无法有效描述,且多数研究不支持返回复杂事件中多个匹配的子结果的需求。另一部分主要将复杂事件检测方法作为复杂事件处理平台的一部分,定义了相应的复杂事件处理语言,但在描述复杂事件时大多比较复杂。针对上述问题,本文采用正规树模式描述复杂事件查询,它在树模式的基础上添加了正规式节点,使其能够同时满足描述查询节点间的结构关系和时序关系的需求,是一种简洁且丰富的复杂事件描述方式。在此基础上,本文提出了一种高效的复杂事件检测方法CEDMFT,使用一种高效的XML流数据处理模型——宏森林自动机作为树模式的查询模型,结合一种用于正规式处理的兄弟自动机,形成复杂事件检测的解决方案。该方法通过将正规树模式查询翻译为一组宏森林自动机和兄弟自动机,使得两种自动机能够相互嵌套、相互调用,并结合对应自动机的事件流匹配方法,实现针对XML流数据的复杂事件查询。同时,本文实现了相应的复杂事件检测的系统,并进行了相应的测试实验。实验结果表明:对于简单的树模式查询能达到3.3GB/s的吞吐量,对于包含时序关系的复杂查询能达到1.2GB/s的吞吐量,能够满足复杂事件检测的基本需求。