论文部分内容阅读
随着网络的发展,许多应用中的数据不再是数据库中静态的数据,而是以一种流的方式在线到达的动态数据。这样的数据具有数据无界,数据量大,流速快,并且要求实时处理等特性,这种新型的数据被称为流数据。对应的,包含流数据的应用被称为数据流的应用。而这种新型的数据使得传统的查询处理方法产生了很多的问题,比如数据的无限性就使得传统的阻塞处理方法变得无效。针对数据流应用中产生的问题,专家学者们开展了广泛的研究工作。如同传统数据库中存在数据库管理系统一样,在研究数据流时需要开发数据流管理系统,这样的系统负责对流式数据进行查询处理。
数据流管理系统中的核心是查询处理功能模块。通常情况下,在数据流上基本的查询处理包括选择、投影和连接(SPJ)操作。相对于选择与投影,连接操作更为复杂。由于数据流的无限性和连接操作的阻塞性质,使得在数据流上的连接操作必须要加以限制。因此滑动窗口的概念也就很自然的引入到数据流中,通过对处理的数据加上滑动窗口的限制,变传统的阻塞操作为流上的非阻塞操作。对流上连接操作的研究也是广泛的展开,但是当前的研究都是针对于等值连接来开展的,并没有考虑到非等值连接操作的处理该如何进行。然而在一些实际的应用中非等值连接的查询处理也是十分重要的。例如在线拍卖的应用中,需要对出价时间与拍卖商品的有效时间进行比较从而检查系统中注册的查询的合法性。因此我们对非等值连接操作也会进行详细介绍。
另外,由于数据流的特性,通常情况下数据流的查询处理都是在主存中进行的,其目的是为了避免频繁的磁盘读取操作,从而提高了查询处理的效率。除此之外,如果直接对流数据进行查询处理无疑效率是很低的,为了能够进一步的提高效率,我们采用了基于红黑树索引的查询处理方法。红黑树易于建立和维护,所以这种数据结构是一种适用于主存的数据结构。通过红黑树索引的技术能够提高查询处理的效率。这样在查询处理过程中将首先对流式数据建立索引,而后利用索引进行高效的查询处理。
我们开发了数据流管理原型系统RealStream,在多流多查询环境下能够对流数据进行基本的查询处理以及优化,在系统中集成了索引连接查询处理的方法。本文将着重的介绍对流数据建立索引方法以及基于索引的连接查询处理方法,然后对数据流管理系统RealStream进行简要的介绍。