论文部分内容阅读
面对数据的激烈增长,传统的数据仓库技术已成为分析管道的瓶颈,传统的先存贮再查询的数据管理和结构难以解决数据仓库的实时响应要求。数据流持续查询和复杂事件处理在处理快速、大量数据时都采用了不保存数据直接在内存中对数据进行处理的方法,提高数据处理的实时性,同时也减少了对计算资源的占用。但数据流持续查询和复杂事件处理在处理关系型数据流时都是直接将其转化为流表,忽略了数据的事务特性;对多数据流的连接查询采用基于时间或者基于元组的连接查询语义,没有考虑关系型数据流各种复杂的窗口连接语义和多数据流的同步问题;在处理数据流与磁盘存贮表的连接查询时直接将磁盘存贮表转化为流表的形式,没有考虑两者之间连接语义和内存开销。关系型数据库作为一类重要数据来源,在数据流和复杂事件处理中增强对事务数据流的处理是很有必要的。本文主要针对数据流持续查询和复杂事件处理中的关系型数据流处理进行了扩展,使得数据能够实时快速处理的同时也保持其事务特性。主要的研究工作如下:(1)提出了事务数据流的单调性理论,该理论使得事务数据流的单调查询输出在处理相同时间戳的元组时与元组顺序无关,保证了事务数据流查询计算的ACID性质。为实现事务数据流的单调查询,本文提出了延迟计算策略和基于主存数据库的查询执行。实验说明基于主存数据库的查询执行有效地解决了窗口的分组驱动及事务数据流的共享计算,验证了事务数据流的单调性理论。(2)针对多事务数据流的连接计算问题,提出了滑动窗口标识匹配的连接语义模型。数据流的基本连接语义模型会导致内存溢出,而基于时间和基于元组的滑动窗口连接模型无法处理各种不同类型窗口之间的连接查询。本文通过滑动窗口标识屏蔽各种滑动窗口间的差异,在各种不同的滑动窗口之间进行连接查询。为实现滑动窗口标识匹配,本文提出了滑动窗口的子窗口存储结构及该存储结构下的窗口维护和连接计算算法,并通过优化子窗口存储结构来提高连接计算速率。实验验证了该语义模型可屏蔽各种滑动窗口间的差异,解决多事务数据流的同步和连接计算问题。(3)对数据流和磁盘存贮表的连接计算算法进行了改进。通过对经典算法MESHJOIN算法的分析,发现MESHJOIN算法每次连接计算后都替换存贮表放在内存中的整个数据块,因此产生大量的磁盘I/O。为减少磁盘I/O,本文提出将存贮表在内存中的数据块划分为若干逻辑分区,每次连接计算后仅替换其中的一个逻辑分区。实验证明改进算法降低了每个滑动窗口计算时的I/O代价,提高了每个滑动窗口的计算速率。(4)对事务数据流与多个存贮表的连接计算,提出将多个存贮表之间的查询定义为实化视图后再与事务数据流进行连接计算。本文对实化视图的增量维护算法进行了改进。对实化外连接视图的增量计算提出了基于连接析取范式的辅助增量计算算法,实验证明该算法保证了增量计算的正确性也克服了外连接视图定义的约束条件。对实化连接视图的增量计算提出了数据源上的延迟补偿算法,实验证明该算法避免了全局时间戳和系统静止时刻的补偿要求。数据流持续查询和复杂事件处理已广泛应用于物联网、云计算等环境。本文的研究旨在增强数据流持续查询和复杂事件处理对事务数据流的处理能力,具有一定的理论意义和实用价值。