[发明专利]云环境下可扩展存储索引结构的构建和查询方法有效
申请号: | 201610944106.6 | 申请日: | 2016-10-26 |
公开(公告)号: | CN106503196B | 公开(公告)日: | 2019-05-03 |
发明(设计)人: | 周维;刘建坤;罗静;姚绍文;张浩 | 申请(专利权)人: | 云南大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/245 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 温利平;陈靓靓 |
地址: | 650091*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种云环境下可扩展存储索引结构的构建和查询方法,首先建立KD树索引结构,在建立KD树时依次采用每个索引维的数据作为层结点的划分标准,将构建得到的KD树中各个叶子结点数据集的索引数据存储在HBase中,并对整个数据集建立其Bloom Filter结构并存储;在单健值查询时,先通过Bloom Filter结构检测数据是否存在,然后再根据KD树进行精确查询;在范围查询时,确定查询范围对应的子树,然后根据子树下的叶子节点进行精确查询。本发明利用KD树这种数据结构并结合HBase来有针对性地构建云环境下可扩展存储索引结构,利用KD树将各维度在一定范围内的数据子集映射到一起,实现多维范围的查询。 | ||
搜索关键词: | 环境 扩展 存储 索引 结构 构建 查询 方法 | ||
【主权项】:
1.一种云环境下可扩展存储索引结构的构建和查询方法,其特征在于,包括以下步骤:S1:记数据集中每个数据为Xi=(xi1,xi2,…xij,…,xiL),其中i=1,2,…,N,j=1,2,…,L,其中N表示数据集中数据数量,L表示数据维数,根据需要从L维数据中选择M维数据作为索引维,然后根据以下方法构建KD树:S1.1:令层数d=1,根据数据集中每个数据的第1维索引维数据,筛选得到其中位数,将该中位数所对应的数据作为根结点;S1.2:令d=d+1;S1.3:如果d<D,D表示预设的KD树的深度,进入步骤S1.4,否则KD树构建完成;S1.4:计算Ad=d%M,%表示取余;S1.5:对于第d‑1层中的每个结点,从数据集获取该结点对应的左子集和右子集范围内的所有数据,对于左子集,根据每个数据的第Ad维索引维数据,筛选得到其中位数,将该中位数所对应的数据作为左子集的根结点;对于右子集,根据每个数据的第Ad维索引维数据,筛选得到其中位数,将该中位数所对应的数据作为右子集的根结点;返回步骤S1.2;S2:获取步骤S1中构建得到的KD树中各个叶子结点数据集并存储,将叶子结点对应的范围信息作为RowKey,将叶子结点数据集中所有数据存储指针构成的数组作为Value值,将索引数据存储在HBase中;S3:对整个数据集建立其Bloom Filter结构并存储;S4:在单健值查询时,采用以下方法:通过数据集的Bloom Filter结构检测所查询数据是否存在,如果未检测到数据存在,则报告数据不存在,如果存在,则根据KD树的路由定位到数据所在的叶子结点的Key值,然后根据Key值提取到对应的数据集,再进行精确查询,提取数据并返回或报告数据不存在;S5:在范围查询时,采用以下方法:根据KD树对数据在所选维度上的划分,确定查询范围对应的子树;获取该子树下所有叶子结点对应的Key值,如果要查询的结果是Value中已经预先计算好的函数值,则直接从对应Value中提取数据并返回,如果不是预先计算的函数值,则通过HBase提取得到所有Key值对应的数据,根据范围查询条件筛选出相应数据,然后计算得到函数值后返回结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云南大学,未经云南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610944106.6/,转载请声明来源钻瓜专利网。
- 上一篇:一种浓缩发酵乳及其制备方法
- 下一篇:一种海燕窝和牛奶加工饮料的配方及工艺