APP下载

NoSQL空间数据管理在省级水利数据共享服务平台中的应用

2016-01-26胡应龙

测绘通报 2015年12期
关键词:数据管理

胡应龙,陈 杰

(江西省防汛信息中心,江西 南昌 330009)

Application of NoSQL Spatial Data Management in Provincial Water

Conservancy Data Sharing Service Platform

HU Yinglong,CHEN Jie



NoSQL空间数据管理在省级水利数据共享服务平台中的应用

胡应龙,陈杰

(江西省防汛信息中心,江西 南昌 330009)

Application of NoSQL Spatial Data Management in Provincial Water

Conservancy Data Sharing Service Platform

HU Yinglong,CHEN Jie

摘要:近年来,大型空间信息系统用户交互数据、业务监测数据、遥感影像数据等不断增长。高效的海量空间数据存储管理、迅速准确的检索、简便可靠快速的扩展已成为地学信息科学和水利业务应用领域日益关注的热点问题。本文结合NoSQL和全文检索技术,在江西省水利数据共享平台建设实践中基于MongoDB和Lucene开源软件库设计实现了OGC Web地图服务瓦片数据的存储管理、海量空间矢量数据和元数据的全文检索。平台建设完成后大幅提升了数据库管理和检索的效率,达到了100万条记录模糊检索毫秒级响应的目标,较好地实现了海量水利数据的管理,具有良好联通性和互动性、地理数据丰富的空间分析能力,期望能以此为基础带动江西省水利信息的交流融合,促进江西省水利现代化建设。

关键词:NoSQL;数据管理;水利信息化;水利数据共享平台;MongoDB;Lucene

一、引言

近年来随着空间信息产业和技术的快速发展,空间信息数据源在不断丰富,如调查资料、遥感影像数据、历史和实时监测数据、用户交互数据等,数据规模也在持续增长,有的系统数据记录条数已超过1000万条[1]。如何实现多类型海量数据的存储、快速检索、分析、统计展示、在线服务、扩展和迁移,已成为大型空间信息系统亟待解决的难题和地学信息科学领域日益关注的热点问题[2]。

一般说来,海量数据管理要求空间信息系统具有高可扩展性、容错性、伸缩性,并且支持实时的数据读写及高性能的查询处理[3-4]。关系型数据库峰值性能、伸缩性、容错性等存在局限性,无法满足海量数据的高效柔性管理需求[5]。

与传统关系型数据库相比,NoSQL(not only SQL)是一类云计算背景下蓬勃发展的分布式、非关系型数据库系统[2],支持键值、列、簇、文档、图等半结构化、结构化数据的高并发读写,具有良好的伸缩性和扩展性及云计算所提供的海量数据存储管理、分布式并行计算能力。

1. 项目背景

江西省位于长江中下游南岸,境内水系发达、河流众多, 水利工作的开展显得尤为重要。地理信息数据是水利行业的重要基础信息,其应用领域涉及防汛抗旱、水资源保护和开发、水土保持、水利工程管理等各个方面[6-8]。近年来地理信息数据在江西省水利行业的应用得到了不断拓展和深化[6,9-12],在许多方面发挥着重要作用[13-17]。但是在当前实际应用中也遇到了如数据分散、质量不高、整合难度大,以及基础平台性能不高、重复开发、决策分析能力弱等瓶颈。为实现数据资源的综合管理和利用,提升数据资源的应用效益,避免重复建设,必然会产生数据资源整合的需求[12]。

基于上述问题,本文结合目前新提出的非关系型数据库技术,采用关系型和非关系型数据库协同应用,对江西省水利数据共享服务平台数据库进行了设计优化,旨在提高平台空间数据存储和查询能力并有效地降低存储消耗,建设一套集标准化、系列化基础地理信息数据、遥感影像数据服务,以及海量数据管理和支撑各级水利部门业务应用的功能服务框架为一体的数据共享与服务系统平台。

2. 总体设计

平台采用结构化、模块化、分层构架方式进行设计,分为基础设施层、数据存储层、平台服务层、接口层和业务应用层共5层,每层详细说明见表1,系统整体架构如图1所示。

图1 系统架构

基础设施层包括平台硬件设备,如数据库服务器、Web应用服务器、GIS应用服务器、负载均衡系统、存储服务系统。还包括路由器和交换机、PC终端及基础GIS软件等数据存储层主要有卫星遥感数据、基础地理数据、水利专题地图数据、元数据、天地图几类数据,数据资源是共享平台的核心内容数据访问层负责对数据的访问,即提供对空间数据和业务数据的访问能力。提供插件机制来满足对各种数据格式的支持采用SuperMapDesktop(.NET)平台,它可以提供扩展的可编程对象、基本GIS功能,支持界面定制,可编程、可扩展平台共享服务主要包括数据管理、数据交换、服务共享、运行维护4大方面的服务接口层接口层是指平台提供的OpenAPI,通过OpenAPI的方式,系统提供对外接口业务应用层业务应用层包括Web客户端、桌面客户端、移动客户端和其他业务系统。江西省水利地理信息共享服务平台门户为Web客户端,数据管理系统为桌面客户端。同时系统提供的接口可以支持其他业务应用系统

二、NoSQL的水利空间数据管理方案

1. 数据资源

平台数据源包括不同分辨率的卫星遥感影像数据(2.5 m、0.6 m)、江西基础地理数据(1∶5万、1∶25万、1∶1万)、“天地图·江西”数据、水利专题数据、元数据等,具体见表2。

表2 平台数据资源项

2. NoSQL非关系型数据库

NoSQL是分布式的、非关系型的数据库,分为键值数据库、文档数据库和图数据库3类[18-25],遵循CAP理论和BASE原则[26-28]。CAP理论认为一个分布式系统不能同时满足一致性(consistency)、可用性(availability)和分区容错性(partition tolerance)。BASE为basically available(基本可用,可容忍系统的短期不可用)、soft state(柔性状态,状态可有一段时间不同步)和eventually consistent(最终一致,最终数据一致,而不是严格的时时一致)的缩写。

目前,NoSQL数据库多是针对应用场景设计,遵循BASE原则,强调数据高并发的读写、海量数据的存储管理和快速访问、系统可扩展性[1]。它不仅支持自由的模式定义方式,灵活的分布式体系结构,且对硬件的需求较低。传统关系型数据库和NoSQL数据库优劣对比[27],应根据项目实际应用场景制定技术路线和方案,见表3。

3. 数据管理方案技术路线

本文根据平台数据资源、综合在空间数据管理方面非关系型和关系型数据库各自的特点和优势,制定空间数据管理协同应用策略方案,如图2所示。

NoSQL数据库采用MongoDB。MongoDB存储和查询同样数据量和数据范围的空间数据较关系型数据库的响应速度更为迅速[21,29-30]。MongoDB采用非结构化的Document,其字段长度和类型均不固定,可适应变化的元数据表。非关系型数据库还可提升元数据库的扩展能力。

表3 关系型数据库与非关系型数据库对比

图2 技术路线

然而传统关系型数据库对空间分析支持较好,因此矢量数据的空间数据部分仍采用传统关系型数据库存储管理。

(1) 遥感影像数据

在WebGIS中,为了减轻服务器端传输地图图形数据的压力,应建立影像的金字塔式的地图图形瓦片[31],并将地图瓦片存储在NoSQL中,建立服务器端缓存,客户端只需从缓存中下载所需要的图片。

① 影像金字塔技术

图片集合结合空间索引能有效降低浏览影像数据传输和渲染压力,提高影像浏览时的显示速度。浏览时会根据用户的显示比例尺匹配最佳的分辨率等级来显示影像,以实现与数据量、显示区域无关的海量数据的组织管理和流畅漫游。

② 地图缓存技术

江西省水利地理信息共享服务平台涉及的水利数据,数据量大(TB级)、水利设施要素种类繁多(40种以上),含有大量卫星遥感影像,需要配置大量水利专题地图(包含各种要素符号、线型、面填充),且在客户端要能流畅地浏览地图和输出地图。针对上述业务要求,为了加快出图效率,应采用地图缓存技术[32-34]。

③ 数据处理

首先对原始数据进行配准和坐标转换,采用CGCS 2000坐标参考以匹配“天地图·江西”等已有地图。然后采用SuperMap iServer 6R软件发布地图服务并生成地图缓存,缓存由256像素×256像素高宽的PNG地图瓦片构成。

MongoDB搭建的持久化缓存层,在系统重启之后,可以避免下层数据源过载。因此采用MongoDB存储预生成的海量地图瓦片,并在存储过程中分别为每张图片建立空间索引。

(2) 空间矢量数据和元数据

平台数据源格式、字段、特点不同,来源广泛,要快速准确地在海量数据中检索到所需目标必须采用全文检索技术。

① 全文检索技术

平台对所有矢量数据的属性数据、元数据基于Lucene库进行了全文检索并建立了常见关键词的索引。基于索引的检索查询功能也以Web Service接口的形式封装提供调用。

② 空间数据引擎

GIS空间数据库引擎提供并维护一套完整的数据模型,支持丰富的空间对象模型(点、线、面、文本等)和空间索引技术,具备存储和高效管理海量数据的能力,支持影像压缩等关键技术。本系统空间数据库引擎分数据库引擎、文件引擎和web引擎,分别对大型关系型数据库、外部文件及影像数据和网络上符合OGC标准的Web服务进行管理和操作。

③ 空间索引技术

索引技术直接影响到空间数据访问查询效率,是空间数据库引擎的关键技术。单一索引不能满足本平台海量影像和矢量空间数据混合存储时获取数据的需求,需分别创建以下索引:

1) 基础地理数据:更新频率比较低的用作底图的数据→R树索引。

2) 水利基础数据:标准比例尺分幅存储→图库索引。

3) 水利专题数据:标准比例尺分幅存储→图库索引。

④ 数据处理

数据经过抽取、分级和检查后,建立全文索引,创建流程如图3所示,流程详细说明见表4[39-40]。

图3 索引创建流程

步骤名处理结果分词将文档划分成单独的单词去除标点符号去除无意义助词等词元语言处理变为小写将单词缩减为词根形式,如“cars”到“car”等将单词转变为词根形式,如“drove”到“drive”等词索引根据得到的词创建字典对字典按字母顺序排序相同的词合并,建立文档倒排链表索引

三、结束语

本文分析了空间信息系统数据库趋势,比较了传统关系型数据库和新兴非关系型数据库的特点和优势,认为仅凭传统关系数据库已经无法满足高效的海量空间数据存储、管理和在线服务的要求。新兴的NoSQL非关系型数据库和全文检索等技术已成为大型空间信息管理系统数据库优化的重要手段。

本文在江西省水利数据共享服务平台建设实践中结合以上技术,以MongoDB存储管理OGC地图服务的瓦片数据和矢量属性数据和元数据,基于Lucene对矢量属性数据和元数据进行了全文检索并建立了常用关键词的索引,建成后平台用户查询浏览访问的响应速度得到了极大提高,支持属性和元数据的全文模糊检索,已达到百万条记录检索毫秒级响应的性能目标,较好地完成了平台建设目标,大幅提升了用户的满意度。

当然,NoSQL并非是要取代传统关系数据库,而是指not only SQL。传统关系数据库在某些情境下优势明显,如对栅格影像的压缩存储和检索优势突出,可大幅降低存储空间消耗。在实际应用中需综合考虑项目需求,分析制订合适的数据库设计方案,以达到满意的效果。

江西省水利共享服务平台实现了江西省水利空间信息的共建共享,具备良好的海量水利数据管理能力,是具有良好联通性和互动性的水利WebGIS,包含丰富、健壮、智能的地理数据空间分析模块。平台的建成和运行为全省各类水利业务应用系统提供了水利空间地理信息“一张图”基础服务,为后续在一个平台内整合所需水利业务应用链,实现水利信息“一张图”奠定了基础,期望能以此为基础带动江西省水利信息的交流融合,促进江西省水利现代化建设。

参考文献:

[1]胡泽林, 李淼, 张建. 基于Web的海量数据库系统研究与应用[J]. 计算机应用, 2006(S1):70-72.

[2]陈崇成, 林剑峰, 吴小竹, 等. 基于NoSQL的海量空间数据云存储与服务方法[J]. 地球信息科学学报, 2013(2):166-174.

[3]牛守明. 遥感海量数据管理系统研究与实现[D]. 济南:山东科技大学, 2005.

[4]张和生, 张毅, 胡东成. 海量数据管理框架与方法研究[J]. 计算机工程与应用, 2004(11):26-29.

[5]申德荣, 于戈, 王习特, 等. 支持大数据管理的NoSQL系统研究综述[J]. 软件学报, 2013(8):1786-1803.

[6]朱来友, 李世勤. 水利信息化势在必行——对江西水利信息化建设的认识[J]. 水利规划与设计, 2004(1):50-54.

[7]蔡阳. 现代信息技术与水利信息化[J]. 水利水电技术, 2009(8):133-138.

[8]孙祥鹏, 廖华春, 肖尧轩. 珠江水利信息化顶层设计初探[J]. 人民珠江, 2011(1):49-51.

[9]许瑛. “十一五”以来江西水利科技主要成就[J]. 江西水利科技, 2010(2):112-116.

[10]刘政民. 21世纪初江西水利发展战略思考[J]. 江西水利科技, 2001(3):129-137.

[11]孙晓. 江西水利:在开拓中前进在创新中发展[J]. 中国水利, 2008(24):112-114.

[12]谢敏, 谢元鉴. 江西省水利地理信息共享服务平台建设的思考[J]. 水利信息化, 2013(2):25-28.

[13]王勇. 大型水利地理信息系统的建设研究——以江苏省长江河道监测管理系统为例[D]. 南京:河海大学,2007.

[14]李泽建. 地理信息系统框架研究及其在水利行业中的应用[D]. 昆明:昆明理工大学, 2002.

[15]郭红燕, 丁树柏, 张友焱, 等. 分布式多源油气勘探数据共享二三维一体化平台研究[J]. 遥感信息, 2011(5):20-26.

[16]谢冬梅, 胡钢, 沈波, 等. 基于Internet的水利地理信息系统研究[J]. 微处理机, 2007(1):49-52.

[17]蔡勇, 胡晓荣, 殷丽琼, 等. 基于WebGIS的水利地理信息系统研究与实现[C]∥第十三届华东六省一市测绘学会学术交流会.南京:[s.n.],2011.

[18]李冯筱, 罗高松. NoSQL理论体系及应用[J]. 电信科学, 2012(12):23-30.

[19]范凯. NoSQL数据库综述[J]. 程序员, 2010(6):76-78.

[20]刘臣. 非关系数据库CouchDB的应用[J]. 电脑知识与技术, 2013(14):3220-3222.

[21]郭匡宇. 基于MongoDB的传感器数据分布式存储的研究与应用[D]. 南京:南京邮电大学, 2013.

[22]唐李洋, 倪志伟, 李应. 基于Cassandra的可扩展分布式反向索引的构建[J]. 计算机科学, 2011(6):187-190.

[23]卓海艺. 基于HBase的海量数据实时查询系统设计与实现[D]. 北京:北京邮电大学, 2013.

[24]张景云. 基于Redis的矢量数据组织研究[D]. 南京:南京师范大学, 2013.

[25]栾志高, 张吉. 内存数据库Tokyo Cabinet在电子商务网站中的应用[J]. 信息与电脑:理论版, 2011(3):92-93.

[26]陈明. 分布系统设计的CAP理论[J]. 计算机教育, 2013(15):109-112.

[27]张华强. 关系型数据库与NoSQL数据库[J]. 电脑知识与技术, 2011(20):4802-4804.

[28]马文杰. 基于CAP理论的海量数据存储研究与应用[D].苏州:苏州大学, 2013.

[29]刘一梦. 基于 MongoDB的云数据管理技术的研究与应用[D]. 北京:北京交通大学, 2012.

[30]田帅. 一种基于MongoDB和HDFS的大规模遥感数据存储系统的设计与实现[D]. 杭州:浙江大学, 2013.

[31]陈超, 王亮, 闫浩文, 等. 一种基于NoSQL的地图瓦片数据存储技术[J]. 测绘科学, 2013(1):142-143.

[32]魏祖宽, 胡娟, 金在弘. WEBGIS混合缓存的应用与研究[J]. 计算机系统应用, 2009(9):144-148.

[33]刘慧杰, 李英成, 靳海亮. 地图缓存技术显示模式的研究[J]. 地理信息世界, 2012(3):52-55.

[34]李林, 朱俊丰, 邓仕虎. 跨平台地图缓存一体化的研究与应用[J]. 地理空间信息, 2013(2):74-77.

[35]王燕. 二三维一体化的WebGIS系统的研究与实现[J]. 现代测绘, 2011(5):46-47.

[36]谢红, 贠建明. 二三维一体化的防汛指挥地理信息系统建设[J]. 地理空间信息, 2013(4):1-3.

[37]陈建忠, 饶长春. 国土资源二三维一体化GIS管理平台研究[J]. 国土资源信息化, 2014(1):45-48.

[38]马柳青. 三维GIS的发展与RealSpace技术[EB/OL]. [2015-03-06]. http:∥www.supermap.com.cn/magazine/page100.html.

[39]卢光华. 基于Lucene的全文检索研究与应用[D]. 长春:吉林大学, 2009.

[40]陈洪猛. 全文检索技术的研究与实现[D]. 北京:北京工业大学, 2008.

[41]孙海, 王乘, 吴栋, 等. 空间信息技术在水利信息管理中的应用[J]. 人民长江, 2007(10):122-125.

作者简介:胡应龙(1964—),男,高级工程师,主要研究方向为水利信息化应用。E-mail:251043046@qq.com

收稿日期:2015-04-20

中图分类号:P208

文献标识码:B

文章编号:0494-0911(2015)12-0088-05

猜你喜欢

数据管理
基于大数据管理的管道智慧检验系统的研发及应用
企业级BOM数据管理概要
定制化汽车制造的数据管理分析
大数据时代的海洋数据管理体系构建
海洋环境数据管理优化与实践
列控联锁数据管理分析平台的研究与探索
CTCS-2级报文数据管理需求分析和实现
土地权属调查的方法及数据管理
自然资源一体化数据管理与服务平台关键技术研究与应用
列控数据管理平台的开发