基于非关系数据库的全球时空大数据组织管理研究

2020-04-17   来源:慧天地  
作 者 :杨成月(国家电网有限公司大数据中心, 北京 100031),宋倩芸(国网山东省电力公司经济技术研究院,山东 济南 250021),向隆刚(武汉大学 测绘遥感信息工程国家重点实验室,湖北 武汉 430072),吴涛(湖南师范大学 资源与环境科学学院,湖南 长沙 410006)

 

【摘要】为了解决多类型、多尺度、多时相的全球时空大数据的高效组织管理问题,针对传统数据存储管理技术的限制,基于非关系数据库技术,围绕全球时空信息的无缝组织,非关系存储和分布式管理,提出了全球多源时空大数据的无缝组织与管理解决方案。首先分析了非关系数据库技术的特点,以及当前主流海量空间数据组织技术的局限性;然后基于等经纬度格网剖分模型,采用分级组织、分块存储的技术,构造了多分辨率金字塔,结合非关系数据库技术特点,设计了瓦片化数据和键值对数据这两类数据结构的组织管理框架,并探讨了该方案在网络环境下的非关系数据库分布式组织管理机制;最后基于开源非关系数据库MongoDB构建了原型系统,对比实验表明本文方法比基于关系数据库的管理方法在管理效率上有大幅提升。

 

【关键词】非关系数据库;时空大数据;瓦片化数据;键值对数据;分布式存储

 

【中图分类号】TP311.132.3 

 

【文献标识码】A

 

【文章编号】1672-1586(2019)06-0116-07

 

引文格式:杨成月,宋倩芸,向隆刚,等. 基于非关系数据库的全球时空大数据组织管理研究[J].地理信息世界,2019,26(6):116-122.
 
正文
 

0 引 言

 

对地观测技术、地理信息技术和计算机技术的不断发展,极大地推动了大范围、多来源、多尺度、多类型的时空大数据的获取,并促进了各行各业对其的应用需求。一方面,技术进步有效地提高了我们获取与处理时空信息的能力;另一方面,随着应用研究的深入,大型GIS应用不断涌现。目前,多源海量时空数据的组织管理已经成为大型化GIS应用发展必须突破的一项瓶颈,尤其是在虚拟地球应用产生之后,基于投影变换的空间数据平面式组织已不能满足我们对于大范围甚至全球多尺度时空大数据(影像、地形和矢量等)管理的需求。如何组织、管理和服务全球海量时空数据将决定着GIS是否能进一步发展。同时,伴随着互联网技术的发展,关系数据库作为当前空间数据的主要存储技术,面对亿万次SQL的数据读写开始显现其性能上的颓势,尤其是对海量时空数据处理的低下效率,已严重制约了整个时空数据管理系统的性能。传统关系数据库也难以在持续提供服务的情况下完成数据维护、升级和扩展等一系列操作。此外,现有GIS系统侧重于矢量图形数据的管理和应用,在海量栅格和大规模模型等数据的管理与服务方面效率较差,且多数仍基于文件系统来操作数据,这也一直是过往GIS应用的短板之一。

本文正是在这样的背景下,面对多源、多尺度、多时相的全球海量空间信息,综合考虑空间、尺度和时相等因素,结合全球离散格网和瓦片化思想,采用分级组织、分块存储的技术构造多分辨率金字塔,结合非关系数据库技术特点,设计了基于瓦片化数据和键值对数据这两大类数据结构的组织管理框架,并探讨了该方案在网络环境下的非关系数据库分布式组织管理机制。最后基于开源非关系数据库MongoDB构建了原型系统,对比实验表明,本文方法比基于关系数据库管理方法在管理效率上有大幅提高。

 

1 时空大数据管理方法分析

 

1.1 时空数据组织技术

 

当前,已经有诸多机构在全球海量时空数据组织管理领域展开研究,并取得了大量成果。其中比较有代表性的是:NASA推出了支持EOS数据的地球观测系统数据和信息系统(Earth Observing System Data and Information System, EOSDIS);Google为支撑Google Earth与Google Maps而推出了在线遥感数据存储管理技术;微软在为Bing Maps推出了基于Windows Azure的集群存储系统。同时,其他一些数据库软件也相应推出了海量空间数据存储管理的解决方案,如Oracle的Oracle Spatial、IBM的DB2 Spatial Extender等。此外,一些商用GIS平台也开发出了基于空间引擎的海量空间数据解决方案,如ESRI的ArcSDE和MapInfo的Spatial Wave等。现有各种解决方案从系统体系结构来说,主要可划分为集中式组织管理和分布式组织管理两种;从具体实现的技术路线来说,主要分为基于关系数据库、基于空间数据中间件和基于文件系统三类。无论是基于传统关系数据库的扩展,还是基于空间数据中间件,其底层存储都是依赖于传统关系数据库系统,不适应存储动态非结构化的时空数据。基于文件系统,数据文件之间难以建立联系的弊端以及由此造成的冗余依然是无法回避的问题。

 

1.2 非关系数据库技术

 

传统关系数据库在其核心特性ACID( 原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)的禁锢下已经无力应付新网络时代应用对于并发访问、读写能力和扩展性等方面的要求。此外,大型商业关系数据库(诸如Oracle之类)往往价格昂贵。随着非关系数据库系统技术(Not only SQL,NoSQL)逐渐兴起,一些基于非关系数据库技术的开源项目开始启动。之后各种非关系数据库产品相继问世,如比较有代表性的Redis、HBase、CouchDB、MongoDB和Amazon Dynamo等。相对于关系数据库中格式化的数据结构,典型的非关系数据库存储模式自由,这使数据库从固化结构和事物控制中解放出来,在并发访问、海量数据读取上有着关系数据库无法比拟的性能优势。同时,非关系数据库不需要部署在高性能服务器上,运行在常规的PC集群中就可以支撑其高性能和高扩展性的表现。由此看来,尽管当前非关系数据技术对于大型企业的应用来说还不是主流,但是其展现出的优势给未来海量空间数据存储管理技术发展提供了一个重要方向。

 

2 基于非关系数据库的海量时空数据模型

 

2.1 全球空间数据模型

 

大范围空间数据,以遥感数据为例,通常按景规划生产,它将连续的地理空间人为地分割成条带,往往满足不了实际应用的需要。从根本上解决传统空间数据模型的局限性需要构建覆盖全球的无缝空间数据模型。全球离散格网理论完成了由二维平面上空间数据到实际三维空间球面的建模。在已有的全球离散格网剖分方式中,等经纬度格网结构计算简单直观且与现有各类数据转换比较方便,容易进行纹理坐标的计算和坐标转换,是大范围、多尺度空间数据组织管理中应用最为广泛的一种方式。本文基于等经纬度格网,结合四叉树理论,对原始数据进行无缝拼接后逐级抽样,运用分级组织、分块存储的技术构造多分辨率金字塔。调度数据时依据视点高度来决定金字塔层级,依据视点范围来访问所需瓦片,从而大大降低数据访问开销。金字塔结构的数据组织方式,不但可以提供多种分辨率的空间数据,而且能按需调度用户所需数据,是一种组织大范围海量空间数据的理想结构。

 

2.2 全球时空数据组织框架

 

如图1所示,设计的全球时空数据组织框架将根据时空数据的结构特点,在统一的时空框架下,将其分为两个子类(瓦片化数据和键值对数据)进行组织管理。瓦片化数据主要面向栅格数据(包括遥感影像和数字高程数据),进行基于瓦片金字塔结构的组织管理;键值对数据既可以完成以图幅为单位对栅格数据进行的组织管理,也能够支持对其他空间数据和非空间数据的组织管理。此外,键值对数据还支持点(Point)与包围盒(Box)操作,快速完成球面二维空间内的定位与检索等操作。系统针对这两类空间数据管理形式,引入了元数据描述数据子库,同时在此基础上兼顾时间维特性,设计了对数据的历史版本和多时相的管理。

 

图1 数据组织框架

Fig.1 The framework of data organization

 

针对金字塔库或键值对集合,我们设计了历史版本描述和历史版本数据管理机制。数据的每次变更都会联动记录对该数据历史版本的描述和历史版本数据。系统依据历史版本描述快速检索某条特定的历史版本记录,以及进行历史数据的回退操作来恢复数据。

面向多时相空间数据,我们进一步提出了两套不同的组织管理方法:版本多时相管理和时戳多时相管理。针对版本型的管理,由多个逻辑相关的子金字塔库或键值对集合来记录覆盖同一地区的不同时相的数据。外部访问通过虚拟版本集合迅速定位到合适的子金字塔库或键值对集合。时戳型管理在同一个金字塔库或键值对集合中记录覆盖同一地区的不同时相的信息。外部在访问数据时,系统自动将其解析定位到带该时戳的记录。

 

2.2.1 瓦片化数据

 

瓦片化思想将空间数据统一于全球等经纬度离散格网,空间数据与特定地理空间对应,不但能支持虚拟地球应用的需求,同时也支持对非空间数据的存储管理。等经纬度球面剖分指经线和纬线按固定间隔在地球表面上相互交织所构成的格网,具有结构简单与操作方便等特点,此外,借助于压缩算法,其存储效率也很高。等经纬度格网非常适合于大范围的、多分辨率空间数据的组织与管理,被广泛应用在工程领域之中。图2为在全球离散格网模型下的空间数据组织示意图,整个数据概念模型核心为“格网-瓦片-金字塔”的3层结构。为了便于管理,在核心结构之上外包一层根据数据类型进行划分的概念层,意在操作数据时可以方便地在金字塔层的概念上组织管理各类型空间信息的元数据和瓦片数据。

 

图2 瓦片化数据管理

Fig.2 Management of tiled data

 

规定全球地理坐标的经度范围为[-180°, +180°],纬度范围为[-90°,+90°],此范围以外的坐标值均视为无效值;第k层格网的分辨率为第(k+l)层格网的2倍;在任意层内,横向和纵向格网块的数目之比为2:1,格网块的编码顺序由左到右,由下到上。第0层的分块数为2×1,易知,第k层的分块数

基于上述规定,我们很容易求得在第k层,一个经纬度坐标落在哪一个网格内,以及一个网格的经纬度范围。具体来说,已知经度λ和纬度φ,在第k层中,它所属网格的行列号可通过下面的公式计算而来:

 

 

式中,└┘是向下取整运算符,mod是取模运算符,λ是经度值,从-180°~+180°,φ是纬度值,从-90°~+90°,k是层号,从0开始。

反过来,已知一个网格的层号是k,行号是y,列号是x,那么,该网格的经纬度范围可通过如下公式计算而来:

 

 

2.2.2 键值对数据

 

针对栅格数据之外的空间数据,我们设计了键值对形式的管理方法。键值集合的元数据描述存储在默认集合之中,每个键值集合由其名称唯一标识存在。基于键值对思想,我们以瓦片结构来打包其他空间数据类型,即一个瓦片不再是栅格图像,而是特定空间数据结构的二进制封装。

对于矢量数据来说,我们将落入一个瓦片范围内的矢量对象进行打包(至少包括每一个对象的标识和几何),如果某一矢量跨越多个瓦片,则以瓦片边界将其分割成多个子对象,如图3所示。不同于栅格数据,矢量数据应根据其比例尺挂载在全球等经纬度格网的合适层次中,即同一地区的不同比例尺地图,首先依据可视化需要确定其挂载层次,然后对矢量对象进行网格分割,最后做瓦片化打包处理。

 

图3 矢量数据的多分辨率金字塔

Fig.3 Multi-resolution pyramid of vector data

 

三维模型则比较复杂,每个模型对应多个层次的几何,每个几何都有对应层次材质,每一层材质里的纹理分不同的细节层次,而且每一层材质名都包含了下属纹理的层次信息,对每个材质里的纹理都进行烘焙。为此,我们将三维模型数据打包为瓦片化键值对结构,如图4所示,该对象对应3个几何层次,每个几何层次对应一个材质,材质2_3中表示有3级纹理细节,对应3个不同的细节层次。

在实际操作中可根据需要,结合瓦片化与键值对两类数据组织的特点扩展支持空间数据的存储。以三维模型为例,在等经纬度格网下,模型依托瓦片来确定其定位点,同时以键值对形式存储其他空间与非空间信息。三维模型库中,从概念上来说相对存在有2个层级的数据集来管理:基于离散格网的瓦片和三维模型。如图5所示,系统从全球离散格网中获取瓦片对应的模型对象元信息,针对模型对象的可视范围和可视距离,动态调度和提取相应分辨率级别的几何信息,并依据几何信息映射相应的纹理、属性等其他信息,非常适合于大范围三维场景的动态可视化。

 

图4 三维模型的键值对结构

Fig.4 The key-value structure for a 3-d model

 

图5 基于非关系数据库的三维模型瓦片化管理

Fig.5 Management of tiled data for 3d models

 

2.3 基于非关系数据库的分布式管理

 

为了在网络条件下兼顾数据高效并发处理和支撑整个系统的高可扩展性,我们采用分布式集群的方式来存储和分发数据。该架构在解决海量数据在存储空间问题的同时,还可以通过负载均衡将数据访问的压力分散到集群中的各个节点,提高整个系统的性能与稳定。

 

2.3.1 分布式集群系统架构

 

基于非关系数据库的分布式体系,我们设计了可以在普通PC机上构造高性能集群的“数据-配置-Web服务”的分布式系统架构,如图6所示。

 

图6 基于非关系数据库的分布式架构

Fig.6 Distributed architecture based on NoSQL

 

1)数据层,处于架构的底层,负责空间数据的存储。数据层的基本单元为复制组——每个复制组由3个以优先级区分的数据节点组成:1个主节点和2个次节点。一旦主节点发生故障,系统将根据资源分配实现单点故障转移,持续提供数据服务。可以在普通PC机上构建高性能集群,且单台PC机可同时部署多个数据节点。为了保证系统的稳定性,系统设计将同一复制组内的数据节点部署在不同的PC机上。

2)配置层,存储整个数据层的元信息。数据层的所有节点以及节点内数据块的变更都会记录在配置层。配置层包括若干个并行的配置节点,即每个配置节点都可以单独支撑整个集群的正常运行。当主节点访问压力过大时,配置层选择性对外开放次数据节点访问权限来缓解主节点压力。

3)Web服务层,为应用端提供了统一的访问接口。Web服务层负责响应其与应用客户端之间的交互。外部访问集群时通过Web服务实现,从而隐藏实际数据存储节点信息,可以使得用户在便利地对数据库进行操作的同时又不需要知道数据库的存储节点部署信息。

 

2.3.2 分布式集群时空数据组织

 

在上述架构基础上,从单个数据节点和整个数据视图两个层面上来考虑时空数据的组织与存储,从而既考虑提高单个数据节点内部的I/O性能,同时又维护在分布式框架下数据组织的完整性。

1)数据节点内部数据组织。在数据节点内部,充分利用瓦片数据请求的局部性来进一步提高数据部分的I/O性能,即从瓦片语义以及其水平和垂直方向上的相关性上考虑,优化水平方向的访问局部性。具体方法如下:按Morton码将二维空间中的位置映射成一维码后,考察邻接的二维位置在一维码中的距离远近程度,在此基础上进行优化;通过与树结构的结合,进一步提供快速数据索引的功能,从而形成一种大范围时空数据组织方式,即首先逐层组织,同层内按Morton码递增依次存储各个瓦片,保证数据节点内部水平相关数据的有序存储。

2)分布式时空数据组织。就整个分布式框架而言,为平衡数据库的高性能、高可扩展性与最小化数据开销,采用一套基于组块区间划分的数据平衡机制,以均衡分布式集群内各个复制组间的数据分布。外部可见的一个数据库或子数据库被切分为若干个由组块拼成的数据片段,对应存储在数据层中不同的复制组中。系统划分数据为若干固定大小的组块,组合成多个数据片段分布到各个复制组。为保证单个节点内数据的水平相关性,综合编码信息和数据量组合数据片段,且复制组动态保存多个数据片段。

以瓦片数据为例,系统按编码中的金字塔层信息切分数据片段,并设定固定的分裂阈值控制数据片段的分裂。复制组内部存储多个数据片段,以数据片段的数据量为依据组织各数据节点上的数据片段分布。据此,既保留瓦片数据水平相关性,同时保证数据的基本均匀分布,实现数据的最小迁移。该模式具备很高的灵活性与可扩展性,随着数据持续增加和访问量暴增,能便捷地通过新增数据节点与Web服务器节点完成对整个系统容量和性能扩展。新增节点亦可以根据需要选择部署在同一网络内,抑或部署在互通的不同网络中。

 

3 实验对比与性能分析

 

3.1 实验原型系统

 

基于前文所述的全球空间数据模型、全球空间数据组织框架和基于非关系数据库分布式管理架构这3个关键技术,本文设计实现了面向虚拟地球应用的时空大数据组织原型系统。实验平台部署在5台普通的PC机上:3台作为数据节点,1台部署Web服务器,1台部署虚拟地球客户端。每台PC包含一个Intel Core i3-2100(主频3.10 Hz)CPU,8 G内存,操作系统为CentOS 6.2 64 bit,实验用的非关系数据库为MongoDB。各部分之间通过千兆以太网互联。将实验用的多时相影像、地形、三维模型和矢量数据导入到原型系统中,通过虚拟地球客户端实时调用空间数据进行绘制效果图,如图7所示。

 

a 全球俯瞰

a Global overlook

 

b 大范围影像叠加

b Overlapping of large scale image

 

c 矢量-影像-地形叠加

c Overlapping of vector, image and DEM

 

d 模型-影像-地形叠加

d Overlapping of model, image and DEM

图7 虚拟地球端访问原型系统效果图

Fig.7 The demo based on the virtual earth

 

3.2 性能分析

 

实验选择在千兆局域网内,在原型系统的基础上搭建实验环境,与基于Oracle的GeoGlobeServer实验环境进行性能对比实验,并考察本系统的分布式扩展性能。

 

3.2.1 性能对比实验分析

 

在原型系统的基础上部署对比实验平台。3台作为数据节点,1台部署Web服务器,1台部署测试客户端。对应部署相同分布式环境的GeoGlobeServer。实验所用北半球多时序影像数据切片后搭建13层金字塔影像库,通过客户端机的LoadRunner模拟用户并发向服务器发出数据请求。分别设计两种用户并发场景:500个用户并发随机向数据库内覆盖总量达40万个时序瓦片的范围内发出数据请求,且每个用户不间断地随机请求20个时空邻近的瓦片;1 000个用户并发随机向数据库内覆盖总量达40万个瓦片的范围内发出数据请求,且每个用户不间断地随机请求20个时空邻近接近的瓦片。

实验结果见表1,可以看出,基于非关系数据库的空间数据组织模型在响应时间上相对基于关系数据库的有着显著的性能优势。当并发量急剧增加时,原型系统性能表现稍有下滑,而对照系统的性能则急剧下滑。由此可见,本文设计的基于非关系数据的海量时空数据的组织方法在并发量、访问性能上都优于基于传统关系数据库的方案。

 

表1 瓦片数据组织性能对比试验

Tab.1 Performance on comparative experiments

 

3.2.2 性能扩展实验分析

 

实验中将原型系统实验环境的数据节点进行了两次扩展:第一阶段,初始时集群内部署有3个数据节点,客户端模拟1 000个用户并发随机向覆盖总量达298万个瓦片的10~13层金字塔范围内发出数据请求,每个用户不间断地随机请求20个在空间接近的瓦片;第二阶段,将集群内数据节点扩展为5个,客户端访问设置恒定;第三阶段,将集群内数据节点扩展到8个,客户端访问设置恒定。

实验结果见表2,可以看出,面对海量并发访问,当只有3个数据节点时,磁盘I/O成为了制约其性能的主要瓶颈;当数据节点扩展到5个时,由于有更多的数据进入缓存,在表现上有所提高,但仍有大量磁盘I/O存在制约性能;当扩展到8个数据节点时,数据基本都已进入各节点的本地缓存,在很大程度上提高了节点间的I/O操作速率,且由于I/O也被分散并行在更多的节点上,使得服务能力明显提高。由此可见,在本文设计的架构下,通过扩展数据节点达到在扩展数据容量的同时又高效提升了服务表现的目的。

 

表2 空间数据组织性能扩展试验

Tab.2 Performance on scalability experiment

 

4 结束语

 

时空大数据的高效组织和管理对于GIS的进一步发展有着重大影响,本文面对当前海量时空数据存储管理方面的不足,采用新型的非关系数据存储技术,在全球等经纬度格网模型的基础上构建了多尺度、多时相、海量空间数据存储管理模型,并结合非关系数据的存储机制与海量空间数据的特点,设计了包含瓦片化数据和键值对数据的分布式框架组织管理框架。在分布式框架中,有针对性地设计了数据节点内部优化水平访问邻近性的数据组织,以及数据节点之间基于组块区划的动态优化数据组织。最后基于开源非关系数据库实现原型系统,并与基于关系数据库的解决方案进行了实验对比。结果表明,本文设计的基于非关系数据库技术的全球海量时空数据无缝组织管理解决方案在响应海量并发、检索效率以及系统可扩展性上有着明显的优势,对于进一步研究海量时空数据的存储管理有一定的借鉴意义。

分享给小伙伴们:

更多文章

相关文章

天乐网部分信息来源于互联网,不对其完整性、合法性等负责

天乐网是南京久测仪器技术有限公司旗下网站

联系方式:QQ:487823649 投稿邮箱:487823649@qq.com 电话:400-006-5117

版权所有:南京久测仪器技术有限公司 Copyright© 2020 Tleer.cn, All Rights Reserved.天乐网 | 苏ICP备11065447号-3