云环境下的多维索引结构、其构建方法及相似性查询方法

文档序号:7858950阅读:185来源:国知局
专利名称:云环境下的多维索引结构、其构建方法及相似性查询方法
技术领域
本发明涉及一种云计算环境下的多维索引方法,尤其涉及一种支持相似性查询的云环境下的多维索引方法及其构建方法,属于计算机信息检索技术领域。
背景技术
随着互联网的日益普及和IT技术的迅猛发展,互联网数据急剧膨胀,如何存储和管理海量数据已成为一个亟待解决的挑战性问题。云计算的概念应运而生,云计算为用户和企业带来了新的服务方式,目前已出现了一些取得成功应用的云计算系统,如亚马逊的弹性云(EC2)、IBM的蓝云和Google的云计算平台等。这些云计算系统包含大量的计算机节点,存储着海量的数据,支持着大规模数据处理和数据检索等应用。在云计算系统中,数据存储大多依赖于底层分布式文件系统(DFS)来管理数据, 通过基于key-value的方式进行海量数据处理。例如,在Google的YouTube中,视频以key-value方式存储,key是唯一的视频id, value包括视频名称、上载时间、浏览人数等,这种存储方式非常适合通过关键字key进行查询,但是不能有效地进行复杂的查询,如范围查询或相似性查询,难以支持云计算个性化的按需检索。针对此问题,一些文献提出建立树型索引以实现不同维数数据的范围查询。现有的云环境下的索引方法,按照针对的数据维数可以分为一维索引和多维索弓I。针对单维度的数据可以建立一维索引,如B+树索引、hash索引等。它们均使用两级索引模式,在实际存储数据的物理节点上建立局部索引,然后在服务器端建立全局索引,当用户查询数据时,通过服务器端的全局索引定位到本地索引,然后进行本地数据的查询,这样可以大大减少查询的时间,但它们无法高效地处理多维数据索引。针对多维数据的索引结构也均是使用两级索引,主要是为本地节点建立树型索引,并使用结构化覆盖网组织计算节点。上述索引方法的不足是无法高效的支持相似性查询,且随着数据维数的增加,树型索引结构的查询性能会迅速下降,即会出现所谓的“维数灾难”问题。在传统分布式计算下,Weber R等提出对高维数据进行量化压缩以提高查询效率,并实现VA-File (Vector Approximation File,矢量近似文件),VA-File有两个显著优点①索引文件大小远小于原始文件,在进行顺序扫描时磁盘的I/O代价大大减少减少了计算复杂度。但是其不足在于查询时必须首先对所有量化后的近似矢量进行扫描,当数据量大时所花费的代价也相对较大。针对“维数灾难”问题,董道国等提出了一种新的索引结构VAR-Tree,它将VA-File和R-Tree有机结合,用R-Tree管理和组织VA-File中的近似数据,并用已提出的R-Tree类相似查询算法实现基于VAR-Tree的查询,提高了检索性能。一篇中国发明专利文献(申请号为03129687. 4,授权公告号为CN1477563A)中公开了一种高维矢量数据快速相似检索方法Ordered VA-File,它对VA-File中的近似矢量进行排序重组,将在高维空间中聚集在一起的数据尽量存储在文件的相邻位置中,并根据实际应用将Ordered VA-File自适应分割为一定数量的类,每一类的数据在文件中是连续存储的。查询时,仅选择距离查询矢量最近的几类数据进行查询处理,从而提高查询的效率,但是此发明一方面计算量较大,另一方面依赖于查询时选择的类数量,而类数量未给出具体的计算。

发明内容
本发明所要解决的技术问题在于克服现有云环境索引结构不支持高效的相似性查询的不足,提供一种云环境下的多维索引方法及其构建方法,能够在云环境下实现高效的相似性查询。本发明具体采用以下技术方案解决上述技术问题一种云环境下的多维索引结构,包括全局索引及分别位于各存储节点的局部索弓丨,所述云环境使用覆盖网组织存储节点,所述局部索引为对其所在存储节点中所有矢量数据的近似矢量进行聚类所得到的聚类结果;所述全局索引为公布至整个覆盖网络的所有局部索引的聚类中心信息及各聚类中心所在存储节点的地址。
如上所述云环境下的多维索引结构的构建方法,包括以下步骤步骤I、使用VA-File方法对各个存储节点中存储的初始矢量数据进行量化压缩,分别得到各存储节点的近似矢量集合;步骤2、分别对各存储节点的近似矢量集合进行聚类,每个存储节点的聚类结果即为该存储节点的局部索引;步骤3、提取所有局部索引中的聚类中心信息,并将所有局部索引的聚类中心信息与各聚类中心所在存储节点的地址一起公布至整个覆盖网络,形成全局索引。一种云环境下的相似性查询方法,所述云环境采用如上所述多维索引结构,包括以下步骤步骤I、使用VA-File方法对待查询矢量数据进行量化压缩,得到待查询矢量数据的近似矢量;步骤2、从全局索引中定位出与待查询矢量数据的近似矢量距离最小的聚类中心;步骤3、根据局部索引确定步骤2所定位出的聚类中心所在的类,对其进行KNN查询;步骤4、判断KNN查询的结果是否满足要求,如是,则将其作为最终查询结果输出;如否,则从全局索引中定位出与待查询矢量数据的近似矢量距离次小的聚类中心,并转至步骤3。相比现有技术,本发明具有以下有益效果一、本发明在云环境下的索引结构中引入了量化压缩,一方面大幅减少了索引存储空间,降低了资源消耗;另一方面,可以有效支持云环境下的多维数据索引和相似性查询;二、本发明使用对所有近似矢量进行聚类所得到的聚类信息作为局部索引,在对局部索引查询时,只需通过聚类中心信息对相应的类进行查询,不需扫描所有的近似矢量,提高了查询效率。


图I是本发明的云环境下的多维索引结构的结构示意图;图2是量化压缩的实例图;图3是对近似矢量聚类的实例图,图3 (a)为聚类原理示意图,图3 (b)为聚类后得到的两个类;图4是本发明的云环境下的相似性查询方法流程图。
具体实施例方式下面结合附图对本发明的技术方案进行详细说明本发明的思路是将传统分布式计算环境下的VA-File方法引入云环境,对各存储 节点中的原始数据进行量化压缩,然后对所得到的近似矢量集合分别进行聚类,以聚类结果作为局部索引,将所有局部索引的聚类中心信息与各聚类中心所在存储节点的地址一起通过覆盖网接口公布至整个覆盖网络。这样,在进行相似性查询时,仅需要对距待查询矢量数据的近似矢量最近聚类中心所在的类进行查询,而不需要对所有的近似矢量进行扫描,大大缩小了查询范围,提高了查询效率。为了便于公众理解,下面以采用CAN覆盖网组织云环境下的存储节点为例,对本发明的技术方案进行详细说明。如图I所示,采用CAN组织结构的云环境中的数据是分布式地存储在数据中心的不同服务器上的。每个服务器承担两种角色存储节点和覆盖网节点。存储节点是云数据中心分布式存储系统中的一个节点,用于存储数据和索引信息。每个存储节点在逻辑上按照CAN组织在一起,共同管理全局索引。因此存储节点在逻辑上也是一个覆盖网节点,对应CAN的一个分区。首先构建本发明的云环境下的多维索引结构,包括各存储节点的局部索引的建立和全局索引的建立。局部索引建立的步骤,包括步骤I)对存储节点中的初始矢量数据进行量化压缩,量化压缩方法与VA-File(详细内容可参考文献[Weber R, Schek H J, Blott S. A quantitative analysis andperformance study for similarity-search methods in high-dimensional spaces.Proceedings of the 24thVLDB Conference. New York, USA. 1998:194-205])一致;设量化压缩后的近似矢量集合为V=IV1,. . .,VJ ;图2显示了一个量化压缩的实例,图中左边一列为多媒体数据抽象成的原始矢量数据,矢量数据维数n=2,共6条记录,图中右边一列为这6条原始矢量数据经量化压缩后所得到的近似矢量集合;步骤2)对近似矢量集合V进行聚类;本步骤中可采用现有的各种聚类算法,本具体实施方式
中采用最常用的k-means聚类算法,具体按照以下步骤步骤201)从近似矢量集V中任意选择k个近似矢量作为初始聚类中心,分别为
U1, U2..., Uk e V ;步骤202)对V中剩余的m-k个近似矢量,分别计算它们与这k个聚类中心的距离,本具体实施方式
中采用欧氏距离
ηdy = sqrlQ^ (Vir-uJrf) (I)
r=l
其中,I < i < m-k, l^j^k,n, (Iij表示第i个近似矢量与第j个聚类中心之间的距离,Vk表示第i个近似矢量的第r维数据,u#表示第j个聚类中心的第r维数据;步骤203)将每个近似矢量分配给与其距离最短,即与其最相似的聚类中心所在的类;对于每个近似矢量Vi,计算其应该属于的类c, =argmin(i/i;)(2)式(2)中,I彡i彡m-k, I ( j ( k,Ci代表近似矢量Vi与k个类中距离最近的那个类;步骤204)更新每个聚类中心Uj
V
=^-YjVii(3)NjjNj为第j个聚类中的近似矢量个数,Uj表示第j个聚类中心,Vij为第j个聚类中的第i个近似矢量;步骤205)重复步骤202)-203),直到标准测度函数开始收敛为止。这里采用均方差作为标准测度函数,计算公式如下
见25 (去ΣΕ—wZ) ) (4)σ j表示第j个聚类的均方差,Nj为第j个聚类中的近似矢量个数。图2中的近似矢量集合的聚类过程如图3(a)所示,聚类后的文件实例如图3 (b)所示。最终得到的聚类结果即为所在存储节点的局部索引。所有存储节点的局部索引建立后,将聚类中心和其所在的存储节点地址通过CAN接口公布到整个覆盖网,作为全局索引。在本具体实施方式
中,全局索引按照以下方法公布针对每个存储节点,按照CAN的节点映射算法,将该节点上的每个聚类中心(ip,+)的关键字+根据DHT映射到虚拟坐标空间一点P上,则(ip, Uj)即存储在P所在区域的CAN节点上,其中ip指局部索引所在存储节点的IP地址,\_表示该存储节点上的第j个聚类中心。由于每个存储节点的聚类信息均被公布,因此根据全局索引可以定位到局部索引的任何矢量。以图3 (b)所示的两个聚类为例,其全局索引公布过程如下由于第一个聚类中心为〈O. 75,2. 5>,第二个聚类中心为<3. O, O. 5>,因此将(ipl,〈O. 75,2. 5 和(ipl,〈3. 0,0. 5 条目公布到全局索引节点,其中ipl为此数据所在存储节点的IP地址。完成上述索引结构构建后,即可在其基础上进行相似性查询,对于用户给定的查询条件〈key,K〉,即查询与矢量数据key最相似的K个数据,本发明的相似性查询方法如图4所示,步骤如下步骤I)对于要查询的矢量数据key,先对其进行量化压缩,求出其近似矢量V';步骤2)通过CAN路由机制查询全局节点,计算近似矢量V'到全局索引C(ip,u)中各个聚类中心的距离山选取距离最小的聚类中心Uj并返回相应的Ci (ip,Uj);步骤3)局部索引根据步骤2)返回的ip地址和Uj定位到相应的存储节点和类,并在聚类中心Uj所属类的内部进行KNN (Κ-Nearest Neighbor algorithm, K最近邻节点算法)查询;步骤4)若步骤3)返回的数据个数K’小于K,表示已查询到的数据个数少于要求查询的数据个数,则更新C=C-Ci, K=K-Ki,并跳到步骤2)继续查询;否则,查询结束。·
权利要求
1.一种云环境下的多维索引结构,包括全局索引及分别位于各存储节点的局部索引,所述云环境使用覆盖网组织存储节点,其特征在于,所述局部索引为对其所在存储节点中所有矢量数据的近似矢量进行聚类所得到的聚类结果;所述全局索引为公布至整个覆盖网络的所有局部索引的聚类中心信息及各聚类中心所在存储节点的地址。
2.如权利要求I所述云环境下的多维索引结构的构建方法,其特征在于,包括以下步骤 步骤I、使用VA-File方法对各个存储节点中存储的初始矢量数据进行量化压缩,分别得到各存储节点的近似矢量集合; 步骤2、分别对各存储节点的近似矢量集合进行聚类,每个存储节点的聚类结果即为该存储节点的局部索引; 步骤3、提取所有局部索引中的聚类中心信息,并将所有局部索引的聚类中心信息与各聚类中心所在存储节点的地址一起公布至整个覆盖网络,形成全局索引。
3.如权利要求2所述云环境下的多维索引结构的构建方法,其特征在于,所述聚类采用k-means聚类方法。
4.一种云环境下的相似性查询方法,所述云环境采用权利要求I所述多维索引结构,其特征在于,包括以下步骤 步骤I、使用VA-File方法对待查询矢量数据进行量化压缩,得到待查询矢量数据的近似矢量; 步骤2、从全局索引中定位出与待查询矢量数据的近似矢量距离最小的聚类中心; 步骤3、根据局部索引确定步骤2所定位出的聚类中心所在的类,对其进行KNN查询;步骤4、判断KNN查询的结果是否满足要求,如是,则将其作为最终查询结果输出;如否,则从全局索引中定位出与待查询矢量数据的近似矢量距离次小的聚类中心,并转至步骤3。
全文摘要
本发明公开了一种云环境下的多维索引结构、其构建方法及相似性查询方法。本发明索引结构包括全局索引及分别位于各存储节点的局部索引,所述云环境使用覆盖网组织存储节点,所述局部索引为对其所在存储节点中所有矢量数据的近似矢量进行聚类所得到的聚类结果;所述全局索引为公布至整个覆盖网络的所有局部索引的聚类中心信息及各聚类中心所在存储节点的地址。本发明具有以下优点减少了索引存储空间,降低了资源消耗;可以有效支持云环境下的多维数据索引和相似性查询;使用对所有近似矢量进行聚类所得到的聚类信息作为局部索引,在对局部索引查询时,只需通过聚类中心信息对相应的类进行查询,不需扫描所有的近似矢量,提高了查询效率。
文档编号H04L29/08GK102831225SQ20121030760
公开日2012年12月19日 申请日期2012年8月27日 优先权日2012年8月27日
发明者程春玲, 孙春菊, 张登银, 徐小龙 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1