论文部分内容阅读
近年来,随着社会经济的快速发展,智能手环、滴滴出行、外卖点餐等众多地理信息系统相关应用大量出现,导致地理空间数据大规模产生。人们在日常生活中越来越依赖于空间数据,空间大数据时代已经到来。传统关系型数据库由于单机存储容量有限,无法处理海量数据。因此,近年来出现了以Hadoop、HBase、Phoenix等为代表的分布式平台。Phoenix平台基于HBase,具有易理解的二维表模型、强大的SQL语言、高效的二级索引、分布式水平扩展等优良特性,但不支持空间数据的组织和管理。针对上述问题,本文提出了一种新型的空间数据管理方案——SpatialPhoenix。该方案选取Phoenix作为基础开发平台并对其进行空间扩展,增加空间数据预处理、存储、索引、查询等空间操作,结合GeoTools开源组件,设计并实现标准的空间数据访问接口,使应用层可以方便地对Phoenix平台中的空间数据进行读写和查询。本文主要工作如下:(1)空间数据存储模型的研究与设计。基于Phoenix分布式平台,研究并设计了空间数据存储模型、空间数据预处理模块和空间数据导入模块,以完成空间数据存储操作。(2)空间索引算法的研究与设计。基于空间数据存储模型,选取Geohash编码作为空间索引算法,并结合Phoenix二级全局覆盖索引,为后续空间查询算法提供空间索引基础。(3)空间查询算法的研究与设计。基于空间数据存储模型和空间索引算法,研究并设计了两种空间查询算法,分别是范围查询算法和kNN查询算法,二者都采用“三步走”策略,即分为预处理、过滤、精炼三个阶段,且将过滤和精炼阶段都放到服务器端执行,从而可以大大提高空间查询效率。(4)空间数据访问接口的设计与实现。基于Phoenix分布式平台,设计并实现了与GeoTools对接的空间数据访问接口,使得应用层可通过GeoTools管理和分析Phoenix平台中的空间数据。为了评估SpatialPhoenix方案的有效性,本文搭建了Phoenix分布式平台,选取PostGIS作为实验对比平台,采用空间点数据集,对空间数据导入方式和空间查询算法进行了多项测试。实验结果表明,SpatialPhoenix方案具有更高效且更加稳定的数据导入方式。当空间数据集和查询结果达到一定规模时,SpatialPhoenix方案具有更加高效的空间查询方式。