论文部分内容阅读
自从进入信息时代以来,信息呈爆发式增长,随之而来的是数据量的剧增。处理海量数据,从海量数据中获得有效信息,成为了当务之急。很长一段时间以来,存储和处理数据的主要工具是关系数据库,而关系数据库中的聚集查询是进行统计分析的重要操作。随着需要处理的数据量急剧增长,传统关系数据库进行聚集查询的批处理模式使得用户进行聚集查询时需经过长时间的等待之后才能得到最终的准确结果。在线聚集查询可以在查询处理的过程中不断获取数据,给出当前近似结果,直到处理完全部数据才能得到最终的精确结果,当达到用户所需的精确度时,用户可以终止查询,以节约用户时间和系统资源。随着新的数据处理平台Hadoop的发展,处理海量数据变得更高效,但是数据是“无限”的,而计算和存储资源却是有限的。虽然目前很难从根本上解决这一问题,但是对于特定应用,仍然可以提出一些特定的解决方案。本文结合Hadoop处理海量数据的优势和在线聚集查询处理方式,提出了基于Hadoop的迭代抽样近似聚集查询处理方法,通过两次迭代抽样得到满足用户所需精确度的近似聚集查询处理结果。根据第一次抽样得到的样本数据以及用户给定的精确度,估计出第二次迭代所需的样本大小,通过两次得到的样本数据,返回近似聚集查询结果给用户。为了避免数据偏差的影响,特别是对于分组数据量相差悬殊或低选择度的Group by聚集查询,本文提出了在Hadoop环境下的“分层”抽样方法,从而保证基于统计的近似聚集结果有意义。最后在实验中,通过各种抽样方法对聚集查询结果的影响进行了对比验证,实验表明本文提出的基于Hadoop的在线聚集查询方法既考虑时间效率,让用户在处理时间和结果精确度之间做出权衡,同时也考虑了集群的计算资源和存储资源的利用率。并与最新的基于Hadoop的在线聚集查询处理方法进行对比实验分析,结果表明本文的迭代抽样聚集查询处理方法更高效。