论文部分内容阅读
随着网络数据、生产数据等持续增加,形成大量的数据,这些数据给存储和查询带来严峻的挑战。但可凭借数据划分方法将海量数据分块分布存储在多个机器中,这样既能能解决单机器的存储容量上限问题,也能通过先筛选分块来缩小查询目标数据的范围,还可利用多机器协同查询以提高数据查询的效率。 本文为进行数据分块存储和查询需要做一些初始化工作,例如基于机器性能和数据集特点,按机器个数和经验设置数据区间;选择被划分数据对应的直角坐标到极坐标的转化公式;设计数据区间索引表,索引表不仅是数据划分的依据,而且是查询数据时数据筛选的依据,为了提高加权和 Top-K查询的数据区间筛选效率,设计线索树结构的索引表,为了提高一般查询的数据区间筛选效率,设计简单树结构的索引表。本文基于直角坐标到极坐标的转化公式来计算待划分的数据相应的角度和距离值,并与存储在索引表中的表示预设数据区间情况的角度和距离范围比较,然后存储在与此数据区间相对应的机器文件中。从而实现大数据量的文件以小数据量的文件的方式存储,即实现了数据的划分。随着被划分的数据增多,当某个数据区间对应的文件存储的数据量过大时,则采用数据区间分裂方法,把该数据区间划分成几份新的数据区间,并将原数据区间对应的文件中存储的数据重新按角度和距离再次进行划分到该分区下属的新数据区内对应的文件中,同时修改数据区间索引表的分区信息。此外,基于本文的数据划分存储方法,给出加权和 Top-K和一般查询的方法。先通过索引表找到所属的数据区间所在的文件,再利用MapReduce任务对涉及到的文件中的数据进行并行计算和查询,实现从通过数据筛选缩小查询范围和并行化加速查询两个方面提高海量数据查询效率。 为验证对大量数据进行数据划分存储能提高数据查询的效率,本文分别用查找不经过划分存储数据和经过划分存储数据的时间进行对比实验,结果表明本文采用的数据划分方法较好的提高了海量数据查询的效率。