论文部分内容阅读
近年来,随着互联网、物联网和云计算的快速发展,致使数据规模巨大且以流的形式出现,即数据快速、不间断、实时地到达。这种新的数据形式称为流式数据,常产生于网络路由、传感器网络、视频监控以及金融分析等场景。与其它数据形式相比,数据流有着不同特征,如实时性、易失性、突发性、无序性、无限性等。无论在工业界还是学术界数据流处理技术已成为研究热点。虽然传统数据库技术已经得到很好的发展,先存储再计算是传统数据库查询处理技术的主要方式,但可惜的是这种方法难以直接用于处理数据流。数据量大、速度快的特点给数据流处理算法提出了更高要求,有许多经典数据流处理算法往往只需单遍扫描数据集就能满足聚合查询的要求。这些算法常常需要在内存中维护一个尺寸远小于数据集大小的数据结构,这样的概要数据结构通过一次扫描数据集就能近似捕捉数据的特点。 本文详细介绍概要数据结构,剖析其工作原理,对比不同方法之间的优缺点等。同时为了弥补现有算法的缺陷,本文还提出了新的解决方案,新方法在时间复杂度和空间复杂度上都有相应的改善。以下是本文主要研究成果: (1)针对现有的Count-min Sketch方法内存消耗大、随着数据的增长会出现“饱和”等一些不利因素影响,本文提出了一种更优秀的自适应概要数据结构DCM,它弥补了原有算法的不足并增添了新功能。 (2) q-digest被设计用来捕捉数据分布并完成查询工作。它虽然支持多种操作,但不支持分裂,这就导致其在分布式环境中应用受限,不能充分发挥优势。本文提出了一种不增加额外误差的分裂方法。分裂完成后,如果后续数据继续写入,再次查询所得结果的误差要小于原来结构所产生的误差。 (3)许多商业数据库系统用直方图去概括、总结大量的关系,在查询优化器使用方面能够对查询结果给出高效的估算。近似直方图增量维护方法有一些特点适合应用在数据流环境当中,本文提出了一种基于可分裂q-digest的近似等深直方图增量维护方法。这种新方法比现有方法精度更高,内存空间消耗更小。 在论述完每种方法之后,都有对应的实验来验证新方法与现有算法之间的差异,并且在每个部分最后都对新算法进行了总结。