[发明专利]一种基于二维地理位置的海量数据空间范围查询方法在审
申请号: | 201810201147.5 | 申请日: | 2018-03-12 |
公开(公告)号: | CN108446357A | 公开(公告)日: | 2018-08-24 |
发明(设计)人: | 杨国青;李红;金榆林;王成城;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 王琛 |
地址: | 310013 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 范围查询 地理位置 海量数据 二维 二维空间索引 关系型数据库 查询效率 二级索引 方法使用 目标区域 索引搜索 大数据 第一级 构建 索引 数据库 搜索 维护 | ||
本发明公开了一种基于二维地理位置的海量数据空间范围查询方法,该空间范围查询方法使用二级索引实现,第一级索引搜索定位到目标区域所在的数据库分片,第二级索引在分片内进行搜索。本发明能够在使用关系型数据库的情况下,有效应对大数据环境下基于地理位置的空间范围查询,查询效率较高,且无须构建复杂难以维护的二维空间索引。
技术领域
本发明属于空间数据存储及搜索技术领域,具体涉及一种基于二维地理位置的海量数据空间范围查询方法。
背景技术
在目前的大数据时代,一个系统的数据量达到TB级别甚至PB级别,面对海量数据,如何对其进行高效地存储、管理和搜索便成为一个技术难题。在传统关系型数据库上存储海量数据时,通常采用分片(Shard)逻辑实现,将同一数据库中的数据水平分片拆分到不同数据库中,以有效发挥多台服务器的性能。而数据库水平分片一方面能够有效发挥出多台服务器的性能,另一方面也给原本简单的查找逻辑带来了困难和效率问题,因此一个好的分片逻辑和相对应的查找逻辑至关重要。
移动互联网的兴起促使越来越多的应用构建在移动平台之上,而移动端应用相较于传统PC端应用而言可以更好地和用户地理位置信息相结合,这也使得基于地理位置的搜索场景十分常见。一般而言地理位置信息采用经纬度坐标来表示,而二维数据查询没有办法使用传统的一维索引结构,因而较为经济高效的做法是将二维地理位置坐标使用GeoHash编码完成一维化处理。
GeoHash是由Gustavo Niemeyer提出的地理位置编码方法,其主要思想是将地球上的空间以经度和纬度两个维度进行二分,二分次数越多最终结果的精度就越高,最后将经度上的二分编码值和纬度上的二分编码值进行交叉合并,得到最后的GeoHash编码值。GeoHash编码实际上表示的是一个矩形区域,其编码长度越长,代表的矩形区域越小,并且对于两个GeoHash编码a和b,若a是b的前缀,则a代表的矩形区域完全包含b代表的矩形区域。
当前已有的基于GeoHash的地理位置查询,一般只是一个GeoHash方块的搜索,难以应对不规则的空间区域,同时也难以处理数据量较大时的场景。
发明内容
鉴于上述,本发明提供了一种基于二维地理位置的海量数据空间范围查询方法,该方法通过两级索引查找,既有效应对了大数据环境下的分片场景,又能够应对不规则空间区域的快速查找场景。
一种基于二维地理位置的海量数据空间范围查询方法,包括如下步骤:
(1)通过第一级索引搜索,首先定位到目标空间区域有可能落在的所有数据库分片,组成待搜索分片集合S;
(2)在待搜索分片集合S内使用第二级索引搜索,将落入目标空间范围的数据加入结果集R中;
(3)返回给出结果集R即搜索所得的目标数据。
进一步地,所述第一级索引采用GeoHash编码来构建,相应的分片逻辑也是根据GeoHash编码进行,以使得空间上相邻的数据尽可能存放在同一数据库分片上。
进一步地,所述第一级索引中的每一个节点都是一段GeoHash编码前缀,父节点的GeoHash编码必然是两个子节点GeoHash编码的前缀,即父节点代表的地理位置空间必然完全包含其子节点代表的地理位置空间。
进一步地,所述第二级索引采用类似线段树的思想进行组织,父节点所对应的空间范围完全包含其子节点对应的空间范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810201147.5/2.html,转载请声明来源钻瓜专利网。