[发明专利]面向Cassandra的分布式可扩展四叉树索引方法有效
申请号: | 201510989769.5 | 申请日: | 2015-12-23 |
公开(公告)号: | CN105630968B | 公开(公告)日: | 2019-07-09 |
发明(设计)人: | 涂振发 | 申请(专利权)人: | 华中师范大学 |
主分类号: | G06F16/29 | 分类号: | G06F16/29;G06F16/22 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 覃蛟 |
地址: | 430079 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 cassandra 分布式 扩展 四叉树 索引 机制 基于 查询 方法 | ||
1.面向Cassandra的分布式可扩展四叉树索引方法,其特征在于,当需要为空间数据建立空间索引时,包括步骤:
步骤1:设计空间索引存储结构,建立索引列族;
步骤2:指定基点以及四叉树最小网格间距、深度,建立可扩展四叉树索引,具体包括以下子步骤:
步骤2.1:指定可扩展四叉树索引的基点,以基点为中心将要索引的空间区域划分为一系列大小相等的网格区域,每个网格区域称为索引域;
步骤2.2:指定四叉树的最小网格间距和深度,计算索引域的大小;
步骤2.3:以索引域的大小为网格大小进行网格划分;
步骤2.4:以步骤2.2所指定的最小网格间距和深度为索引域建立四叉树索引;
步骤3:计算记录空间对象的索引结点及该结点的空间索引编码,其中,分三种情况记录空间对象:
第一种情况,占据一定空间范围的空间对象跨越多个索引域,使用所跨越的各个索引域的四叉树根结点进行记录;
第二种情况,占据一定空间范围的空间对象在单个索引域内,依据其最小外包矩形MBR确定使用哪一个结点进行记录;空间对象使用能容纳其最小外包矩形的四叉树最小结点进行记录;若空间对象覆盖多个结点,则使用结点的父结点记录,并且按照这一规则逐层递进直至根结点为止;
第三种情况,对于不占据空间范围的空间对象,直接记录在四叉树最底层的结点上;
步骤4:在索引列族中记录索引的基本信息以及索引编码与空间对象标识的映射关系,实现索引信息的分布式存储。
2.根据权利要求1所述的面向Cassandra的分布式可扩展四叉树索引方法,其特征在于,上述步骤3进行空间索引编码时进一步包括子步骤:
步骤3.1:索引域以基点为中心被分割成四个象限,以从东南方向开始按逆时针方向四个象限编码为A、B、C、D;
步骤3.2:在象限内对索引域进行编码,索引域使用象限编码和索引域在该象限内的编码共同表示;
步骤3.3:为索引域的四叉树结点进行编码;
步骤3.4:空间索引编码使用“索引域编码+四叉树结点编码”的方式构造,二者之间使用符号“:”分隔。
3.根据权利要求2所述的面向Cassandra的分布式可扩展四叉树索引方法,其特征在于,上述步骤3.2中索引域在象限内使用Morton码进行编码;设基点坐标为(originx,originy),索引域中心点坐标为(x,y),索引域最小网格间距为gridsize,Morton码计算函数为MortonEncoding,则网格区域编码gridCode的计算公式为:
4.根据权利要求2所述的面向Cassandra的分布式可扩展四叉树索引方法,其特征在于,所述步骤3.3中四叉树结点使用线性可排序四叉树编码方式编码,设四叉树的深度为n,最底层结点的行列为(row,col),Hilbert编码函数为HilbertEncoding,则结点编码计算公式为:
nodeCode=HilbertEncoding(col,row,n-1)×2+1。
5.根据权利要求2所述的面向Cassandra的分布式可扩展四叉树索引方法,其特征在于,所述步骤3.3中四叉树结点使用线性可排序四叉树编码方式编码,四叉树索引除底层结点外其他结点的编码nodeCode计算公式为:
其中,childcode1、childcode2、childcode3、childcode4为最底层结点外的其他结点的四个子结点的编码。
6.根据权利要求1所述的面向Cassandra的分布式可扩展四叉树索引方法,其特征在于,所述步骤4存储索引信息时,索引信息存储在索引列族中,索引列族采用多列模式存储索引信息,包括子步骤:
步骤4.1:空间索引编码为索引列族的行键值,用于确定所述行键值所表示的行存储在Cassandra集群哪个节点之上;
步骤4.2:与空间索引编码相对应的空间对象存储为列,每列包含空间对象的标识和MBR;
步骤4.3:空间对象标识为列名,空间对象的MBR为列值;
步骤4.4:同一空间索引编码对应多个空间对象时,以多列模式存储,即以空间索引编码为行键值按照步骤4.2、步骤4.3所述规则动态创建列,并将列按列名顺序存储,形成空间索引编码为行键值的行;
步骤4.5:空间索引编码与空间对象不存在对应关系时,不存储该行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中师范大学,未经华中师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510989769.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种理财产品全域推荐系统
- 下一篇:推送在网页中显示批注的系统及方法