戴建旺,白晓飞
(1.中国地质大学信息工程学院,湖北 武汉 430074;2.中国土地勘测规划院,北京 100035)
第二次全国土地调查国家级数据库管理系统建设是第二次全国土地调查工程的重点工作,其目标是建设第二次全国土地调查国家级数据库管理系统,实现国家对第二次全国土地调查成果的集中管理,为国土资源宏观规划和管理决策提供准确、翔实的土地调查成果数据,建立长效的数据上报和快速更新机制,保持土地调查数据库的现势性,实现国家、省、市、县4级土地调查数据库的互联互通和同步更新。
第二次全国土地调查国家级数据库管理系统主要存储第二次全国土地调查形成的全国农村土地调查数据以及相关影像等数据,同时也包括第二次全国土地调查完成后每年的年度更新的土地调查矢量数据和影像数据等更新数据。主要数据内容包括:矢量数据、DOM数据、DEM数据、元数据和其他文档类数据。
第二次全国土地调查产生的数据量十分巨大,据估算近100TB(DOM影像数据不小于55TB,DEM数据不小于10TB,土地调查矢量数据约2—5TB,文档及其他数据约为0.5TB),加上备份数据约200TB,并且数据量将会逐年递增。这些数据内容复杂,种类多样,既有矢量数据也有栅格数据,涵盖县、市、省、国家多种尺度。目前的海量数据存储和管理技术还不能适应这样的需求,急需加强研究,确保第二次全国土地调查国家级数据库管理系统建设项目的顺利完成。
国内外涉及海量数据存储与管理的研究较多,但主要关注于存储软硬件设备,涉及海量空间数据存储的较少。李圣伟[3]提出将大数据量的影像数据以BLOB的方式存储在Oracle中,但没有涉及空间数据的空间索引技术研究。汪超亮[4]等对基于文件系统的海量遥感数据目录文件系统进行研究。陈建明[5]等对基于SQL Server的三维遥感影像数据库影像数据存储管理技术进行研究,探讨了分层金字塔模型应用效果。
目前国内外海量影像数据存储管理技术主要有三类:基于文件系统的存储管理技术、基于基础GIS平台软件的存储管理技术和基于Oracle Spatial GeoRaster的存储管理技术,但这些技术均离国家级数据库管理系统的建设需求有一定的差距。基于文件系统和基于Oracle Spatial GeoRaster的存储管理技术在数据安全、并发共享以及效率等方面不能满足土地调查数据的管理和应用需求;基于基础GIS平台软件的存储管理技术是把影像数据以BLOB字段的方式存进商用数据库软件中,在应对海量数据管理等方面的效率不能满足土地调查数据的管理和应用需求。海量矢量数据存储管理技术主要有两类:基于基础GIS平台软件的存储管理技术和基于Oracle Spatial的存储管理技术,基于基础GIS平台软件的矢量数据存储管理技术是传统、常用的技术,但面对海量矢量的并发查询、检索时,效率较慢,不能满足应用需求;基于Oracle Spatial的矢量存储管理技术的海量矢量并发查询、检索效率较高(可以利用Oracle的集群技术),但其空间应用工具又较少,也不能满足应用需求。因此需要融合Oracle Spatial和基础GIS平台软件的共同优势,研究如何存储组织海量矢量数据,以满足国家级数据库管理系统建设需求。
2.1.1 ArcGIS影像存储[2]地理数据库Geodatabase是ArcGIS自带的数据格式。ArcGIS 9.x版本包含三种地理数据库:基于MicrosoftAccess的个人地理数据库,文件地理数据库和ArcSDE地理数据库。
个人地理数据库和文件地理数据库是为个体用户和小型项目设计的。ArcSDE地理数据库具有可扩展性,专门为从中等级别到企业级应用这样的较大规模应用设计的。
在企业级地理数据库中,管理地理数据的任务由ArcGIS和所使用的RDBMS共同完成。在数据存储层,RDBMS软件提供了一个简单而正规的数据模型来存储和管理表格中的信息。在RDBMS中,企业级地理数据库的图表以ArcSDE Repositary这样一种表集的形式得到了延续。与数据存储和检索相关的部分是由地理数据管理中的简单表格和特定方面来实现的,比如基于磁盘的存储、属性类型的定义、查询处理以及多用户事务处理,这些都是由RDBMS来运行的。
ArcSDE技术提供了中间件,作为地理信息系统的客户端与RDBM之间的网关,ArcSDE为空间数据服务,并确保了RDBMS对数据的访问和管理。ArcSDE技术是由以下几个组件联合实现的:可执行文件的目录,数据库(即ArcSDE库)中的一组表格和存储程序,以及可选择的服务。
2.1.2 Oracle影像存储 Oracle影像存储由Oracle Spatial模块来实现。Oracle Spatial包括一个可以原生管理Oracle数据库中的地理参照栅格数据的数据类型,这些栅格数据包括人造卫星图像、遥感数据和网格化数据。Oracle Spatial的GeoRaster特性提供了图像的地理参照,用于元数据管理的XML模式,以及如金字塔分层、分块和交叉等基本操作。可以使用它来存储、索引、查询、分析和提供栅格图像和网格化数据及其相关元数据。GeoRaster提供了Oracle空间数据类型和一个对象关系模式。可以使用这些数据类型和模式对象来存储多维网格层和栅格图像,这些网格层和栅格图像可以对应到地球表面或本地坐标系统中的位置。GeoRaster还支持行业标准的压缩技术,包括JPEG基线(有损)和DEFLATE(无损)。
GeoRaster数据在Oracle的文档中定义为栅格影像(raster image)和网格数据(gridded data),以及与它们相关联的元数据(metadata)。GeoRaster提供了Oracle Spatial的数据类型和实体—关系模式(object-relational schema)。用户可以直接使用这些数据类型和模式对象来存储带有地理坐标的栅格数据。GeoRaster还提供了一系列丰富的配套函数以支持影像处理。
从目前情况来看,ArcGIS和Oracle Spatial的存储特点不能满足第二次全国土地调查国家级数据库管理系统的建设需求,即如何在3s之内读取并显示任意范围内的影像数据。其技术原因是没有很好地解决数据存块的大小与数据浏览需求的关系,即:(1)在满足浏览范围需求的前提下尽可能减少数据获取的冗余;(2)在既定的数据获取容量下,尽可能地减少磁盘读取次数;(3)取得前两项要求的综合均衡;(4)在不影响目视浏览效果的情况下进行数据压缩,节省存储空间。
2.2.1 总体设计 影像数据存储访问技术由Oracle数据存储、影像数据服务程序、影像数据目录服务程序、影像入库工具、二维浏览组件、三维浏览组件组成一个完整的影像存储与访问解决方案。其中各个部分主要完成的功能为:(1)Oracle数据存储,提供以瓦片为最小影像数据存储单元的影像数据组织形式,以及高效、简单、标准的数据提供;(2)影像数据服务程序,采用标准Http请求与访问格式,将Oracle数据库中存储的海量影像数据对外发布;(3)影像数据目录服务程序,为影像数据二维、三维浏览客户端提供影像数据组织形式、影像元数据信息、居于角色的影像浏览控制等;(4)影像数据入库工具。将原始影像数据按照既定的数据处理标准进行标准化处理,并存储进Oracle数据库中,保证不同数据源、格式、波段的影像数据无缝浏览;(5)影像数据二维浏览组件。提供影像数据的二维浏览模式;(6)影像数据三维浏览组件,提供影像数据的三维浏览模式。影像数据存储访问技术总体框架如图1所示。
图1 影像数据存储访问框架图Fig.1 Framework of image data storage and access
2.2.2 存储组织设计 (1)存储组织。影像数据的存储采用纯Oracle表格的方式,与ArcGIS和Oracle Spatial没有关系,采用这种方式存储瓦片数据,可以有效简化影像的存储模型,提高数据检索与访问效率。这种存储模式还可以使影像数据的备份、恢复与迁移更加容易操作,其基本存储结构如表1。
对于多源、多尺度的影像数据,按波段、分辨率、区域的不同进行规划,分表、分块进行存储,而且金字塔的每一级都被分块存储,默认推荐分块大小:512×512像元,允许分块访问提高数据显示效率,也允许局部构建和更新。
(2)金字塔构建。为了提高海量影像数据的实时缩放显示速度,快速获取不同分辨率的影像信息,需要对原始数据生成影像金字塔,并根据不同的显示要求调用不同分辨率的影像,达到快速显示漫游的目的。影像金字塔就是由原始影像开始,建立一系列影像级别,各级影像反映详尽程度不同。影像金字塔结构的小同层具有不同分辨率的特点,在对影像数据浏览时,需要根据当前显示的分辨率抽取相应金字塔层的数据,以实现影像数据的快速浏览。
表1 基本存储结构表Tab.1 Basic storage structure
(3)压缩与解压缩。对影像数据进行压缩,不仅可以有效减少磁盘存储空间,还可以提高数据检索的效率、大大缩短网络传输的时间。影像的压缩从数据的失真度分,一般有有损与无损压缩两大类。无损压缩可以保持原始影像数据不会有任何丢失,而有损压缩则会不同程度的丢失一些信息。无损压缩的压缩比一般很低,平均在2:1左右,而有损压缩则可以在获得很高的压缩比的情况下保证尽量少的信息损失。
2.3.1 试验方法 对新的存储模式分B/S(WMS接口、Http接口)和C/S(ArcEngine接口、ArcMap)两种,通过全图、放大、缩小、漫游操作以及矢量图层进行叠加等方法进行数据调用测试。
2.3.2 试验小结(1)B/S接口集成测试。WMS接口能在分别在ArcCatalog、ArcMap,以及测试系统中正常使用,并且浏览效率基本能够达到预期3s/屏的要求;Http接口能够在信息中心的测试系统中正常使用,并且浏览效率基本能够达到预期3s/屏的要求;获取影像列表接口能够正常返回指定范围的全部影像瓦片数据的列表,以及各瓦片相应的Worldfile文件(注:Worldfile文件为ArcGIS系列中为每幅影像定义的用于描述影像坐标范围和精度的文件);浏览器返回的XML格式的影像文件列表包含了用于影像进一步拼接处理的必要信息;获取指定影像接口能够正常获取影像列表中的各影像数据,及其相应的Worldfile文件。
(2)C/S接口集成测试。ArcEngine接口能够通过当前浏览范围正确的获取负荷范围要求和级别的影像数局部刷新平移工具能很好的实现影像的局部刷新浏览。接口的使用效果和效率满足要求;ArcMap中能很好的实现对影像数据的浏览,局部刷新平移工具能正确的实现影像的平移局部刷新效果。影像加载及浏览效果满足要求。
第二次全国土地调查国家级数据库将存储全国2859个县的土地调查数据成果,数据量将达到3TB左右。如何将全国的土地调查数据统一管理,同时,达到数据浏览、查询、制图以及数据更新的性能要求,是急需攻克的技术难题之一。
第二次全国土地调查国家级数据库将部署于中国土地勘测规划院的数据中心,在满足数据中心总体规划框架下需要将数据管理和业务应用相分离,以便于数据为不同的应用提供服务。鉴于此,矢量数据采用开放的Oracle Spatial进行统一存储。
通过对数据量以及数据库存储管理应用需求的分析,项目组提出了分区存储和分县存储两种模式可对数据进行存储与管理,最终采用哪种存储模式进行矢量数据的存储,需要进一步的实验和论证两种存储模式在数据存储、业务应用等层面的技术可行性和优劣点,以实验为基础来最终确定国家级数据库矢量数据的存储模式。
3.1.1 分区存储模式 分区存储模式主要是采用数据库的分区(Partition)技术,通过分区表对空间数据进行存储和管理的一种存储模式。针对于国家库管理的矢量数据,每个图层对应一个分区表,共有25个分区表(土地利用数据库标准为29个图层,除去4个栅格数据图层)。每个分区表需要建立2859个分区(对应于2859个县)以及一个默认(Default)分区。为了均衡磁盘的I/0,可以将不同的分区存放在不同的磁盘内,同时,为了提高数据的访问性能,可以针对空间数据存储字段建立全局索引或本地(分区)索引。建库流程如图2所示。
图2 分区模式数据入库流程Fig.2 Data loading process in partitioned mode
分区存储模式的优势为:将2859个县的图层在物理上统一成一套图层,查询、浏览、统计方便;分区表技术从Oracle 8i开始,得到较广泛的应用,技术成熟稳定。但也存在一定劣势:数据库操作技术水平要求比较高,不易于维护;每次入库需要进行数据导入(Trans)分区以及分区表索引的处理,存在大量的数据库维护工作量,也比较耗时,如分区表索引若为全局索引,则每导入一次数据就需要重建全局索引,若为本地(分区)索引,也需要在导入数据时建立本区的索引;分区存储模式要求数据必须是统一的空间参考;同一个分区表的各县数据的图层属性结构、数据记录的质量要求比较高,必须统一。
3.1.2 分县存储模式 分县存储模式是将矢量数据按分县分图层的方式进行管理的一种存储模式。现有的分县模式实际为分县存储+动态调度视图,动态调度视图主要解决了跨县、跨区域组织问题。针对于国家库管理的矢量数据,每个县为25个图层,共2859个县,对应于Oracle数据库来说共25×2859=71475张空间数据表格。入库时即对空间数据存储字段建立R-Tree索引。
采用分县存储模式,数据入库后即可浏览、查询、统计,具体优势为:数据入库后的维护工作量比较少;各县独立存储,数据的独立性相对较好;分县+动态调度视图可以很好的实现多县(跨县)浏览和单县浏览。劣势主要为:数据表比较多;海量数据存取效率有待验证。
重点对两种不同存储模式下的数据浏览、查询、数据更新以及数据库维护等功能进行测试,确定最优方案。
3.2.1 试验方法 对两种不同模式下的不同范围(分县、多线、全国)试验数据进行浏览、查询和数据更新等分组测试(表2)。
3.2.2 试验结果 试验结果如表3、4、5所示。
表2 测试矢量数据说明Tab.2 Specification of testing vector data
3.2.3 试验小结 从实验结果来看,数据浏览、查询、更新在性能上,分县存储模式略优于分区存储模式:(1)数据浏览,分别在不同的显示比例下,对县内、跨县(4县)的多个图层进行数据浏览,在数据浏览的效率上分县模式要比分区模式快;(2)数据查询,在两种模式下分别对单县和全国进行同一条件查询,同时要求返回相同的记录数,基于分区模式的图层属性查询较基于分县模式图层属性查询约慢100%;(3)数据更新。①单图层多用户并发更新,在相同硬件环境、网络环境、客户端数量(10个)、更新包(10组)的环境下对地类图斑层(DLTB)进行更新,分县模式的更新所用时间(平均时间25.7min/县)略优与分区模式的更新所用时间(平均时间26.96min/县),②多图层多用户并发更新,在相同硬件环境、网络环境、客户端数量(10个)、更新包(10组)的环境下对(DLTB、JBNTBHPK、JBNTBHTB、XZDW、XZQ、XZQJX)进行更新,分县模式比分区模式快2.43min/县。
表3 多县数据大范围浏览测试结果表Tab.3 Testing results of large range data browsing in various counties
表4 不同模式查询结果表Tab.4 Query results in differentmodes
表5 数据更新测试结果表Tab.5 Results of data updating test
针对第二次全国土地调查国家级数据库的数据存储模式,技术上两者都可行,但在数据管理模式、数据访问性能、数据库维护工作量以及国家库系统的功能开发工作量上,分县存储模式要优于分区存储模式。因此,第二次全国土地调查国家级数据库宜采用分县模式进行矢量数据存储。
通过对海量空间数据存储和管理关键技术的试验研究,解决第二次全国土地调查国家级数据库管理系统建设项目中的数据存储及应用的技术瓶颈。(1)设计、开发并验证了独立于GIS和数据库平台软件的、基于数据库方式的海量影像数据存储技术;(2)设计、开发并验证了基于Oracle Spatial的海量矢量数据存储技术解决方案。但在海量矢量数据三维浏览、三维交互式操作的效率和效果等方面仍需进一步研究。值得提出的是,随着GIS和数据库技术的发展,GIS和数据库平台软件也将不断完善和发展海量空间数据存储技术,第二次全国土地调查国家级数据库管理系统也会在此基础上进一步完善数据存储策略,更好地为全国“一张图”工程提供数据和技术支撑。
(References):
[1]Oracle中国公司.Oracle Spatial技术白皮书[Z].
[2]ESRI中国公司.ARCGIS系列技术文档[Z].
[3]李圣伟,王伟,白亮.长江河道信息系统海量数据存取机制研究[J].人民长江,2008,(7):60-61,88.
[4]汪超亮,李传荣,贾彬.新型遥感卫星数据目录服务系统地研制[J].遥感学报,2007,11(3):385-389.
[5]陈建明,孙卫东.三维遥感影像数据库系统的研究与实现[J].新疆地质,2005,23(3):308-310.