首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

地图兴趣点分布式空间分析服务

摘 要

针对互联网地图上海量兴趣点的应用分析需要提高效率的问题,该文利用MongoDB设计并搭建了一个分布式集群,对这些互联网兴趣点数据进行了储存;然后通过MapReduce机制改进并实现了适用于海量兴趣点数据的空间同位模式挖掘的Apriori算法和几个常用的空间分布特征值计算方法;最后依据开放地理信息系统协会的Web处理服务规范,设计并实现了一个互联网兴趣点分布式分析服务实验系统。该文所提出的改进后的算法在数据吞吐量和计算效率上有优越性,且计算效率比传统空间分析工具和传统Apriori算法有所提高。

引用格式

郭庆胜,王勇,蓝振家,等.地图兴趣点分布式空间分析服务[J].测绘科学,2018,43(1):89-92,100.

正文

随着大数据时代的来临,大规模的分布式集群架构、地理信息深加工和地球空间信息服务大众化已成为地理信息领域的研究热点[1-2]。传统的关系型空间数据库性能瓶颈日益凸显,主要表现在水平扩展能力差,并发访问速度低等缺点。文献[3]在1998年首次提出了NoSQL的概念,随后,很多公司推出了自己的NoSQL数据库产品。在这些NoSQL数据库中,以MongoDB数据库对于点要素的支持性能最好。近年来,国内外的众多学者也开始对MongoDB的空间应用进行了研究[4-5]。以开放地理信息联盟OGC所制定的WPS网络处理服务规范也被越来越多地应用到了地理信息相关的行业中[6-10]。

互联网兴趣点(points of interest,POI)数据的应用已经受到越来越多的学者关注,其中包括POI分类标准的建立,POI的空间特征分析等[11-12]。为了满足海量互联网POI数据的空间分析的需要,本文试图利用MongoDB数据库,结合OGC的WPS规范,实现一个针对互联网POI数据的分布式空间分析服务系统,并充分利用分布式计算和并行计算技术改进一些基础空间分析方法,提高计算效率。

在MongoDB中,数据均以文档的形式存储。一个文档就是一个JSON格式的数据结构。文档即对象,它是任意的,甚至有复杂的嵌套层次。POI数据作为最简单的空间数据,在MongoDB中以GeoJSON的格式进行存储[13]。GeoJSON是JSON格式的扩展,作为地理空间信息数据交换格式被广泛地应用于GIS中。一般来说,POI数据包含有4个方面的信息,即POI名称、坐标位置(经纬度)、详细描述和类别。其中,坐标位置信息是必须要有的。GeoJSON格式可以包含这些信息。

分片(sharding)是MongDB能够进行横向扩展的重要体现。对于一个集合来说,如果使用了分片技术,那么其数据就会以数据块(chunk)的形式由MongoDB内置的均衡器(balancer)分配到各个节点中。所有数据存储在主分片的主节点上,MongoDB还需要依据片键(shard key)对庞大的数据集进行分片操作。片键的选择一方面影响读写负载的平衡,另一方面影响数据块的大小。因此,这里使用POI的“ID”属性的哈希值作为片键。以哈希值作为片键可使数据块在各个分片节上点较均匀分布,易于读写负载的均衡,并且能够保证每个文档都有不同的片键,因此数据块能够很精细。通过命令开启对整个数据集合的分片操作后,MongoDB中的均衡器会自动地将数据块移动到各个分片上,最后达到各个分片的平衡。在完成数据分片后,还需要对入库的POI数据建立空间索引。MongoDB原生支持GeoHash结构的球面空间索引2dsphere,因此,可在数据入库后进入路由服务器,通过ensureIndex命令建立。

MongoDB内部提供了一个MapReduce机制。不同于Hadoop,MongoDB的MapReduce仅能用于实现数据的统计,类似于传统关系型数据库中的Group By操作。集群中的各个节点先通过Map函数将拥有同一ID号的数据进行分组映射,将分组后的键值对分配给集群中的各个节点;再通过Reduce函数进行累加聚合;最后将结果合并生成新的键值对。MapReduce编程模型充分利用了集群分布式的特性,使得集群在进行大规模数据计算时能够有很高的效率。

本文以B/S三层架构设计了一个互联网POI数据在线分析的实验系统,算法计算结束后将结果以符合WPS规范的XML编码的形式返回给客户端。考虑到实验室里计算机数量的限制,本实验采用5台数据服务器、1台分析服务器和1台客户机。MongDB集群使用了5台内存为4 G双核的64位PC机;WPS服务器使用了1台内存为2 G的双核的32位PC机;客户机与之相同。客户端的开发使用了OpenLayers 3.0开发包,其主要功能是显示底图数据和分析结果,以及生成分析参数的面板。WPS服务器采用的是第三方开源类库WPS.NET。WPS.NET是基于.NET平台,按照OGC WPS 1.0.0规范开发的Web Service类库,可以部署到IIS上;MongoDB数据库采用的版本是2.6.3版,由于需要在算法中操作数据库,因此软件方面还用到了MongoDB提供的官方C#驱动。

互联网POI数据与其他传统的大数据一样,因其体量巨大,越来越需要扩展能力强的数据储存系统和计算效率高的处理方式。以MongoDB为代表的NoSQL数据库因其水平扩展能力强、数据吞吐量大、并发访问速度快等特点而备受人们青睐。本文以空间统计中的4种方法以及同位模式挖掘中的Apriori算法为例,研究了基于MongoDB的POI数据存储、POI数据分布式分析计算以及基于OGC的WPS规范的POI分析服务。结合这3种技术,利用B/S架构设计并实现了互联网POI数据的分布式分析服务系统。通过和ArcToolBox工具以及传统Apriori算法进行对比实验发现,本文所设计开发的POI数据分布式分析服务实验软件取得了良好效果。

2018年(第43卷)第1期

往期热点文章

感谢关注、点赞、留言、转发

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180125G07RL400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券