基于MongoDB数据库的多时态地形数据存储管理方法_第1页
基于MongoDB数据库的多时态地形数据存储管理方法_第2页
基于MongoDB数据库的多时态地形数据存储管理方法_第3页
基于MongoDB数据库的多时态地形数据存储管理方法_第4页
基于MongoDB数据库的多时态地形数据存储管理方法_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于mongodb数据库的多时态地形数据存储管理 方法利用多时相遥感数据和融合技术,对受灾区域进行监测、预警和分析,对于制定具体的防 灾方案和采取有效的防治措施,都有着重人意义1。如何有效地管理受灾区域的多时相、 精细化的海量地形地貌历史数据,以及航空遥感和卫星遥感技术实时获取的最新数据,支 持高效的存储和调度,以满足应急救灾的科学决策和应用需耍,现已成为应急救灾数据库 多时相数据管理的难点。多时相数据的存取也满足长尾理论,即大部分的数据库存取集屮在少部分的现势性数 据上2。显然,应该使活跃的现势性地形数据能便于有效存取。然而,传统的时态数据模 型和数据纽织结构,只是在概念和逻辑层面实现多时态

2、数据组织的完整性,包括序列快照 模型、基图修正模型、空间-时间纟fl合体模型和空间-时间立方体模型等3, 4,并没有考 虑不同时态数据的存取权重,物理实现统一采用磁盘存储,导致磁盘i/o成为数据库调度 性能的瓶颈,极人地增加了磁盘i/o负荷和数据调度时间。如果将存取频率高的现势性地 形数据存储在内存上,将历时数据存储在磁盘上,现势性地形数据的调取就可以消除内外 存的磁盘i/o。这样不仅町以降低用户并发坏境下服务器端磁盘的吞叶压力,也可以保证 客户端的调度和绘制效率。为此,本文设计了多时态地形数据的组织模型,并充分挖掘分 布式数据库mongodb的性能优势,提出了基于mongodb数据库的多时态

3、地形数据存储管理 优化方法。1多时态地形数据组织概念模型传统的静态gis只涉及地理信息的空间维度和属性维度。对于语义更丰富、对现实世 界描述更准确的时间维度,如何将其与空间和属性维度有机结合,保证“时空效率”,是 多时态海量数据模型建立的难点。传统的时态gis数据模型,包括序列快照模型、基图修 正模型、空间-时间纽合体模型和空间-时间立方休模型等3, 4,都只在时空数据管理的 共性问题上提出了解决方案。在具体的时间、空间和属性的有机结合的应用中,还需耍结 合应用特点,从共性与特性出发,构建符合应用需要的时态数据模型。地形数据通常按照图层来纟r织。将不同时态的地形数据纟r织成不同的图层,并根据数

4、 据获取的时间依次排序,即新数据在上,旧数据在卜叠置显示。在应急救灾应用中,图 层的最下层为覆盖全国或全球的低精细程度的地形数据,向上根据时间的早晚,依次叠置 不同时态的受灾区域精细化的地形数据。考虑到应急救灾多时态数据库为基础数据库,不 同吋态地形图层之间独立存储,故可通过经纬度他标隐式关联。对于表达地理时间最重要 的变化,则通过上层的分析模块,根据儿何位置、形状和范围,以及纹理的灰度和颜色等 因素进行分析判断。故序列快照模型可满足多时态地形数据基木的管理需要。time3图1基丁快照的多时态地形数据fig. 1 multi-temporal terrain data based on sna

5、pshot由于天气和云雾等外在因素的影响,导致人为操作和地形传感器数据的采集存在测量 误差,不同时态的数据范围会存在差界。当出现新数据的覆盖范围小于历史数据时,对于 新数据耒覆盖的区域,则采用该区域最新的历史数据进行代替,该应用特性满足基图修止 模型。鉴于此,多时态地形数据模型采用快照模型和基图修正模型的折衷模型。即不同时 态的地形数据采用快照来表示,某一时态的地形数据的缺失部分采用基图修止模型表示。time 3time 2time 1图2基于修正模型的多时态叠置fig. 2 multi-temporal overlay based on correction model由于地形数据具有覆盖范

6、围广和数据最人的特点,若仍以图幅为管理单元,难以满足 实时可视化数据高效调度和绘制的需耍5。因此,构建地形金字塔模型,即将界源异构数 据整合到统一坐标系,按照规则的空间范围进行格网划分,并采用四叉树模型,为地形不 同细节层次的格网间建立映射关系6。通过细化数据存储和调度的最小单元,建立层次结 构,保证海量地形数据的调度。并按照视距和视点范围,由远到近、由局部到整体,高效 调度并流畅显示。2多时态地形数据组织管理方法2. 1基于元数据的时态信息管理时间、空间和屈性是地理实体和地理现象本身所具有的三个基本特征,是反映地理实 体的状态和演变过程的重要组成部分。由于地形数据本身并不包含时间信息,所以常

7、将其 作为地形数据的语义进行扩展,并通过结构化描述來统筹管理。按照xml文件管理的时态 信息,地形根节点包demdb和domdb两个数据了节点,每个了节点为每一个受灾区域建 立一个工程节点,每个工程节点映射一个数据库节点,每个数据库节点映射一个或多个时 态节点,时态节点存储地形数据的时间信息和地形范围信息。图3多时态元信息数据结构fig. 3 data structure of multi-temporal metadata客户端连接多时态地形数据库时,首先获取该时态元文件,解析得到工程、数据库和 时态信息,并用树状控件显示。点击某受灾区域的工程节点,定位到该受灾区域,可显示 最新的地形数据。

8、如果需要凹溯查看历史状态,点击树状控件中的历史节点或者界面中的 时间进度条,可查看该受灾区域的历史状态。2.2基于时间戳的时态地形数据存储管理地形数据通过地形金字塔划分为规则格网,每一个地形格网块通过惟一标识码进行索引。地形格网块惟一标识码由三方而信息(l, (x, y)组成,其中l表示l0d的层级;x表 示格网行号;y表示格网列号7。考虑到地形数据格网划分的规则相同,同一受灾区域不 同时态地形格网的名称相同,故需要采用格网id和时间戳的混合键值进行索引。通过视域 范围内的格网id和吋间信息,能够快速调度目标区域和目标吋态的地形数据。3基于mongodb存储管理的优化方法传统的存储系统采用集中

9、的存储服务器存放所有的数据。现有的存储服务器已成为提 供系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足人规模存储应用的需要。分布 式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器 定位存储信息,不但提高了系统的可靠性、町用性和存取效率,述易于扩展。考虑到多时态地形数据的数据量人,且随着时间的延长,数据不断增加的特点,故单 数据中心的存储模式难以支持海量数据的高效存储和调度效率。而将海量的多时态地形数 据存储在高性能、易水平扩展的非关系型数据库mongodb中,并结合多时态地形数据的应 川特点,提出了存储优化方法。通过分散存储和并行调度,可捉高海量多时态地形数据

10、的 调度效率,支持流畅浏览和分析应用的需要。3. 1支持海量数据的分布式存储mongodb提供口动分片(auto-sharding)的分布式存储功能8。即通过路由服务器 mongos, 口动建立一个水平扩展的数据库集群系统,将数据库表分散存储在sharding的各 个节点上。通过将数据拆分,将具分散存储在不同数据服务器的节点,让更多的机器來处 理不断增加的负载和数据。并通过并行读写,提高i/o的吞叶能力。数据分片对用户透 明,客户端在连接mongodb数据库时,并不知道数据己经被拆分,也不知道拆分的数据存 储在哪些数据服务器的节点屮。用户发送杏询请求,通过路由服务器mongos,杳找到存在 于

11、各个分片节点的数据,通过并行读取和打包聚合,最终返回给客户端。分布式数据库mongodb的sharding节点便于水平扩展。当集群存储接近饱和时,通过 简单的“addshard”命令,便可添加新的分片节点,并支持数据的自动迁移和平衡。为了 提高集群的安全性,mongodb提供replica set数据备份模式,为每个sharding节点建立 复制集,同步备份;当某个节点宕机时,主节点切换到备份节点上,不影响整个集群系统的 使用,具有极强的口动容错(auto-fa订over)和口动恢复(auto-recovery)功能。此外,通 过replica set來实现读、写分离,即由备份节点來分担读的压

12、力,主节点只承担写操 作。虽然备份节点数据的一致性存在一定的延迟,但极人地减小了主节点的读写压力。mongodb分布式存储时,需要从集合里而选一个键,用该键的俏作为数据拆分的依 据。这个键成为片键。片键的选择,决定了插入操作在片z间的分布9。如果选择id作 为片键,每个片服务器存储一定连续id范围的数据。如果选择吋间戳作为片键,每个片服 务器包含在一定吋间范围内的所有数据。假设其中一片包含时间戳在“2013.10.15”以前 的文档,则另一片包含时间戳在“2013.10.15”以后的文档。如果新文档的时间戳在 “2013. 10. 15” z前,则会添加到笫一片中,否则会添加到第二片中。随着数

13、据量的增加 或删除,mongodb会重新平衡数据范围,使每片的流量比较均衡,数据量也在合理范围 内。考虑到时间戳是升序片键,会导致写压力持续在单一分片节点上,无法分担热点压 力。因此,时间戳不能作为独立的片键。地形格网id的基数人,避免了小基数片键限制分 布式集群的分片个数的缺陷。而采川格网id进行分片,可实现多时态地形数据的分散存储 和并行调度。3.2支持现势性数据快速查询的时空混合索引不同时态地形数据的覆盖范围存在差异。对于缺失区域,往往采用缺失时间点之前的 最新历史数据,以降低缺失区域与周边区域之间颜色和纹理的跳跃感,提高地形的视觉效 果。但该应用特点导致需提前判断某时态地形块是否存在。

14、若当某地形块不存在时,需耍 按时间顺序搜索卜一时态的地形块,直到搜索成功。这一査询方式产生了大量的无用操 作,增加了数据调度的负荷。尤具是对存取频率高的现势性地形数据,在多用户并发访问 的坏境下,该查询方式的性能瓶颈格外突出。在分布式数据库mongodb中,对于复合索引,如果查询条件包含复合索引屮的前n个 索引列,了集的杏询同样可以使用该复合索引。在mongodb屮,建立格网id和时间戳的混 合索引tileid:l, timestamp:-1,时间戳采用逆序排列。那么在通过格网id査询时,虽 然存在不同时态的同名格网数据,但是因为按照时间戳逆序排列,所以返冋的是最新时态 的地形格网,可满足现势

15、性数据的存取需要。因此,基于mongodb的该特性,在地形入库 时,建立格网id和时间戳的混合索引,时间戳逆序排列。在调度现势性数据时,根据格网 1d,即可从数据库屮检索和调度到最新的地形数据。3.3内外存协同的现势性数据优化方法内存屮数据的读写速度要比磁盘屮的高岀几个数量级。将数据保存在内存屮访问,相 比将数据保存在磁盘中访问,能极大地提鬲应用的性能。但是内存的容量有限,不能容纳 整个数据库。考虑到用八浏览往往关注现势性数据,若能将高频访问的现势性数据保存在 内存中,将历史数据保存在磁盘中,能极大地提高用户的访问效率。考虑到mongodb使用 内存映射文件进行数据管理,故可把所有空闲内存当缓

16、存使用。当分片服务器具有大内存 吋,如何利用mongodb内存映射的性能特点,在内存中管理现势性地形数据,是实现高频 访问现势性地形数据的高效调度的关键。在mongodb中,以时间戳为键值划分数据,可以保证新数据保存在内存中。但是,如 3.1节所讨论的,时间戳是升序片键,会导致写压力持续在单一分片节点上,无法分担热 点压力,故不能作为独立的片键。人基数的地形格网id,虽然保证了分散存储的平衡性, 但是无法区分时态信息,导致现势性数据和历史数据都均衡存储在内存和磁盘中。鉴于此,将分片的键值增加时间属性,即键值为格网id和时间的纟r合片键,数据不仅 按照空间位置分片,也按照时间顺序分片。这样既保证

17、数据均衡分散在集群屮,乂能把新 数据保持在内存中。为此,本文采用timestamp: 1,t订eid:l组合键来做分片。在导入 2013年10月份的数据时,若采川两台片服务器,则数据自动分割成两块。如:(-8, -oo), (2013-10,10-536-427)(2013-10,10-536-427),(, 8)所有的写操作都会被均匀地分布到两个块上。例如,所有乩片id小于10-536-427的 数据会被写入块1中,所有瓦片id大于10-536-427的数据会被写入块2中。若内存容量 足够大mongodb会将10月份的数据保存在内存中,将2013年10月以前的历史数据保存 在磁盘屮,分布存储

18、。等到11月数据更新,mongodb 乂开始创建2013-11的分布式数据 块,替换掉内存中的10月份数据。等到12月时,10刀的数据无人访问,就开始彻底退出 内存,存储在磁盘中,不再占用内存资源。通过为mongodb创建混合键值,不仅保证了不同时态地形数据在分布式环境屮的均匀 分布,而几在一定程度上,保证了新数据常驻内存,提高了新数据的访问效率。4实验与分析在应急救灾响应管理平台中,需要管理tb级不断更新的多时态灾区地形数据,几场景 加载响应时间耍求达到秒级。因此,通过高效纽织并存储多时态灾情地形数据,支撑最新 灾情数据的实时町视化。4. 1实验环境实验场景选择四川省雅安市某受灾区域及其周边

19、区域,数据范围27000km2,包含五个 时态的地形数据(2012年11刀,2013年2刀、5刀、8刀和9刀),每个时态数据量约 7.6g。软硬件配置情况为:数据库为mongodb 2. 2.2 win64版;客户端为mongodb c+ driver 2. 0. 8 版;数据服务器 cpu 为 intel (r) xoon (r) x5540 2. 53ghz 处理器,内存为主 频1600mhz 32g,硬盘为2个7200转it硬盘,操作系统为windows 2008 server r2 enterprise的64位操作系统;网络为t兆局域网。图4木文方法实现流程fig. 2 workflo

20、w of the method4. 2实验结果与分析由三个sharding片服务器、一个config配置服务器和一个mongs组成mongodb集群 坏境,对比以格网id分片的普通分布式存储方法与本文介绍的内外存结合的分布式存储方 法。普通分布式存储方法仅建立基于格网id的分布策略;木文方法建立基于格网id和时间 戳的混合索引til eid:l, timestamp:-!,支持格网id查询最新地形块功能,建立timcstamp: l,tileld:l组合片键,支持最新时态数据常驻内存,如图4所示。两种方法 获取最新地形数据的调度效率结果如表1所示。从表1看,与普通分布式存储方法相比, 本文方法

21、在获取受灾区域最新地形数据时的效率更高,传输效率提高了 47. 56%。这主要是 由于传统基于格网id片键的分片方法,数据块按照格网1d连续存储,因此每个吋态地形 数据都部分存储在磁盘,部分存储在内存屮,导致高频的现势性数据需要从磁盘加载,降 低了响应效率。而本文方法采用的格网id和时间的组合片键,通过时间标记,将新时态数 据保存在内存屮,而将历史数据存储在磁盘屮。因此,本文方法减少了磁盘的1/0,大幅 度提高了调度的效率。表1调度效率对比tab. 1 efficiency comparison传输数据量传输效率普通方法7. 62g22. 52m/s本文方法7. 62g33.23m/s5结语针

22、对丿'v急救灾数据库需要存储管理受灾区域多时态地形数据的皿用需要,如何从海暈 多时态地形数据库中快速获取现势性数据,满足川户"j视化应川的需要和调度性能的要 求,成为多时态地形数据库存储组织的难点。本文在传统时态数据概念模型的基础上,以 分布式数据库mongodb为存储坏境,提岀了内外存结合的多时态地形数据管理优化方法。 通过挖掘mongodb数据库的性能优势和架构特点,选择口动分片(auto-sharding)的分布式 存储结构,并通过片键的合理选择,将现势性地形数据常驻于内存屮,将历史数据存储于 磁盘屮,保证用户所需要的现势性数据在内存屮快速命中,满足了网络环境下多用户并发 快速浏览的应用盂耍。(转口中国勘测联合网www, chincunsv. com测绘技术百科)参考文献1 adams b j. improved disaster management through post-earthquake building damage assessment using multi-temporal sa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论