一种基于动态索引结构的海量数据实时查询方法技术

技术编号:9865890 阅读:150 留言:0更新日期:2014-04-03 01:17
本发明专利技术公开一种基于动态索引结构(DC-Tree)的海量数据实时查询方法,该方法是将海量多维数据集降维,支持高空间效率低查询时间的方法,并支持分布式冗余存储,从而提升了传统分布式机制中数据分配的效率,适应大规模数据的处理;该方法包括:多维数据记录DR通过MasterNode中Z?Curve映射函数fz,生成降维结果集S;MasterNode选定k个哈希函数,通过Bloom?Filter对结果集S进行映射,生成节点集NN;更新数据记录DR,对节点集NN中每个元素实行动态构建;用户User查询MDS结果,通过步骤1、步骤2获得节点集NN,启用并行查询方法;用户User对节点集NN中所有访问节点的结果集进行聚合,得到最终查询结果Rset。

【技术实现步骤摘要】
一种基于动态索引结构的海量数据实时查询方法
本专利技术涉及计算机大数据查询
,特别涉及一种基于动态索引结构的海量数据实时查询方法。
技术介绍
随着互联网的飞速发展,社交网络、移动应用等日趋火热,我们看到网络信息的数据量在日益增多,大数据作为一种新兴数据概念而被定义,数据作为信息的载体,起着举足轻重的作用。数据的爆炸式增长使得我们进入了大规模数据分析的时代,其特点是计算强度大,并且要求大规模并发存储和处理能力。如何快速地处理海量数据,及时有效地从海量数据中提取有价值的信息,是急需解决的技术问题。目前,大规模数据分析有2种主流技术:第一种是20世纪80年代开始,以Teradata、Gamma研究项目为代表的并行数据库逐步发展成熟,它是由一系列操作符组成,前一操作符的输出流是下个操作符的输入流,记录按流水线的方式依次经过这些操作符,具有较高的性能。第2种是以Google为首的基于MapReduce和分布式文件系统GFS组成一种“无共享”的简单函数式编程的并行计算框架,支持其每天亿万次的搜索。Apache的Hadoop是一种MapReduce的开源实现。但这些大规模数据处理技术难以满足实时性要求,更多的是针对离线数据的处理。Hadoop更像是一种ETL工具,两者的关系不是相互竞争而是互为补充。另一方面,由Guttman提出的动态索引结构R-Tree及基于R-Tree的变种,其插入、查询等操作可以同时进行,并且支持多维的模型,在众多空间索引技术中的优势非常明显,但是其针对大规模数据处理时随着树高度的增加,其查询结点重叠度增加,造成查询效率下降较快。而本专利技术能够很好地解决上面的问题。
技术实现思路
本专利技术目的在于提供一种基于动态索引结构(DC-Tree)的大规模多维数据实时查询方法,该方法解决了大规模多维数据处理的滞后性问题,实现了在分布式架构体系上的海量数据实时查询模型。本专利技术解决其技术问题所采用的技术方案是:本专利技术提出一种基于动态索引结构(DC-Tree)的海量数据实时查询方法,该方法包括如下步骤:步骤1:多维数据记录DR通过MasterNode中ZCurve映射函数fz,生成降维结果集S;步骤2:MasterNode选定k个哈希函数,通过BloomFilter对结果集S进行映射,生成节点集NN;步骤3:更新数据记录DR,对节点集NN中每个元素实行动态构建;步骤4:用户User查询MDS结果,通过步骤1、步骤2获得节点集NN,启用并行查询方法;步骤5:用户User对节点集NN中所有访问节点的结果集进行聚合,得到最终查询结果Rset。本专利技术是基于动态索引结构将海量多维数据集降维,支持高空间效率低查询时间的方法,并支持分布式冗余存储,从而提升了传统分布式机制中数据分配的效率,适应大规模数据的处理。本专利技术建立了具有概念层次化结构的多维数据树,打破传统的单一属性查询方法,使带有多维功能属性的数据集分成不同维度进行构建,大大降低了单一属性查询时的聚合工作量。本专利技术通过将高维数据空间数据映射到一维空间,大大降低了数据管理节点的工作负担,支持数据存储节点的动态增加。同时设计了海量数据插入和查询方法,支持多维属性数据的动态构建,并支持海量数据查询的实时性效果,增加了查询过程访问锁机制,适应查询的并发性需求。一、系统架构图1给出海量数据实时查询系统的体系架构,该系统由以下四部分组成:数据管理节点(MasterNode)、动态索引树(DC-Tree)、数据存储节点(DataNode)及用户(User)。MasterNode负责数据查询/更新的定位,主要运用降维和快速查询技术。DC-Tree主要是用于动态构建多维属性数据查询树,提供实时查询效果。DataNode负责具体数据的存储。用户(User)向MasterNode发送查询请求,MasterNode将对查询请求内容处理,确定所查询内容在部分DataNode上,并将这些符合要求的DataNode提交给用户。完成这个操作之后,用户将于MasterNode断开连接,并主动访问提交的DataNode进行查询。系统整体架构如下图1所示。本专利技术的海量数据实时查询方案由以下四部分操作组成:MDS(最小描述子集)分解、Zcurve降维处理、BloomFilter定位、DC-Tree索引及结果聚合。二、方法流程1.MDS(最小描述子集)分解MDS(最小描述子集)表现形式为(M1,...,Md),其中不妨设Mi={ai1,ai2,...,aik},其中1≤i≤d,aik∈Di,则此MDS(最小描述子集)对应的多维数据记录集为{(a11,a21,...,ad1),...,(a1k,a2k,...,adk)},记为MM。2.Zcurve降维处理根据上述步骤1中所得结果集MM,运用ZCurve方法进行降维操作,设ZCurve映射函数为fz(p,m,n),其中p∈MM,m为ZCurve阶数,n为多维模型的维度数,不妨设映射函数fz返回值为yp。该映射函数计算过程伪代码如下:(1)yp=0;REPEATREPEAT(2)yp=yp+2n(i-1)+j-1ajiUNTILj≥nUNTILi≥m(3)RETURNyp由于n维m阶ZCurve的映射函数空间复杂度为O(n),所以上述结果需要长度为n的数组来存放结果集yp,不妨设此结果集为S。3.BloomFilter定位根据上述步骤2中所得降维处理后的结果集S={y1,...,yn},再根据相关工作中对BloomFilter的阐述,此时需要选择k个哈希函数HFi,其中1≤i≤k,由于BloomFilter本身存在一定的错误率,为了能够减少这种正向性错误,本专利技术在构建哈希函数时运用了Knuth论证:两个哈希函数HF1和HF2通过下面的形式可以生成更多的哈希函数:HFi=[HF1+HF2+f(i)]modr其中1≤i≤k,r为BloomFilter数组长度,HF1和HF2是两个相互独立的哈希函数。当f(i)=0时,采用双哈希函数机制,否则就为扩展哈希函数机制,这样产生的哈希函数保持了正向性错误率不变,并且提高了系统的计算效率。选定k个函数函数后,对集合S中数据进行映射,返回一个DataNode节点集,不妨设为NN。并将此集NN返回至用户。4.DC-Tree索引及结果聚合用户根据上述步骤3中所得集合NN,定位到所需进行索引的DataNode,DataNode采用DC-Tree索引方法进行查找。在每个DataNode上进行查找后,会将索引结果发送到一个索引结果集中,不妨设为RSet,此时再对该索引结果集进行聚合,获得最终查询结果。有益效果:1、本专利技术提高了数据分配的效率,适应大规模数据的处理,降低了单一属性查询时的聚合工作量。2、本专利技术实现了大规模数据高效并发处理和实时性功能。附图说明图1是本专利技术的系统架构图。图2是本专利技术的动态插入方法流程图。图3是本专利技术的并行查询方法流程图。具体实施方式下面通过结合说明书附图,进一步说明本专利技术的技术方案。实施例1如图2和图3所示,本专利技术提出一种基于动态索引结构(DC-Tree)的海量数据实时查询方法,该方法包括如下步骤:步骤1:多维数据记录DR通过MasterNode中ZCurve映射函数fz,生成降维结果集S;步骤2:Ma本文档来自技高网
...
一种基于动态索引结构的海量数据实时查询方法

【技术保护点】
一种基于动态索引结构的海量数据实时查询方法,其特征在于,所述方法包含如下步骤:步骤1:多维数据记录DR通过MasterNode中Z?Curve映射函数fz,生成降维结果集S;步骤2:MasterNode选定k个哈希函数,通过Bloom?Filter对结果集S进行映射,生成节点集NN;步骤3:更新数据记录DR,对节点集NN中每个元素实行动态构建;步骤4:用户User查询MDS结果,通过步骤1、步骤2获得节点集NN,启用并行查询方法;步骤5:用户User对节点集NN中所有访问节点的结果集进行聚合,得到最终查询结果Rset。

【技术特征摘要】
2013.09.09 CN 201310408184.01.一种基于动态索引结构的海量数据实时查询方法,其特征在于,所述方法包含如下步骤:步骤1:多维数据记录DR通过MasterNode中ZCurve映射函数fz,生成降维结果集S;步骤2:MasterNode选定k个哈希函数,通过BloomFilter对结果集S进行映射,生成节点集NN;步骤3:更新数据记录DR,对节点集NN中每个元素实行动态构建;动态插入:为根节点D申请加锁LOCK;更新目录结点的Measure值;如果DR仅仅包含在D的一个孩子的MDS中,那么令D置为这个目录孩子结点;如果DR包含在多个D的孩子的MDS中,那么找出这些孩子中包含最少数据结点的那个孩子,并将D置为这个目录孩子结点;如果DR不包含在D的任何一个孩子的MDS中,首先拷贝一份D,不妨设为D’,将DR添加到D的每一个孩子结点中,计算添加后的重叠值,选择重叠值最小的那个孩子结点,并将其设为D;将数据记录DR插入到D中,并更新D的Measure值;如果D的容纳空间已经达到最大,则调用分裂函数SPL...

【专利技术属性】
技术研发人员:陈丹伟庄俊
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1