栅格GIS的分布式存储方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学研究生课程论文封面
课程名称遗传算法
研究生姓名
研究生学号
研究生专业
基于栅格GIS系统的分布式存储方案
【摘要】本文第一部分介绍了云GIS的概念与优缺点,第二部分介绍了分布式的NoSQL数据库HBase,第三部分介绍了如何将地理栅格数据如何存储到HBase中。
云计算作为一种新型的计算方式已经发展多年了,已经与各个行业相结合。GIS作为一种传统的行业应用,其最明显的特点是对超大规模数据集的存储,而云计算的数据存储能力刚好迎合了GIS的需要,因此将云计算与GIS结合起来是理所当然的。
当数据量变的巨大的时候,传统的关系型数据库性能会急剧下降。并且ER 数据库也不符合云计算的特点,而最近快速发展的NOSQL数据库则成为的分布式存储数据的一个选择。本文选取了NOSQL数据库中的一种文档型数据库HBase 来作为存储载体,并针对HBase的限制,采取了切分栅格数据的方法,以达到最好的性能。
一、基于云的GIS
互联网的发展给传统的GIS带来了很多可能和机会。一些GIS公司已经发布了像ESRI的ArcGIS服务器、谷歌地球和必应地图等这种面向互联网的各种不同层次的GIS系统。现今出现的云计算将会给GIS界带来更多令人激动的机会。
1.1 云GIS定义
在定义云GIS之前,十分值得我们来回顾一下我们正在使用的GIS系统的通性。根据如何将GIS系统的服务部署和如何分发到用户,我们可以把GIS系统分为如下三种:桌面GIS、C/S GIS和公共互联网GIS。
1.1.1GIS类型
桌面GIS:计算和存储单元存储在终端用户的电脑上。ESRI公司的ArcGIS 桌面9.3,Clark 实验室的IDRISI 和MapInfo可以被分为这一类。这种类型的GIS 并不一定需要网络。
C/S GIS:大量的存储空间未于服务器,能够根据操作的类型决定是在服务器上或(和)客户机上执行计算操作。这种类型的GIS至少需要内部网的支持。来自于经过认证的指定组的用户可以使用指定服务器上的资源。用户使用客户机来显示和执行查询以及其他类型的编辑。当这些操作完成,用户提交这些变化会服务器。一个典型的例子是用ArcGIS桌面中的ArcMS用ArcGIS浏览器来浏览ArcGIS 服务器。尽管这种类型的GIS系统有些时候能通过互联网传送一些数据,但基于它的硬件和软件组成,并不能用来被大量的公共用户来操作。
公共互联网GIS:计算和存储两者都位于服务器端。这种类型的GIS一般只能提供数据可视化和像查询这样有限的操作。这种Lexington的GIS系统通常只关注大量的公共用户。谷歌地图、谷歌地球以及毕竟地图就是这种能够提供一些GIS功能但缺乏必要的分析之间的公共会联网的系统。
分布式GIS:不管是实现了那种分布式计算模型的GIS系统都叫分布式GIS 系统。这些计算模型包括网格计算、点对点计算、云计算和高性能计算。但是,一个真正的分布式GIS系统并没有出现。
1.1.2 云GIS定义
在理解不同的云计算系统之后,归纳出如下一个暂定的云计算GIS定义:“一个GIS系统建立在云计算基础设施之上,使用云基础设置动态地调整他的计算和(或)存储能力,提供并行化的服务。”
上述关于服务的定义不但包括数据显示和查询功能,也包跨数据编辑和空间分析功能。
1.1.3云GIS和其他GIS最大的不同点
尽管从定义上就能很明显地看出不同种类GIS的不同点,但还是需要指出一些他们定义中的区别,基于云的GIS是分布式GIS的一个子集。
基于云的GIS和其他一些分布式的类似于基于网格的GIS和基于高性能的GIS的最大区别在于他们建立的硬件和协议以及用户群之上。
高性能GIS使用昂贵的硬件但云计算使用廉价的商业电脑。网格使用更严格的访问控制和会联网协议但云计算使用相对宽松的访问控制和公共协议。同时,不管是基于高性能的GIS还是基于网格的GIS都不是面向大规模的公共用户而设计的,而云计算是。
公共互联网的GIS和基于云的GIS的不同点在于他们的功能集以及他们所使用的硬件设施。与Web服务器相比较,基于云的GIS使用的云计算基础设施能够提供更大的数据吞吐力。通常来说,因为基础设施的不同,基于云的GIS能够提供更大的数据和更密集计算服务。实际上,像谷歌地图和谷歌地球这些公共的互联网地图服务已经是基于云的。
1.1.4 当前基于云的GIS概览
随着云计算的发展,一些基于云或声称基于云的GIS系统已经发布了。这些系统包括:谷歌地图引擎(Google Earth Engine)、基于云的ArcGIS 服务器和。但是,按照3.1.2的定义这些GIS系统没有一个可以真正的叫做基于云的GIS系统。目前,谷歌地球引擎能够提供存储大量分布式GIS数据的集合,它也能够提供一定程度上的卫星影像数据操作,但并没有具体的证据表明这就是执行真正空间GIS算法的能力。
ESRI提供了一些基于云的GIS解决方案:ArcGIS服务应用在亚马逊EC2,、ArcLogistics和在线商业分析(BAO)上。亚马逊EC2 和 建立在相似的架构之上(见图3),ArcGIS服务器运行在亚马逊EC2云的虚拟机上。安装在亚马逊EC2上的ArcGIS服务软件与安装在单个微型计算机上的ArcGIS 服务软件一样。它在通过预装安装的AecGIS服务上通过创建更多的虚拟机来达到扩展性。这种架构能够通过在同一时间段部署多台独立服务器的方法在一定程度上能够提供较好的扩展性。但是,这些服务器不能提供与扩展性一样好的性能。亚马逊EC2的所有ArcGIS服务器全部都是独立运行,这意味着它在并行任务自动化或转移任务加载的动态化上存在一定的管理系统短板。因此,这种架构可以提供完美的访问性,但不能提供完美的性能。
ArcLogistics 和在线商业分析(BAO)是ESRI提供的软件即服务的一种类型。AecLogistics能够给用户提供经过基于一些因素优化了的日常和计划。BAO是一个能够提供基于位置的统计、消费者消费和其他一些商业数据的报告和地图的web服务。基于云的ArcLogistics运行在亚马逊EC2上,而BAO运行在ERSI数据中心。ArcLogistics和BAO会肯定会提供强大的GIS查询和分析功能,但是根据3.1.2的定义它们因为只提供了有限的几种GIS分析功能而不能被归类于我们强调的基于云的GIS系统。
也宣称是一个基于云的GIS系统。用户可以通过浏览器使用它们的服务来上传、编辑、转换、创建和分析GIS数据。他们也提供了一定的空间分析能力,比如热点和缓冲分析。但是,由于其鉴于他们没有公开说明他们的系统作为一个基于云的系统是如何运行的,因此也没有证据来支持他们有利用云计算分布式数据存储和并行计算优点的能力。