【技术实现步骤摘要】
本专利技术涉及使用Cassandra存储空间数据时建立空间索引和执行空间查询的方法,属于空间数据存储与管理
更特定言之,本专利技术涉及对矢量、栅格等类型空间数据的空间位置映射到一维的字符串型空间索引编码,使得Cassandra能够支持空间索引和空间查询。
技术介绍
随着对地观测技术、智能移动终端和传感器技术的飞速发展,空间数据获取手段日益丰富,空间数据的数据量呈几何倍数增长。对兼具数据密集型和计算密集型特点的空间数据来说,爆炸性增长空间数据的存储成为极具挑战的课题。使用非关系型数据库解决空间数据存储难题成为研究的热点。近年来,已有许多的研究和应用使用HBase、MongoDB和Cassandra等非关系型数据库构建可扩展、大规模的分布式空间数据存储方案。Cassandra是对等集群结构的分布式非关系型数据库,拥有非常灵活的数据模型和弹性集群扩展能力。海量空间数据的空间索引往往会由于存储空间开销或索引空间重叠等剧增而导致性能下降。索引空间范围等的变化往往会导致索引重建。然而,在空间数据快速增长的情况下,索引范围极有可能发生变化。对大量数据重新构建索引,将造成严重的资源浪费。现有的空间索引技术大多使用格网、四叉树或者R树及它们的变种构建。这些索引技术也大多在关系数据存储环境下构建集中式空间索引。不同于关系数据库,Cassandra依据行键值读写数据,对复杂查询支持较差,特别是未提供对空 ...
【技术保护点】
面向Cassandra的分布式可扩展四叉树索引机制,其特征在于,当需要为空间数据建立空间索引时,包括步骤:步骤1:设计空间索引存储结构,建立索引列族;步骤2:指定基点以及四叉树最小网格间距、深度,建立可扩展四叉树索引,具体包括以下子步骤:步骤2.1:指定可扩展四叉树索引的基点,以基点为中心将正在空间区域划分为一系列大小相等的网格区域,每个网格区域称为索引域;步骤2.2:指定四叉树的最小网格间距和深度,计算索引域的大小;步骤2.3:以索引域的大小为网格大小进行网格划分;步骤2.4:以步骤2.2所指定的最小网格间距和深度为索引域建立四叉树索引;步骤3:计算记录空间对象的索引结点及该结点的空间索引编码,其中,分三种情况记录空间对象:第一种情况,占据一定空间范围的空间对象跨越多个索引域,使用所跨越的各个索引域的四叉树根结点进行记录;第二种情况,占据一定空间范围的空间对象在单个索引域内,依据其最小外包矩形MBR确定使用哪一个结点进行记录;空间对象使用能容纳其最小外包矩形的四叉树最小结点进行记录;若空间对象覆盖多个结点,则使用结点的父结点记录,并且按照这一规则逐层递进直至根结点为止;第三种情况,对 ...
【技术特征摘要】
1.面向Cassandra的分布式可扩展四叉树索引机制,其特征在于,当需要
为空间数据建立空间索引时,包括步骤:
步骤1:设计空间索引存储结构,建立索引列族;
步骤2:指定基点以及四叉树最小网格间距、深度,建立可扩展四叉树索引,
具体包括以下子步骤:
步骤2.1:指定可扩展四叉树索引的基点,以基点为中心将正在空间区域划
分为一系列大小相等的网格区域,每个网格区域称为索引域;
步骤2.2:指定四叉树的最小网格间距和深度,计算索引域的大小;
步骤2.3:以索引域的大小为网格大小进行网格划分;
步骤2.4:以步骤2.2所指定的最小网格间距和深度为索引域建立四叉树索
引;
步骤3:计算记录空间对象的索引结点及该结点的空间索引编码,其中,分
三种情况记录空间对象:
第一种情况,占据一定空间范围的空间对象跨越多个索引域,使用所跨越
的各个索引域的四叉树根结点进行记录;
第二种情况,占据一定空间范围的空间对象在单个索引域内,依据其最小
外包矩形MBR确定使用哪一个结点进行记录;空间对象使用能容纳其最小外包
矩形的四叉树最小结点进行记录;若空间对象覆盖多个结点,则使用结点的父
结点记录,并且按照这一规则逐层递进直至根结点为止;
第三种情况,对于不占据空间范围的空间对象,直接记录在四叉树最底层
的结点上;
步骤4:在索引列族中记录索引的基本信息以及索引编码与空间对象标识的
\t映射关系,实现索引信息的分布式存储。
2.根据权利要求1所述的面向Cassandra的分布式可扩展四叉树索引机制,
其特征在于,上述步骤3进行空间索引编码时进一步包括子步骤:
步骤3.1:索引域以基点为中心被分割成四个象限,以从东南方向开始按逆
时针方向四个象限编码为A、B、C、D;
步骤3.2:在象限内对索引域进行编码,索引域使用象限编码和索引域在该
象限内的编码共同表示;
步骤3.3:为索引域的四叉树结点进行编码;
步骤3.4:空间索引编码使用“索引域编码+四叉树结点编码”的方式构造,
二者之间使用符号:分隔。
3.根据权利要求1所述的面向Cassandra的分布式可扩展四叉树索引机制,
其特征在于,上述步骤3.2中索引域在象限内使用Morton码进行编码;设基点
坐标为(originx,originy),索引域中心点坐标为(x,y),索引域最小网格间
距为gridsize,Morton码计算函数为MortonEncoding,则计算公式为:
4.根据权利要求1所述的面向Cassandra的分布式可扩展四叉树索引机制,
其特征在于,所述步骤步骤3.3中四叉树结点使用线性可排序四叉树编码方式
编码,设四叉树的深度为...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。