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

文档序号:6522302阅读:410来源:国知局
一种基于动态索引结构的海量数据实时查询方法
【专利摘要】本发明公开一种基于动态索引结构(DC-Tree)的海量数据实时查询方法,该方法是将海量多维数据集降维,支持高空间效率低查询时间的方法,并支持分布式冗余存储,从而提升了传统分布式机制中数据分配的效率,适应大规模数据的处理;该方法包括:多维数据记录DR通过MasterNode中Z?Curve映射函数fz,生成降维结果集S;MasterNode选定k个哈希函数,通过Bloom?Filter对结果集S进行映射,生成节点集NN;更新数据记录DR,对节点集NN中每个元素实行动态构建;用户User查询MDS结果,通过步骤1、步骤2获得节点集NN,启用并行查询方法;用户User对节点集NN中所有访问节点的结果集进行聚合,得到最终查询结果Rset。
【专利说明】一种基于动态索引结构的海量数据实时查询方法
【技术领域】
[0001]本发明涉及计算机大数据查询【技术领域】,特别涉及一种基于动态索引结构的海量数据实时查询方法。
【背景技术】
[0002]随着互联网的飞速发展,社交网络、移动应用等日趋火热,我们看到网络信息的数据量在日益增多,大数据作为一种新兴数据概念而被定义,数据作为信息的载体,起着举足轻重的作用。数据的爆炸式增长使得我们进入了大规模数据分析的时代,其特点是计算强度大,并且要求大规模并发存储和处理能力。如何快速地处理海量数据,及时有效地从海量数据中提取有价值的信息,是急需解决的技术问题。
[0003]目前,大规模数据分析有2种主流技术:第一种是20世纪80年代开始,以Teradata, Ga_a研究项目为代表的并行数据库逐步发展成熟,它是由一系列操作符组成,前一操作符的输出流是下个操作符的输入流,记录按流水线的方式依次经过这些操作符,具有较高的性能。第2种是以Google为首的基于Map Reduce和分布式文件系统GFS组成一种“无共享”的简单函数式编程的并行计算框架,支持其每天亿万次的搜索。Apache的Hadoop是一种Map Reduce的开源实现。但这些大规模数据处理技术难以满足实时性要求,更多的是针对离线数据的处理。Hadoop更像是一种ETL工具,两者的关系不是相互竞争而是互为补充。
[0004]另一方面,由Guttman提出的动态索引结构R-Tree及基于R-Tree的变种,其插入、查询等操作可以同时进行,并且支持多维的模型,在众多空间索引技术中的优势非常明显,但是其针对大规模数据处理时随着树高度的增加,其查询结点重叠度增加,造成查询效率下降较快。而本发明能够很好地解决上面的问题。

【发明内容】

[0005]本发明目的在于提供一种基于动态索引结构(DC-Tree)的大规模多维数据实时查询方法,该方法解决了大规模多维数据处理的滞后性问题,实现了在分布式架构体系上的海量数据实时查询模型。
[0006]本发明解决其技术问题所采用的技术方案是:本发明提出一种基于动态索引结构(DC-Tree)的海量数据实时查询方法,该方法包括如下步骤:
[0007]步骤1:多维数据记录DR通过MasterNode中Z Curve映射函数fz,生成降维结果集S ;
[0008]步骤2:MasterNode选定k个哈希函数,通过Bloom Filter对结果集S进行映射,生成节点集NN;
[0009]步骤3:更新数据记录DR,对节点集NN中每个元素实行动态构建;
[0010]步骤4:用户User查询MDS结果,通过步骤1、步骤2获得节点集NN,启用并行查询方法;[0011]步骤5:用户User对节点集NN中所有访问节点的结果集进行聚合,得到最终查询结果Rset。
[0012]本发明是基于动态索引结构将海量多维数据集降维,支持高空间效率低查询时间的方法,并支持分布式冗余存储,从而提升了传统分布式机制中数据分配的效率,适应大规模数据的处理。本发明建立了具有概念层次化结构的多维数据树,打破传统的单一属性查询方法,使带有多维功能属性的数据集分成不同维度进行构建,大大降低了单一属性查询时的聚合工作量。
[0013]本发明通过将高维数据空间数据映射到一维空间,大大降低了数据管理节点的工作负担,支持数据存储节点的动态增加。同时设计了海量数据插入和查询方法,支持多维属性数据的动态构建,并支持海量数据查询的实时性效果,增加了查询过程访问锁机制,适应查询的并发性需求。
[0014]一、系统架构
[0015]图1给出海量数据实时查询系统的体系架构,该系统由以下四部分组成:数据管理节点(Master Node)、动态索引树(DC-Tree)、数据存储节点(Data Node)及用户(User)。MasterNode负责数据查询/更新的定位,主要运用降维和快速查询技术。DC-Tree主要是用于动态构建多维属性数据查询树,提供实时查询效果。DataNode负责具体数据的存储。用户(User)向MasterNode发送查询请求,MasterNode将对查询请求内容处理,确定所查询内容在部分DataNode上,并将这些符合要求的DataNode提交给用户。完成这个操作之后,用户将于MasterNode断开连接,并主动访问提交的DataNode进行查询。系统整体架构如下图1所示。
[0016]本发明的海量数据实时查询方案由以下四部分操作组成:MDS(最小描述子集)分解、Z curve降维处理、Bloom Filter定位、DC-Tree索引及结果聚合。
[0017]二、方法流程
[0018]1.MDS (最小描述子集)分解
[0019]MDS(最小描述子集)表现形式为(M1,…,Md),其中风GA,不妨设Mi ={an,ai2,…,aik},其中I≤i≤d,aik e Di,则此MDS (最小描述子集)对应的多维数据记录集为{ (&1D &21,...,S(Ji),...,(已lk,^2k>...,,记为 MM。
[0020]2.Z curve 降维处理
[0021]根据上述步骤I中所得结果集MM,运用Z Curve方法进行降维操作,设Z Curve映射函数为fz(p, m, η),其中P e丽,m为Z Curve阶数,η为多维模型的维度数,不妨设映射函数fz返回值为yp。该映射函数计算过程伪代码如下:
[0022](I)yp = O;
[0023]REPEAT
[0024]REPEAT
[0025](2)yp = yρ+2ηα-1)+^Β,,
[0026]UNTIL j ≥η
[0027]UNTIL i ≥m
[0028](3) RETURN yp
[0029]由于n维m阶Z Curve的映射函数空间复杂度为0(n),所以上述结果需要长度为η的数组来存放结果集yp,不妨设此结果集为S。
[0030]3.Bloom Filter 定位
[0031]根据上述步骤2中所得降维处理后的结果集S = {Υι,...,yn},再根据相关工作中对Bloom Filter的阐述,此时需要选择k个哈希函数HFi,其中I < i < k,由于BloomFilter本身存在一定的错误率,为了能够减少这种正向性错误,本发明在构建哈希函数时运用了 Knuth论证:两个哈希函数HF1和HF2通过下面的形式可以生成更多的哈希函数:
[0032]HFi = [HFi+HF^f (i)]mod r
[0033]其中I≤i≤k,r为Bloom Filter数组长度,HF1和HF2是两个相互独立的哈希函数。当f(i) = O时,采用双哈希函数机制,否则就为扩展哈希函数机制,这样产生的哈希函数保持了正向性错误率不变,并且提高了系统的计算效率。
[0034]选定k个函数函数后,对集合S中数据进行映射,返回一个DataNode节点集,不妨设为NN。并将此集NN返回至用户。
[0035]4.DC-Tree索引及结果聚合
[0036]用户根据上述步骤3中所得集合NN,定位到所需进行索引的DataNode, DataNode采用DC-Tree索引方法进行查找。在每个DataNode上进行查找后,会将索引结果发送到一个索引结果集中,不妨设为RSet,此时再对该索引结果集进行聚合,获得最终查询结果。
[0037]有益效果:
[0038]1、本发明提高了数据分配的效率,适应大规模数据的处理,降低了单一属性查询时的聚合工作量。
[0039]2、本发明实现了大规模数据高效并发处理和实时性功能。
【专利附图】

【附图说明】
[0040]图1是本发明的系统架构图。
[0041]图2是本发明的动态插入方法流程图。
[0042]图3是本发明的并行查询方法流程图。
【具体实施方式】
[0043]下面通过结合说明书附图,进一步说明本发明的技术方案。
[0044]实施例1
[0045]如图2和图3所示,本发明提出一种基于动态索引结构(DC-Tree)的海量数据实时查询方法,该方法包括如下步骤:
[0046]步骤1:多维数据记录DR通过MasterNode中Z Curve映射函数fz,生成降维结果集S ;
[0047]步骤2:MasterNode选定k个哈希函数,通过Bloom Filter对结果集S进行映射,生成节点集NN;
[0048]步骤3:更新数据记录DR,对节点集NN中每个元素实行动态构建;
[0049]步骤4:用户User查询MDS结果,通过步骤1、步骤2获得节点集NN,启用并行查询方法;
[0050]步骤5:用户User对节点集NN中所有访问节点的结果集进行聚合,得到最终查询结果Rset。
[0051]本发明是基于动态索引结构将海量多维数据集降维,支持高空间效率低查询时间的方法,并支持分布式冗余存储,从而提升了传统分布式机制中数据分配的效率,适应大规模数据的处理。本发明建立了具有概念层次化结构的多维数据树,打破传统的单一属性查询方法,使带有多维功能属性的数据集分成不同维度进行构建,大大降低了单一属性查询时的聚合工作量。
[0052]本发明的一个新的多维数据记录DR,通过MasterNode快速定位查询节点集NN,并动态添加到相应DC-Tree,用户User通过MDS查询节点集NN,聚合返回查询结果。
[0053]则其【具体实施方式】为:
[0054](I)多维数据记录DR通过MasterNode中Z Curve映射函数fz,生成降维结果集S ;
[0055](2) MasterNode选定k个哈希函数,通过Bloom Filter对结果集S进行映射,生成节点集NN;
[0056](3)更新数据记录DR,对节点集NN中每个元素实行动态构建;
[0057]动态插入:为根节点D申请加锁LOCK ;更新目录结点的Measure值;如果DR仅仅包含在D的一个孩子的MDS中,那么令D置为这个目录孩子结点;如果DR包含在多个D的孩子的MDS中,那么找出这些孩子中包含最少数据结点的那个孩子,并将D置为这个目录孩子结点;如果DR不包含在D的任何一个孩子的MDS中,首先拷贝一份D,不妨设为D’,将DR添加到D的每一个孩子结点中,计算添加后的重叠值,选择重叠值最小的那个孩子结点,并将其设为D ;将数据记录DR插入到D中,并更新D的Measure值;如果D的容纳空间已经达到最大,则调用分裂函数SPLIT,将D作为参数传递;更新D的父亲结点的Measure和MDS ;令D指向D的父亲结点,如果D没有更新或者D不是根节点,则重新将数据记录DR插入到D中,并更新D的Measure值,继续执行,否则结束;为根节点D申请解锁UNLOCK ;
[0058](4)用户User查询MDS结果,通过步骤1、步骤2获得节点集NN,启用并行查询方法;
[0059]并行查询:对节点集NN中所有节点,如果该节点没有上锁,则并发访问所有在NN中节点;为根节点D申请加锁LOCK ;对D的每一次孩子结点C,对C的任何一个维度,如果与查询MDS不在同一维度层次上,则将两者中较低维度层次转换为较高维度层次;如果C的_MDS包含在查询MDS中,则将该_1?5及其Measure Values加入到结果集中;如果和查询MDS有重叠但并不包含在查询MDS中,则将该孩子结点C设为D,递归调用并行查询函数PARALLEL QUERY,继续及NN中节点执行同样操作;如果C为叶子结点,则访问结束;为根节点D申请解锁UNLOCK ;
[0060](5)用户User对节点集NN中所有访问节点的结果集进行聚合,得到最终查询结果Rset ;
[0061](6)全过程结束。
[0062]实施例2
[0063]如图1所示,本发明给出海量数据实时查询系统的体系架构,该系统由以下四部分组成:数据管理节点(Master Node)、动态索引树(DC_Tree)、数据存储节点(Data Node)及用户(User)。MasterNode负责数据查询/更新的定位,主要运用降维和快速查询技术。DC-Tree主要是用于动态构建多维属性数据查询树,提供实时查询效果。DataNode负责具体数据的存储。用户(User)向MasterNode发送查询请求,MasterNode将对查询请求内容处理,确定所查询内容在部分DataNode上,并将这些符合要求的DataNode提交给用户。完成这个操作之后,用户将于MasterNode断开连接,并主动访问提交的DataNode进行查询。
[0064]本发明的海量数据实时查询方法由以下四个操作部分组成,包括:MDS(最小描述子集)分解、Z curve降维处理、Bloom Filter定位、DC-Tree索引及结果聚合。
【权利要求】
1.一种基于动态索引结构的海量数据实时查询方法,其特征在于,所述方法包含如下步骤: 步骤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中所有访问节点的结果集进行聚合,得到最终查询结果Rset0
2.根据权利要求1所述的一种基于动态索引结构的海量数据实时查询方法,其特征在于:所述方法中建立了实时查询模型,将海量多维数据集降维。
3.根据权利要求1所述的一种基于动态索引结构的海量数据实时查询方法,其特征在于:所述方法中建立了具有概念层次化结构的多维数据树。
4.根据权利要求1所述的一种基于动态索引结构的海量数据实时查询方法,其特征在于,所述方法中包括:MDS(最小描述子集)分解、Z curve降维处理、Bloom Filter定位、DC-Tree索引及结果聚合。
5.根据权利要求1所述的一种基于动态索引结构的海量数据实时查询方法,其特征在于:所述方法是基于动态索引结构。
【文档编号】G06F17/30GK103678550SQ201310648180
【公开日】2014年3月26日 申请日期:2013年12月4日 优先权日:2013年9月9日
【发明者】陈丹伟, 庄俊 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1