当前位置:文档之家› 海量空间数据的分布式存储管理及并行处理技术分析_田昶

海量空间数据的分布式存储管理及并行处理技术分析_田昶

210 •电子技术与软件工程 Electronic Technology & Software Engineering
数据库技术
・ Data Base Technique
【关键词】空间数据 分布式存储 并行处理
1 海量空间数据的分布式存储管理
MongoDB 非关系数据库在海量数据的存储上具有以下优势:支持地理索引、支持海量数据分片、可在各种平台上对海量数据进行存储。

鉴于此,下面以该数据库为基础,对海量空间数据的分布式存储管理进行论述。

1.1 MongoDB的特点与集群
大体上可将MongoDB 数据的特点归纳为以下几个方面:使用简单、便于部署、模式自由、支持Copy 及故障恢复,可对数据进行高效存储。

MongoDB 集群的具体工作原理如下:当用户想在MongoDB 中导入相关数据时,MongoDB 集群能够对单个分片上的数据是否超过预设值进行判断,若是超出存储限值,便会自行启动分片机制,对集合进行分块,然后分别派送至不同的分片上。

在这一过程中,集群各分片上的MetaDate 信息存储全都存储在Con fi g Server 服务器上。

对于用户而言,其并不清楚MongoDB 导入的数据被分配至哪个节点上,这是因为在集群中主要是借助mongos 路由进行的,但利用Sharding 管理命令便可看到数据的存放位置。

1.2 矢量与栅格数据的存储
1.2.1 矢量数据存储
矢量数据常被用于表示空间数据的存储结构。

相关研究结果表明,通过对地理实体坐标进行记录的方式能够精确地表示点、线、面等实体的空间位置,在这一前提下,可对矢量数据的点、线、面进行如下描述:点由一对X 、Y 坐标表示;线由一串排列有序的X 、Y 坐标对表示;面由一串或是几串排列有序且首尾坐标相同的X 、Y 坐标对及面积标识表示。

矢量数据中的数据具体包括以下内容:与空间位置相对应的属性信息、可实现快速查询的索引信息以及空间实体的拓扑信息,按照MongoDB
海量空间数据的分布式存储管理及并行处理技术分析
文/田昶
的存储方式,对矢量数据的存储如图1所示。

图1:MongoDB 中矢量数据的存储模式1.2.2 栅格数据存储
栅格数据归属于阵列数据的范畴,其一般都是按照网格单元的行与列进行排列的。

在此类数据当中,地表被分割成为排列规则且相互邻接的矩形方块,各个地块与单元相对应,其数据结构的点、线、面可分别进行如下表示:点实体由单个栅格像元表示;线实体由同向上连接成串的相邻栅格像元表示;面实体由某个区域内聚集在一起的相邻像元集合表示。

就栅格数据而言,其精度的高低主要与栅格单元的大小有关,单元越细数据的精度就越高,由于栅格单元当中记录的均为属性数据,而位置数据可通过属性数据对应的行列号表示转化为相应的坐标,故此可先对栅格数据进行分块,每个块都包括一组像素点,为了获得最佳的性能,可将单个块中所有像素点全部存储到同一行当中,即以块为存储单位存储至MongoDB 的行中。

2 海量空间数据并行处理过程的实现
2.1 Hadoop及MapReduce并行编程模型
Hadoop 既是一个软件框架,也是一个分
布式的计算平台,其可对大量的数据进行分布式处理。

在Hadoop 上,用户能够对轻松地对海量数据进行开发和处理。

由于Hadoop 应用了MapReduce 及分布式的文件系统,从而使其具备了较高的容错性,可自行对失败节点进行处理。

大体上可将Hadoop 的优点归纳为以下几个方面:可靠性高、扩展性强、高效、高容错、低成本等等。

在大规模的数据处理中,MapReduce 是应用较为广泛的一种解决方案。

通常情况下,可在普通的PC 机上构建MapReduce 集群,在对数据进行处理前,需要先分割数据,并将数据集分布至各个节点当中;处理数据的过程中,各节点能够就近对本地存储的数据处理(Map )进行读取,并将处理完毕的数据重新整理排序,再对排序结果进行合并分发至Reduce 进行处理。

2.2 海量空间数据并行处理的设计与实现
2.2.1 框架体系
可基于HM 的框架体系实现海量空间数据的并行处理和存储,该框架主要是由以下几个部分构成:MongoDB 分布式集群、Hadoop 集群、Mongos 路由以及Master 主服务器。

其中Mongos 路由主要负责路由及协调操作;Hadoop 集群负责系统任务分发和过程协调。

系统节点通过对MapReduce 应用程序的调用,能够实现空间数据的Map 及Reduce 过程,并
将最终的查询结果呈现给用户,或是将空间数据并行写入到MongoDB 数据库的shard 分片上。

2.2.2 并行空间连接查询的实现
(1)在Map 阶段,按照已有的数据划分方法,可将R 和S 数据集当中的各个元素全部映射到单个或是多个分区上,这样一来便可使每个元素均产生出一个或是多个(k ,v )键值对。

其中K 代表分区号;V 主要包括空间属性、ID 以及MBR 等信息。

设每个分区与一个Reduce 任务相对应,在该任务中,将过滤与提炼单个分区,总的分区数可用P 表示,由此可确定出k 的取值范围,即k=[0,P-1]。

(2)在Reduce 阶段主要包括过滤和提炼两个阶段。

当过滤阶段与分区相连接时,会产生一个ID 对的集合<T R ,T S >,每一对T R 与T S 的MBR 均存在重叠的部分;在提炼阶段,可将R 和S 从磁盘中读出,进而验证其空间属性是否满足空间连接谓词的要求。

3 结论
总而言之,随着空间数据量的不断增长,
其存储和处理压力也随之增大,传统的数据库对海量空间数据的管理已经面临瓶颈。

鉴于此,本文提出一种分布式存储和并行处理方法,期望能够对海量空间数据处理效率的提升有所帮助。

参考文献
[1]孙广中.并行计算的一体化研究现状与发
展趋势[J].科学通报,2012(09).[2]刘瑜.基于关系数据库的栅格数据存
储和访问技术研究[J].高技术通讯,2013(05).
[3]黄杏园.大型GIS 海量数据分布式组织与
管理[J].南京大学学报,2014(03).
作者单位
安徽新华传媒股份有限公司 安徽省合肥市 230001
●基金项目:国家科技支撑计划课题2013BAH51F00 ●2014安徽省战略性新兴产业项目。

相关主题