基于MongoDB的遥感规格化数据云平台的设计与实现
2016-02-19马骏张飞龙
马骏+张飞龙
DOI:10.16644/j.cnki.cn33-1094/tp.2016.02.015
摘 要: 随着遥感影像规格化数据的数据量以PB级别不断增加,海量的遥感影像规格化数据就需要采用更加合适的云存储平台系统。基于传统关系型数据库的云平台系统在高并发读写、扩展性等方面无法满足当前大数据量的需求,因此研究了一种基于MongoDB的遥感规格化数据云平台系统,与现有的云平台系统相比,此平台在性能、稳定性、扩展性方面都有很大提升。
关键词: 遥感规格化数据; MongoDB; 海量; 云平台
中图分类号:TP399 文献标志码:A 文章编号:1006-8228(2016)02-49-04
Design and implementation of remote sensing normalized data cloud platform
Ma Jun1,2, Zhang Feilong1
(1. Department of Computer Science and Technology, Henan University, Kaifeng, Henan 475004, China;
2. Data and Knowledge Engineering Research Institute, Henan University)
Abstract: Along with the increase of the PB level of remote sensing normalized data, massive remote sensing normalized data needs to use a more suitable cloud storage platform system. Remote sensing normalized data cloud platform based on traditional relational database cannot meet the needs of the current large volume of data in high concurrent read write, scalability. Therefore, this paper studies the remote sensing normalized data cloud platform based on MongoDB, compared with the prior platform system this platform have greatly improved in performance, stability and scalability.
Key words: remote sensing normalized data; MongoDB; massive; cloud platform
0 引言
高分应用综合数据库系统是高分应用链条中的重要组成部分,是必需的基础支撑条件。高分应用综合数据库系统主要负责收集、保管、维护和提供高分卫星信息产品研发、生产、验证、服务所需的数据信息资源,是高分应用链条中不可或缺的数据支撑,也是高分应用示范系统建设和推广应用的重要基础。其中,规格化影像产品数据作为其主要的产品数据类型也是整个系统工作的重中之重。规格化影像产品,即对原始数据进行几何、辐射等预处理后形成干净准确的影像,在对其按照标准分辨率层级进行重采样,最后为保证定量化处理精度按标准格网裁切成1000*1000的规格化影像。现有系统的规格化数据云平台主要是采用了Sqlite数据库作为底层索引[1-2]。
Sqlite具有很好的兼容性、跨平台性和较小的规模等特点,但是在数量日益增大的今天,Sqlite的存储大小限制、稳定性和对并发读写等方面的不足也开始影响规格化数据云平台的整体性能[3-4]。为了提高规格化云平台的数据的整体性能,本文设计了基于非关系型数据库MongoDB的规格化云平台系统,并通过对比现有的云平台系统,证明本文方案的可行性。
MongoDB是10gen公司与2009年研发的一份开源的基于分布式文件存储的NOSQL数据库系统。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库[5]。MongoDB采用主/从和复制集两种复制冗余方式。MongoDB相较于传统的关系型数据库有着易于使用、易于扩展、丰富的功能和卓越的性能,在面对海量数据的挑战时更加有优势。
1 云平台的总体部署
遥感规格化云平台主要是实现对遥感瓦片数据的存储、检索和管理。数据采用虚拟分布式存储技术散列的存放在各个数据存储站点上,分布式存储技术是通过一系列管理调度策略将静态的虚拟磁盘空间单元映射到动态的物理存储站点上,从而建立一个逻辑上静态、物理上动态可扩展的分布式存储空间。 数据所对应的元数据信息(包括瓦片数据名、卫星、传感器、拍摄时间、层级、行号、列号、类型)则存放在分布式的云数据库上。现有系统的云数据库由Sqlite实现,Sqlite数据库服务独立分布于各个存储节点,通过每个存储节点上部署的站点服务操作数据库以此实现分布式的信息存储和检索。在进行数据存储的操作时,由数据存储服务将数据存放到虚拟分布式磁盘上,然后调用每个存储节点的站点服务进行元数据索引的建立,即站点服务将元数据信息索存放在各自节点所部署的Sqlite数据库中。在查询时,客户端发送查询请求,各个节点的站点服务查询各自节点所部署的Sqlite数据库中对应的元数据信息,然后将结果进行归约,返回给客户端。
基于MongoDB的云平台系统在进行数据存储操作时,由数据存储服务将数据存放到虚拟分布式磁盘上,然后调用MongoDB路由在MongoDB集群上建立元数据的索引,利用MongoDB的分片、副本集等特性实现元数据信息的分布式存储。在进行数据检索时,客户端直接向MongoDB路由发送数据查询请求,MongoDB路由调用MongoDB集群的并发检索,将查询到的元数据信息返回给客户端[6-7]。基于MongoDB的云平台系统的架构如图1所示。
2 MongoDB集群部署实现
在本次实验部署中,采用配置相同的三台机器作为测试机来构建MongoDB集群,具体的服务配置分配和物理部署图如图2所示。
MongoDB集群中的每台MongoDB服务器开启了MongoDB路由mongos服务、MongoDB配置config server服务、数据分片shard server服务(包括主分片、副本分片和仲裁分片)。其中ConfigSvr:配置服务器相当于集群的大脑,保存着集群和分片的元数据,即各分片包含哪些数据的信息。Mongos:是用户和集群间的交互点,其职责是隐藏分片内部的复杂性并向用户提供一个简洁的单服务器接口,允许把集群当作一台服务器。shard:即MongoDB主分片,用于存储实际的数据块。使得每台服务器比较均衡的承担一定的路由操作和I/O操作,数据能够有效的散列的分布在各个MongoDB服务器上,提高服务器的资源利用率和实现集群的负载均衡,大大提高集群的整体性能表现。replica set:即MongoDB副本集,副本节点在主节点挂掉后通过心跳机制检测到后,就会在集群内发起主节点的选举机制,自动选举一位新的主服务器,提高系统的可靠性和自动故障的回复。arbiter:即MongoDB仲裁,仲裁节点不存储数据,只是负责故障转移的群体投票,这样就少了数据复制的压力[8-9]。
3 实验结果分析
3.1 开发的软硬件环境
本次实验MongoDB集群有三台软硬件配置相同的服务器级别的机器构成,服务器的配置为:
操作系统:Windows7旗舰版(64位)
数据库:MongoDB 3.0.1,MySql 5.5
Cpu:Intel Core i7-2600
核数:4核8线程
内存:16g
3.2 测试方案设计以及结果
⑴ 规格化数据的批量存储的性能对比测试。
从图3可以看出,规格化数据的存储MongoDB集群的效率整体上要高于基于传统关系型数据库Sqlite,大概是其2.8倍。在不断增加实验样本插入大数据量瓦片数据的情况下,MongoDB集群与Sqlite的插入效率比依然维持在2.8左右。由此可见,基于MongoDB的规格化云平台系I同相较于现有有着明显的优势,即使在大数据量的情况下,依然能保证相当的插入效率。
⑵ 在一定数据量基础上查询1000条特定条件的规格化数据性能对比测试,查询的条件为规格化数据的层级、行列号信息。
从图4可以看出,在数据量比较小的情况下,二者的性能差异不大,随着数据量的增大,现有系统的查询所需要的时间开始急剧上升,而基于MongoDB的规格化云平台查询所需时间上升的比较平缓。由此,在数据量不断增大的情况下,基于MongoDB的 规格化云平台系统具有查询性能上的优势。
3.3 遥感规格化数据云平台对比分析
通过图3、图4的对比分析,在数据量不断增加的情况下,基于MongoDB的规格化云平台系统在数据存储和检索方面依然具有良好的性能表现,在性能上相比于现有的云平台系统有着较大的优势,能够满足数据量日益增长所带来的压力。
降低了客户端、存储服务与站点服务之间的耦合,基于MongoDB的云平台系统不再是数据和数据库信息一体化的结构,二者在逻辑上实现了分离,存储服务和客户端就不再依赖于原有的站点服务提供的并发存储和检索,而依赖于MongoDB集群提供的服务。
降低了站点服务的压力:由于在本系统中站点服务同时承担着大量的数据订单处理和同时支持其他数据格式的服务,而其中规格化数据的服务将依赖于MongoDB集群,不再依赖于站点服务。
更好的扩展性和灵活性:现有的云平台系统在扩展时需要同时进行存储节点和Sqlite数据库服务两方面的扩展,而基于MongoDB的云平台系统则是在存储空间不足时只需要扩展存储空间、在数据库性能不足时适当的调整MongoDB集群。
更好的容错性:利用MongoDB的副本集可以实现双机热备的功能,提高了系统的容错性[10]。
4 结束语
针对规格化数据的海量性、离散性和不断增长的特点,本文给出了基于MongoDB的规格化云平台系统,通过构建MongoDB集群,代替现有的站点服务和Sqlite数据库服务。实验结果表明:相较于传统数据库,MongoDB集群在并发读写、快速检索、负载均衡、容错性和扩展性都有了很大的提升,在构建分布式系统上有着很大的优势。适应于现在海量的不断增长的遥感规格化影像数据。但是目前MongoDB对内存的要求比较高,不如传统关系型数据库成熟,其分片机制、内存管理机制和缓存机制还有待进一步的深入研究。
参考文献(References):
[1] 王栋,郑逢斌,赖积保,余涛,李家国,郭珊.基于五层十五级遥
感数据结构的并行算法研究[J].微计算机信息,2012.1.
[2] 李朝奎,杨武,殷智慧,张强.MongoDB的遥感影像分布式存
储策略研究[J].测绘通报,2014.5.
[3] 段龙方.面向遥感数据的云数据库技术研究与应用[D].河南
大学,2014.
[4] 谢志伟.基于SQLite的遥感影像数据库设计[D]. 辽宁工程技
术大学,2012.
[5] 潘凡.从MySQL到MongoDB——视觉中国的NoSQL之路[J].
程序员,2010.6.
[6] 王光磊.MongoDB数据库的应用研究和方案优化[J].中国科
技信息,2011.20.
[7] 王振辉,王振铎.MongoDB中数据分页优化技术[J].计算机系
统应用,2015.6.
[8] 邓志飞,应良佳,王军威.基于IODA算法MongoDB负载均衡
的改进[J].现代电信科技,2013.7.
[9] 梁海.MongoDB数据库中Sharding技术应用研究[J].计算机
技术与发展,2014.7:60-62,67
[10] 邱儒琼,郑丽娜,李兵.基于MongoDB的电子地图瓦片数据
存储和服务研究[J].地理空间信息,2014.