基于NoSQL的海量空间数据云存储与服务方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于NoSQL 的海量空间数据云存储与服务方法

陈崇成,林剑峰,吴小竹,巫建伟,连惠群

(福州大学福建省空间信息工程研究中心空间数据挖掘与信息共享教育部重点实验室,福州350002)

摘要:近年来,实现海量空间数据高效地存储管理和在线服务,成为地学信息科学领域日益关注的热点问题。本文根据矢量和栅格空间数据的不同特点,提出并实现了矢量栅格数据一体化的海量空间数据分布式云存储管理与访问服务方案,在海量矢量数据存储和处理中创新性引入分布式图数据库Neo4J 和并行图计算框架。在三层式空间数据云存储架构基础上,给出NoSQL 数据库技术的栅格和矢量数据云存储的实现策略与方法,并开展了通用数据访问接口的设计。采用分布式文件系统HDFS 存储栅格数据,并使用列族数据库HBase 对其建立分布式空间索引,及采用满足ACID 约束的分布式图数据库Neo4J 来存储矢量数据,并使用R 树建立空间索引。在自主研发的地理知识云平台GeoKSCloud 框架下,初步实现了核心组件-空间数据聚合中心(GeoDAC )软件,可为各类用户提供空间数据分布式存储管理和访问服务。通过搭建试验床,开展GeoDAC 与开源GIS 软件PostGIS 在矢量数据读写访问性能方面的对比测试。结果表明,虽然GeoDAC 没有获得写入性能的加速作用,但其具有PostGIS 无法比拟的强大读取性能。GeoDAC 将海量数据经过空间分割后分布在集群上,能够并行处理查询请求,极大地提高空间查询速度,具有广阔的应用前景。

关键词:空间数据;云存储;NoSQL;地理知识云;数据聚合中心DOI :10.3724/SP.J.1047.2013.00166

1引言

近年来,广大用户通过Web 2.0网站上传空间数据(如GPS 导航定位点、兴趣标识点)、编辑在线地图等行为持续生产着海量的矢量型空间数据[1]。鉴此,实现高效的海量空间数据存储、管理和在线服务,成为地学信息科学领域日益关注的热点问题[2]。

传统的空间数据存储系统,通常是在关系型数据库基础上,根据空间数据模型特点进行扩展的[3],正面临横向扩展困难、计算性能不足等严峻挑战,难以提供高效的海量空间数据处理和服务能力。NoSQL 是一个云计算背景下蓬勃发展的分布式、非关系型数据库系统,支持半结构化、结构化数据的高并发读写,存储键值、列族、文档、图等多种数据类型。NoSQL 具有良好的可伸缩性和可扩展性,能够有效利用云计算所提供的海量数据存储管理、分布式并行计算能力[4]。NoSQL 遵循CAP 定理(即一

致性、可用性、网络分割),提供比ACID (即原子性、一致性、隔离性和持久性)更松散的BASE (即基本可用、软状态、最终一致性)并发事务模型,实现数据库在特定领域应用[5-6]。Brewer 重新阐述了CAP 定理,提出了CAP-延时连接(CAP-Latency Connec-tion )机制,并指出分布式数据库可通过显式处理网络分割与错误补偿(Mistake Compensation ),实现CAP 三个特性之间的完美均衡[7]。目前,Google 、Microsoft 等大型云服务商都结合NoSQL 技术[8],实现了海量栅格数据云存储并提供了自有的地图服务产品。BigTable 是Google 早期提出的一种高性能、高可用的分布式列族数据库管理系统[9],采用简单灵活、模式自由和结构疏松的数据模型,并通过结合分布式文件系统GFS 和并行计算框架MapRe-duce [10-11],实现了PB 级别栅格数据的云存储、管理。然而,BigTable 难以应用于数据模式复杂、事务一致性要求高的领域中[12-13]。在国内,林子雨等人

收稿日期:2012-11-19;修回日期:2012-12-31.

基金项目:国家科技支撑计划项目(2013BAH28F00);福建省科技计划项目(2010I0008,2010HZ0004-1);欧盟第七框架国际合

作项目(FP7-2009-People-IRSES,No.247608)。

作者简介:陈崇成(1968-),男,福建闽清县人,博士,教授,研究方向为地学可视化与虚拟地理环境、空间数据挖掘与地理知识服

务。E-mail :chencc@

地球信息科学学报

JOURNAL OF GEO-INFORMATION SCIENCE

V ol.15,No.2Apr.,2013

第15卷第2期2013年4月

2期陈崇成等:基于NoSQL的海量空间数据云存储与服务方法

综述了云数据库领域的数据模型、体系架构、事务一致性、编程模型等关键问题研究,认为云数据库需要通过有效的机制设计才能满足实现事务处理,并保证系统性能的要求等[14]。王意洁等人从数据中心的网络结构、分布式存储容错技术和分布存储节能技术等方面进行云存储的关键技术的阐述与研究,指出云存储依然面临着提高数据容错性,以及降低能耗等挑战[15]。张桂刚等人提出了一种海量信息处理的云模型,阐述了包括分布式文件系统THDFS、云数据库THCloudDB、互联网计算模型THMapReduce等在内云存储关键技术,并实现一个校园地理信息系统[16]。周可等人与郭东等人分别从不同角度研究了云环境下的数据备份技术、应用特点及研究要点,总结了云存储具有成本低、见效快、易于管理等优点[17-18]。总之,我国在云存储的新方法研究基本上还局限在综述方面,在海量地理空间数据分布式云存储与服务的新方法方面工作很少,特别是矢量数据云存储模式与图数据处理方面几乎空白。

目前,图数据库主要使用属性图(Property Graph)作为数据模型。属性图是顶点和边都具有属性(以键值对方式存储)的多图(Multi Graph),且属性图的所有边都是有向和非对称的[19]。Neo4J是基于属性图模型的高性能非关系型数据库系统,能处理具有高达数十亿规模顶点和边的图数据,同时兼容完全ACID事务属性[20]。但是,目前并不支持图的分割操作,也不支持网络分割情况下的图处理[21]。为了充分利用云环境下计算机集群的性能,大规模图数据处理需要通过有效的图分割算法对连通、强耦合的图数据进行解耦,从而实现子图的分布式并行处理。图分割算法通常遵循在提高子图内敛性的同时保证各子图数据规模均衡的原则。经典的图分割算法包括Kernighan-Lin算法[22]和Fi-duccia-Mattheyses算法[23]。Lin et al.使用MapRe-duce来迭代分割图数据,通过聚合本地的图数据、减少节点间的通讯开销,以及调整图的分布等方法,有效提高网页排名(PageRank)算法的运行速度[24]。但是,伴随子图个数不确定和大小不均衡的问题。Gehweiler et al.提出了整体同步并行计算(BSP)模型的DiDiC算法,实现全局、分布式的图分割,优化了图相关分割性能[25-26]。Google公司则以BSP模型,实现了高效、容错良好的分布式大规模图数据处理系统Pregel。该系统通过图顶点状态备份和划分超步的消息记录,减少了图分割任务的耦合度,降低了灾难恢复代价,但由此带来磁盘开销增大的问题[27]。

Amazon公司的简单存储服务(Simple Storage Service,S3)是一个高可用、高可靠的分布式文件存储系统,能够向用户提供具有简单的、无限空间的云存储服务[28]。S3可以广泛应用于多种领域以满足许多不同的存储需求,如文件共享、文件在线备份、网站托管,乃至可用于分布式Web应用的数据存储组件[29-30]。Schäffer et al.采用S3作为空间数据基础设施的数据存储组件,部署了一个网络处理服务(WPS)实例,并通过试验得出在云环境下WPS 具有更好的可用性[31]。然而,S3作为简单的文件存储服务缺乏对海量数据的管理支持,较难满足云数据库系统需面临的频繁读写、数据快速检索等具体要求[32]。目前,空间数据云存储的研究大多集中在理论综述及栅格数据存储和管理等方面[33],针对矢量数据云存储领域研究的文献较少[34]。

针对上述存在问题,在自主研发的地理知识云服务平台(GeoKSCloud)框架下,本文提出兼容矢量和栅格的海量空间数据存储管理与访问服务方案,旨在实现GeoKSCloud的核心组件-数据聚合中心(GeoDAC),为各类用户提供空间数据分布式存储、管理和在线访问服务,为海量空间数据的高效云存储与服务提供一个新方法。

2云环境的空间数据存储架构

根据空间数据类型及其特点,以及用户对空间数据访问的高可靠性、高可用性的具体需求,本文采用云计算与NoSQL分布式数据库技术相结合的方法,开展云环境下栅格矢量一体化空间数据组织模型、访问机制、管理策略的设计,形成一个新的空间数据云存储架构。

从软件层次上划分,该框架可以分为以下3层,如图1所示:

(1)虚拟资源层:将计算机集群的各种硬件资源(计算、网络、存储)虚拟化成为一个动态可扩展的资源池,以弹性、便捷的方式向上层应用提供虚拟化的硬件资源,保障系统的可用性和可靠性。

(2)数据存储层:根据空间数据类型不同,采用两种不同的数据存储方案。将栅格数据存储在分布式文件系统HDFS中,并使用列族数据库HBase

167

相关文档
最新文档