一种基于Oracle数据库的多源异构空间数据流转方法与流程

文档序号:12063915阅读:479来源:国知局
一种基于Oracle数据库的多源异构空间数据流转方法与流程

本发明涉及数据库技术领域,具体是一种基于Oracle数据库的多源异构空间数据流转方法。



背景技术:

随着空间地理信息技术的不断发展,获取地理空间信息的手段不断丰富,地理空间数据呈现出数据来源多样化、数据模型差异化、数据存储分散化、空间关系复杂化、数量海量化等特点,为此,以数据、应用为导向的各种空间数据库技术、空间数据引擎技术、分布式存储管理技术应运而生,在一定程度上或从某一方面有效地解决了地理空间数据存储和管理的问题。

针对多源异构空间数据的存储、组织、管理与发布等问题,国内外已经有了大量的研究成果,可主要分为三大类。第一类是以传统关系型数据库为代表,直接对传统数据库管理系统进行扩展,实现空间数据存储与管理功能;第二类是基于传统数据库管理系统开发空间数据库引擎,以获得传统数据库管理系统功能之外的空间数据存储和管理能力;第三类是基于分布式文件系统构建非关系型(NoSQL)数据库在分布式并行计算框架下进行数据处理。

对象关系型数据库通过对自身的数据库管理系统进行扩展,使之能直接存贮和管理非结构化的空间数据,如Oracle公司的Oracle Spatial、Oracle GeoRaster、Postgres SQL的PostGIS、IBM公司的DB2Spatial Extender、Informix的Spatial DataBlade、基于SQLite的SpatialLite等。这些传统的数据库产品其技术成熟稳定,在各行业应用范围广、用户数量多、运行的周期长,基于其部署的应用系统数量和规模巨大,其中以Oracle应用最为广泛。但是由于Oracle提供的SDO_GEOMETRY属于Oracle Spatial扩展模块内部的存储对象,不具有普适性,无法直接与其他数据源或数据库直接进行数据共享或互操作,需要进行空间数据格式的转换;同时,GeoRaster在栅格数据管理方面也存在诸多限制。

空间数据引擎是基于传统关系型数据库管理系统(Relational Database ManagementSystem,RDBMS)开发的支持空间数据的中间件,空间数据应用程序通过空间数据引擎将数据交给RDBMS统一管理,具有代表性的是ESRI公司的ArcSDE、MapInfo的Spatial-Ware、MAP GIS空间数据引擎MapGIS SDE、超图的SuperMap XSDE等,其中基于ArcSDE应用开发的案例最多,处于国际领先地位。ArcSDE是ArcGIS的空间数据引擎,采用的是客户/服务器体系结构,其在应用程序和RDBMS之间搭建了桥梁,通过ArcSDE提供一个连续的空间数据模型,借助这一空间数据模型,可以实现对RDBMS空间存储和管理。但是ArcSDE支持的数据源有限,在大批量的数据入库及数据迁移时效率较低,同时其部署时需要在数据库服务器端安装相应的SDE环境,对未通过ArcSDE入库的数据无法直接读取,无形中增加了数据库服务器端负荷,无法实现多源异构数据的共享与数据的流转。

非关系型NoSQL空间数据库已经取得的比较流行和成熟的解决方案是利用分布式文件系统,基于HBase,MongoDB等NoSQL数据库构建遥感影像、矢量数据的结构化(Key-Value)存储,实现对高分辨率遥感影像、海量矢量数据的管理。如西密苏里州立大学的BaoqiangYan等学者提出了一种海量空间数据处理并行框架(IDEA),可以有效的分配数据服务和计算节点,实现任务的有效调度,进而达到提高I/O和通信的效率;浙江大学康俊锋博士提出的基于整合的Hadoop和Eucalyptus云平台的高分辨率遥感影像存储模型C-RSM;雷德龙等人基于MongoDB和Hadoop架构,设计并实现了矢量空间数据云存储与处理系统VectorDB,达到了海量矢量空间数据的高效存储与处理要求。尽管基于非关系型数据库的空间数据管理提出了很多解决方案,但在商业化应用中使用的并不多,原因包括:分布式矢量数据的存储、空间操作以及分布式处理的技术并不完善,需进一步探索和研究;对多源异构数据还无法提供充足的支持;对于如何集成已存在的关系型数据库中的空间数据,还未有很好地解决方案。

目前,国内数据库建设多不具备云环境,较为广泛使用的数据库仍然主要集中在以Oracle为基础的“扩展对象关系型数据库”、“空间数据引擎”两方面,然而,多年的数据库建设出现了种类繁多、架构各异的GIS系统,导致数据难以共享,出现数据迁移效率低、多源异构数据流转难度大、数据互操作难以实现等情况。



技术实现要素:

本发明的目的在于提供一种基于Oracle数据库的多源异构空间数据流转方法,将成熟的关系数据库空间数据存储与空间数据库引擎技术结合,通过建立一体化的矢量、栅格数据存储模型并优化空间数据检索机制,集成整合分布式存储的各空间数据库中的空间数据,实现多源异构数据的数据流转。

为实现上述目的,本发明提供如下技术方案:

一种基于Oracle数据库的多源异构空间数据流转方法,包括基于Oracle的多源异构空间数据存取方法和基于Oracle的多源异构空间数据处理方法;

所述基于Oracle的多源异构空间数据存取方法,包括以下步骤:

步骤A1:数据管理层接收到数据应用层数据请求,将请求传递给用户权限角色认证模块;

步骤A2:用户权限角色认证模块对用户角色进行审核,验证通过后转入数据库节点管理模块;

步骤A3:数据库节点管理模块根据数据存储的目的地址确定访问的数据库节点;

步骤A4:数据请求调度模块查找空间数据缓存区,若没有发现所需数据,则将数据请求发送至数据统一访问口模块;

步骤A5:数据统一访问接口模块读取多源异构数据,并通过空间数据转换模块进行空间数据模型转换,转换为统一数据模型后,存入到数据缓冲区中;

步骤A6:数据预处理模块对数据进行简单的质检;

步骤A7:数据统一访问接口模块将预处理后的数据通过空间数据存取模块录入到对应的Oracle数据库节点中,完成数据的存取;

所述基于Oracle的多源异构空间处理方法,包括以下步骤:

步骤B1:数据管理层接收到数据应用层数据请求;

步骤B2:用户权限角色认证模块对用户角色和数据的访问权限进行认证;

步骤B3:数据库节点管理模块根据请求数据的基本信息确定访问的数据库节点信息;

步骤B4:数据请求调度模块查找空间数据缓存区,若发现缓存区没有所需数据,则发起数据请求;

步骤B5:数据统一访问接口模块通过数据库操作模块获取所需数据,存入到数据缓冲区中;

步骤B6:空间数据处理模块对数据进行运算与分析,将结果集存入到数据缓存区;

步骤B7:数据请求调度模块将数据结果集返回至上层应用,完成操作。

作为本发明进一步的方案:步骤A5中,所述统一数据模型包括统一矢量数据存储结构和统一栅格数据存储结构。

作为本发明再进一步的方案:所述统一矢量数据存储结构包括基于BLOB对象存取方式的矢量数据存储结构和基于SDO_GEOMETRY对象存取方式的矢量数据存储结构。

作为本发明再进一步的方案:所述基于BLOB对象存取方式的矢量数据存储结构的关系表包括矢量元数据表、矢量空间索引表、矢量空间参考表和矢量空间数据表。

作为本发明再进一步的方案:所述基于SDO_GEOMETRY对象存取方式的矢量数据存储结构的关系表包括空间元数据表、空间坐标系统表、空间索引信息表、空间索引元数据表和矢量空间数据表。

作为本发明再进一步的方案:所述统一栅格数据存储结构包括:提取栅格数据元数据信息,生产栅格元数据信息表;按照波段对栅格数据进行抽取,并形成波段信息表;对每一波段进行分块,每一块作为一个Blob字段数据存储在栅格数据表中;选择重采样算法,生成影像金字塔,形成金字塔信息表;对生成的金子塔数据先按照波段分层,同一波段内再分块,生成金字塔数据表。

作为本发明再进一步的方案:所述统一栅格数据存储结构的关系表包括栅格信息表、波段信息表、金字塔信息表、栅格数据表、金字塔数据表。

作为本发明再进一步的方案:还包括基于统一矢量数据存储结构的矢量数据查询检索方法;

所述基于统一矢量数据存储结构的矢量数据查询检索方法,包括以下步骤:

步骤C1:对于基于BLOB对象存取方式的矢量数据存储结构的空间数据,建立空间索引后,能够直接对BLOB对象进行精确的空间查询;

步骤C2:对于基于SDO_GEOMETRY对象存取方式的矢量数据存储结构的空间数据,首先对矢量空间索引表或是建立的索引文件,对最小包围框进行空间查询,初步筛选出FID结果集;

步骤C3:根据初步筛选出的FID结果集,去数据库提取对应要素;

步骤C4:对提取的要素与空间过滤条件进行空间几何运算,进行几何关系的精确查询,得出满足空间过滤条件的最终结果。

作为本发明再进一步的方案:还包括基于统一栅格数据存储结构的栅格数据查询检索方法;

所述基于统一栅格数据存储结构的栅格数据查询检索方法,包括以下步骤:

步骤D1:根据栅格数据大小及栅格的地理范围,计算栅格数据的cell大小:

步骤D2:根据请求的地理坐标范围,计算当前请求栅格数据的大小:

其中,reqx、reqy分别表示请求的栅格数据的长度和宽度,filterminx、filtermaxx、filterminy、filtermaxy分别表示请求的地理范围的最小x坐标值、最大x坐标值、最小y坐标值、最大y坐标值,cellx、celly分别表示栅格数据一个像素点能够表示的地理坐标x维度的大小和y维度的大小;

步骤D3:计算当前视窗范围内的比例尺scale,找到与比例尺最近一级金字塔级别i:

其中,scale是当前视窗比例尺,winx、winy分别为当前视窗的宽和高度,pyramidi为第i级金字塔的比例尺,S为各级金字塔比例尺集合,level为金字塔级别总数,pyramidmin为最接近scale的一级的金字塔的比例尺;

步骤D4:根据金字塔级别,查找该级金字塔在某一波段内块的位置:

其中,blockx、blocky分别表示栅格数据某一波段中切割块的长度和宽度,tileminx、tileminy、tilemaxx、tilemaxy分别为所请求的块号的最小行号、最小列号、最大行号、最大列号,reqminx、reqminy、reqmaxx、reqmaxy分别标识请求的地理范围的最小x坐标值、最小y坐标值、最大x坐标值、最大y坐标值,imgminx、imgminy分别表示栅格数据地理范围的最小x坐标值、最小y坐标值;

步骤D5:按照块号请求数据后,对栅格边界的块进行块内查找,得到最终查询的栅格数据实体。

与现有技术相比,本发明的有益效果是:

本发明将成熟的关系数据库空间数据存储与空间数据库引擎技术结合,通过建立一体化的矢量、栅格数据存储模型并优化空间数据检索机制,整合分布式存储的各空间数据库中的空间数据,实现多源异构数据的数据流转。采用本发明提供的方法,可以提高多源异构数据流转的效率,基于本发明技术所开发的Oracle数据驱动引擎NMSDE,其存储与查询效率测试均优于ArcSDE。

附图说明

图1为本发明提供的基于Oracle数据库的多源异构空间数据流转方法示意图。

图2为本发明的提供的基于Oracle的空间数据管理系统总体架构示意图。

图3为本发明提出的Oracle全局数据库中统一矢量数据存储结构的关系表示意图。

图4为本发明提出的Oracle全局数据库中统一栅格数据存储结构示意图;

图5为本发明提出的Oracle全局数据库中统一栅格数据存储结构的关系表示意图;

图6为本发明提出的Oracle全局数据库中矢量空间数据查询流程示意图;

图7为本发明提出的方法与ArcSDE的栅格数据存取效率对比示意图,其中(a)为栅格数据入库效率对比示意图,(b)为栅格数据导出效率对比示意图;

图8为本发明提出的方法与ArcSDE的栅格数据查询效率对比示意图。

具体实施方式

下面结合具体实施方式对本发明的技术方案作进一步详细地说明。

请参阅图1,一种基于Oracle数据库的多源异构空间数据流转方法,包括基于Oracle的多源异构空间数据存取方法和基于Oracle的多源异构空间数据处理方法。基于Oracle的多源异构空间数据存取方法主要是针对数据的迁移、数据的出入库以及数据的远程存取;基于Oracle的多源异构空间数据处理方法主要是针对数据查询、空间数据分析、空间数据操作等,以满足上层数据应用的需求,实现数据的查询、分析和更新等。

所述基于Oracle的多源异构空间数据存取方法,包括以下步骤:

步骤A1:数据管理层接收到数据应用层数据请求后,由用户数据请求处理模块对数据请求进行解析,明确请求的类型为数据存取请求,并获得请求数据的基本信息(数据源的地址、数据类型、数据的存储的目的地址、链接的信息等)和请求发起者的基本信息(用户角色信息、访问权限)等,将请求传递给用户权限角色认证模块;

步骤A2:用户权限角色认证模块对用户角色进行审核,对其数据的访问权限进行认证,同时将验证相关信息传递给日志管理模块,记录日志,验证通过后转入数据库节点管理模块;

步骤A3:数据库节点管理模块根据数据存储的目的地址确定访问的数据库节点;

步骤A4:数据请求调度模块查找空间数据缓存区,发现数据未命中即未有请求的数据,将数据请求发送至数据统一访问口模块;

步骤A5:数据统一访问接口模块根据数据源地址、数据类型,调用相应的数据源驱动程序读取多源异构数据,并通过空间数据转换模块进行空间数据模型转换,转换为统一数据模型后,存入到数据缓冲区中;

步骤A6:数据预处理模块对数据进行简单的质检,如检查多边形是否闭合、多边形是否有交叉点、空间数据是否一致等;

步骤A7:数据统一访问接口模块将预处理后的数据通过空间数据存取模块录入到对应的Oracle数据库节点中,完成数据的存取。

其流程如图1:1→2→3/4→5→11→6→8→6→11→9→11→6→3/7。

所述基于Oracle的多源异构空间处理方法,包括以下步骤:

步骤B1:数据管理层接收到数据应用层数据请求后,获得请求数据的基本信息和数据用户的基本信息等;

步骤B2:用户权限角色认证模块对用户角色和数据的访问权限进行认证并记录到日志管理模块中;

步骤B3:数据库节点管理模块根据请求数据的基本信息确定访问的数据库节点信息;

步骤B4:数据请求调度模块查找空间数据缓存区,发现缓存区未有请求的数据将发起数据请求;

步骤B5:数据统一访问接口模块根据数据源地址、数据类型,通过数据库操作模块获取所需数据,存入到数据缓冲区中,并将访问数据库的操作信息写入到日志管理;

步骤B6:空间数据处理模块对数据进行过滤、空间运算、分析等操作,获得请求数据结果集存入到数据缓存区,如果请求的是多个数据库节点或多种数据类型时,如进行多个图层空间分析、矢量与栅格数据叠加分析等,还需进行空间数据的预处理如空间坐标转换、数据校准等,最终将处理结果放入到数据缓存中;

步骤B7:数据请求调度模块将数据结果集返回至上层应用,完成操作。

其流程如图1:1→2→3/4→5→11→6→3/7→6→11→10/9→11→5。

所述基于Oracle数据库的多源异构空间数据流转方法涉及全局Oracle数据库与局部空间数据库中的数据交换,其框架图如图2所示:

Oracle全局数据库接受用户请求,空间数据引擎中的数据统一访问接口根据数据源地址、数据类型,调用相应的数据源驱动程序从局部空间数据库中读取多源异构数据,通过空间数据转换接口将数据转换为本发明提出的统一数据模型,进行空间数据一致性检查后,将处理后的数据录入到Oracle数据库中,完成数据的存取,整个过程对于用户来说是透明的。

对数据进行分析时,空间数据引擎对数据进行过滤、空间运算、分析等操作,获得请求数据结果集存入到数据缓存区,如果请求的是多个数据库节点或多种数据类型时,如进行多个图层空间分析、矢量与栅格数据叠加分析等,还需进行空间数据的预处理如空间坐标转换、数据校准等,最终将处理结果放入到数据缓存中。

步骤A5中,所述统一数据模型包括统一矢量数据存储结构和统一栅格数据存储结构,统一矢量数据存储结构如图3所示,统一栅格数据存储结构及模型如图4/5所示。

如图3所示,本发明提出的Oracle全局数据库中矢量数据存储关系表包括元数据表、空间数据索引表、空间参考表等,下面分别介绍:

矢量数据的空间几何信息在Oracle中存储支持两种方式:一种是以WKB的形式存储在BLOB对象中;另一种是采用Oracle Spatial扩展模块,将空间几何信息转化为SDO_GEOMETRY对象进行存储。

因此,统一矢量数据存储结构包括基于BLOB对象存取方式的矢量数据存储结构和基于SDO_GEOMETRY对象存取方式的矢量数据存储结构。

如图3所示,基于BLOB对象存取方式的矢量数据存储结构的关系表包括矢量元数据表、矢量空间索引表、矢量空间参考表和矢量空间数据表。

基于SDO_GEOMETRY对象存取方式的矢量数据存储结构的关系表包括空间元数据表(SDO_GEOM_METADATA)、空间坐标系统表(SDO_COORD_SYSTEM)、空间索引信息表(SDO_INDEX_INFO)、空间索引元数据表(SDO_INDEX_METADATA)和矢量空间数据表,采用Oracle Spatial扩展模块管理矢量空间数据需要对SDO_GEOM_METADATA(空间元数据表)、矢量空间数据表进行维护和操作,同时Oracle Spatial会自动维护SDO_INDEX_INFO(空间索引信息表)、SDO_INDEX_METADATA(空间索引元数据表)以及SDO_COORD_SYSTEM(空间坐标系统表)等视图。

空间元数据表主要描述图层空间数据的空间几何类型、维度、空间坐标范围、空间坐标参考等基本信息,用于数据库内各空间数据基本信息的查询;矢量空间数据表主要描述空间数据的属性信息、空间几何信息,是空间数据的实际载体,包含空间数据唯一标识、各属性字段、几何信息字段;矢量空间索引表主要描述每个要素的唯一标识和空间范围,该逻辑关系表可以用作索引亦可用于创建四叉树、R-Tree等空间索引或自定义索引,其包含空间数据唯一标识以及每个要素的空间范围;矢量空间参考表主要描述各种空间坐标系的定义及描述,主要用于坐标系统的转换,以及空间数据坐标的校准和查询,其包括SRID、坐标系统类型、坐标系统的定义。

本发明提出的,所述统一栅格数据存储结构如图4所示:

结合栅格数据的特点以及在实际应用中的需求,发明采用先按波段分层、再层内分块、最后构建金字塔的思想,设计了具有支持多种栅格数据格式、易于远程存取、提取检索快捷的逻辑存储结构。

所述统一栅格数据存储结构包括:提取栅格数据元数据信息,生产栅格元数据信息表;按照波段对栅格数据进行抽取,并形成波段信息表;对每一波段进行分块,块大小根据实际需求指定,一般默认分块为256×256像素大小,每一块作为一个Blob字段数据存储在栅格数据表中;根据实际需求选择适当的重采样算法,生成影像金字塔,形成金字塔信息表;对生成的金子塔数据采取上述类似方法,先按照波段分层,同一波段内再分块,生成金字塔数据表。

所述统一栅格数据存储结构的关系表如图5所示:

所述统一栅格数据存储结构的关系表包括栅格信息表、波段信息表、金字塔信息表、栅格数据表、金字塔数据表,其中,RASTER_ID作为栅格数据的唯一标识,把相关表进行关联。其中,栅格信息表主要描述了栅格数据波段、像素、空间信息等元数据信息,便于对栅格数据的查询、统计、存取以及格式转换。金字塔信息表主要描述金字塔所属波段号、金字塔级数以及构建金子塔进行块采样的大小等基本信息,主要用于金字塔信息的提取和查询。栅格数据表主要描述栅格数据所属的波段、所在波段中块的位置、块的空间范围信息以及数据块实体。金字塔数据表主要描述金字塔数据所属波段、所属级别、在该级别所属块位置、块的空间范围以及数据实体。可以看出,本发明提出的栅格数据存储模型较完备地存储了栅格数据的基本信息,可以方便的抽取波段信息、快速查找定位空间范围内的栅格数据。

图1步骤4中,所述“数据请求调度模块”包括如图6所示矢量数据查询检索流程及根据本发明所建立的统一栅格数据存储结构匹配的栅格数据查询检索流程。

对于空间数据的索引,Oracle Spatial提供了R-Tree索引机制,对空间数据具有良好的空间查询能力。为了提高索引机制的可扩展性和灵活性,同时兼顾以Blob和SDOGeometry存储的情况,本发明设计了基于Oracle的二级索引机制,可以有效兼容不同存储方式的空间数据检索。

基于统一矢量数据存储结构的矢量数据查询检索方法,包括以下步骤:

步骤C1:对于基于BLOB对象存取方式的矢量数据存储结构的空间数据,建立空间索引后,能够直接对BLOB对象进行精确的空间查询;

步骤C2:对于基于SDO_GEOMETRY对象存取方式的矢量数据存储结构的空间数据,首先对矢量空间索引表或是建立的索引文件,对最小包围框(Minimizing BoundingRectangle,MBR)进行空间查询,初步筛选出FID结果集;

步骤C3:根据初步筛选出的FID结果集,去数据库提取对应要素;

步骤C4:对提取的要素与空间过滤条件进行空间几何运算,进行几何关系的精确查询,得出满足空间过滤条件的最终结果。

基于统一栅格数据存储结构的栅格数据查询检索方法,包括以下步骤:

步骤D1:根据栅格数据大小及栅格的地理范围,计算栅格数据的cell(单个像素代表的实际地理范围)大小。

步骤D2:根据请求的地理坐标范围,计算当前请求栅格数据的大小。

其中,reqx、reqy分别表示请求的栅格数据的长度和宽度(栅格像素数),filterminx、filtermaxx、filterminy、filtermaxy表示请求的地理范围的最小x坐标值、最大x坐标值、最小y坐标值、最大y坐标值,cellx,celly分别表示栅格数据一个像素点能够表示的地理坐标x维度的大小和y维度的大小。

步骤D3:计算当前视窗范围内的比例尺scale,找到与比例尺最近一级金字塔级别i。

其中,scale是当前视窗比例尺,winx、winy分别为当前视窗的宽和高度(屏幕像素数),pyramidi为第i级金字塔的比例尺,S为各级金字塔比例尺集合,level为金字塔级别总数,pyramidmin为最接近scale的一级的金字塔的比例尺。

步骤D4:根据金字塔级别,查找该级金字塔在某一波段内块的位置。

其中,blockx、blocky分别表示栅格数据某一波段中切割块的长度和宽度(栅格像素数),tileminx、tileminy、tilemaxx、tilemaxy分别为所请求的块号的最小行号、最小列号、最大行号、最大列号,reqminx、reqminy、reqmaxx、reqmaxy分别标识请求的地理范围的最小x坐标值、最小y坐标值、最大x坐标值、最大y坐标值,imgminx、imgminy分别表示栅格数据地理范围的最小x坐标值、最小y坐标值。

步骤D5:按照块号请求数据后,对栅格边界的块进行块内查找,得到最终查询的栅格数据实体,本发明不再赘述。

实施案例

申请人基于NewMap软件空间数据库引擎API,利用上述技术开发了Oracle数据驱动引擎(以下称为NewMap SDE,简称NMSDE),空间数据的几何信息采用SDO_GEOMETRY对象存储,与ArcSDE(空间数据几何信息采用ST_GEOMETRY对象存储)在相同的计算机(CPU 8核3.6GHz、4G内存、100M以太网卡)、相同的网络带宽(百兆以太网)、相同的Oracle数据库服务器(CPU 8核2.40GHz、16G内存、100M以太网卡)下进行存储与查询效率测试。

试验数据采用OpenStreetMap(OSM)提供的2016年3月、亚洲地区日本、格式为Shapefile的矢量数据,数据大小3.29GB,共8个图层,其中点图层2个,线和面图层各3个;栅格数据采用的是3个波段18915×15772的TIFF格式影像数据TIFF01(0.874GB)、3个波段21340×26284的IMG格式影像数据IMG01(1.653GB)和1个波段的30994×72079的TIFF格式的影像数据TIFF02(2.182GB),测试结果如下所示。

表1矢量数据存取效率对比

从表1中可以看出,NMSDE对矢量数据的存取效率整体要优于ArcSDE,特别是数据量越大,如线数据(roads)、面数据(buildings),NMSDE导入数据效率优势越明显。对于栅格数据导出,本发明基于NewMap数据引擎API,通过SQL语句分批将SDOGeometry对象读出,利用NewMap数据库引擎将其转换成NewMap所需内存几何对象,直接导出到Shape文件中,可以看出NMSDE效率略优于ArcSDE。

对于栅格数据的导入效率,本发明分别采用了128×128、256×256、512×512块大小(像素大小)对栅格数据进行分割导入,在导入过程中均未生成金字塔,并且对数据未进行任何压缩(在实际应用过程中,可针对用户需求对数据进行有损或无损压缩),其中ArcSDE不支持512×512分块大小,本发明未对此种情况进行测试。从图7a中可以看出,NMSDE的栅格数据导入效率优于ArcSED,并且随着分块大小的递增,入库效率也有明显提升,如512×512分块优于256×256分块、256×256分块优于128×128分块。对于栅格数据导出效率测试,如图7b所示,在相同分块大小的情况下,ArcSDE性能略优,主要原因是ArcSDE对栅格数据进行了压缩,数据传输量明显减少,但是当NMSDE采用分块大小为512×512时效率最好,原因是随着栅格数据分块的递增,单次SQL通信过程中数据传输量增大,减少了与数据库通信次数,降低了通信代价。

对于空间数据的查询效率测试。本发明对空间数据选取同一地理范围内的数据,分别对NMSDE和ArcSDE进行测试。如表2所示,对于矢量数据查询效率NMSDE略优于ArcSDE,如图8所示,对于栅格数据查询效率NMSDE优于ArcSDE,并随着分块大小的递增效率越高,在分块大小为512×512时,效率最高。

表2矢量数据查询效率对比

本发明将成熟的关系数据库空间数据存储与空间数据库引擎技术结合,通过建立一体化的矢量、栅格数据存储模型并优化空间数据检索机制,集成整合分布式存储的各空间数据库中的空间数据,实现多源异构数据的数据流转。基于本发明技术所开发的Oracle数据驱动引擎NMSDE,其存储与查询效率测试均优于ArcSDE。

上面对本发明的较佳实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1