遥感卫星图像数据信息浏览查询技术优化与实现

   2024-01-18 互联网1240
核心提示:  摘要:遥感卫星图像数据的浏览查询系统向遥感数据用户提供卫星原始数据以及各级产品数据的查询服务。然而随着入库遥感数据的

  摘要:遥感卫星图像数据的浏览查询系统向遥感数据用户提供卫星原始数据以及各级产品数据的查询服务。然而随着入库遥感数据的日益增多,当多用户并发浏览查询时,系统出现查询响应时间过长的现象。文章从数据库服务器、应用服务器以及应用程序方面对浏览查询系统进行了性能调整,并通过测试证实了优化方法的可行性。

  关键词:遥感卫星;浏览查询;Oracle

  Abstract:Browse and Query System of remote sensing satellite image data supplies query service for remote sensing satellite us-ers to inquire and search raw data and each level product of satellite image. However, with more and more remote sensing data information in the database, when many user’s query concurrently occurred, the system requires considerably longer time to re-sponse. Some optimization technologies were put in practice from database server, application server and application program,and tests proved efficiency of these optimized techNIques.

  Key words:remote sensing satellite; Browse & Query; Oracle

  1 引 言

  遥感卫星图像数据信息浏览查询系统[1]作为遥感卫星综合信息处理系统中不可或缺的重要组成部分,不仅为数据生产提供直接的服务,而且为产品生产提供所需要的卫星参数。同时,它也为地面系统中的其他用户提供服务,是整个地面系统中需要面对直接用户种类最多、使用频率最高的系统。然而,随着入库的遥感数据日益增多,数据库负荷较重,响应时间过长,已经达不到用户的使用需求,因此必须对查询系统实施优化以保证用户查询操作的正常进行。

  2 遥感卫星图像数据信息浏览查询系统

  遥感卫星图像数据信息浏览查询系统主要提供信息检索和查询功能,它向用户提供了一个便于浏览、查询多遥感卫星原始数据信息和各级图像产品信息的综合浏览查询平台。用户通过浏览器提供的各种查询条件组合进行查询,查看浏览图以及各级图像产品的信息并下达产品生产订单。查询方式包括元数据组合查询以及地图交互查询。元数据组合查询是根据输入的信息,如卫星类型、产品级别、景起始和结束时间、空间范围、云判信息等进行查询。而地图交互查询是调用GIS中矢量化操作,对目标覆盖区矢量图进行放大/缩小操作,并根据用户勾出的区域进行查询,查询界面如图1所示。

     系统采用J2EE平台基于B/S结构开发,可以发布到因特网或内联网,供不同地域的用户进行远端数据查询和产品订购。系统网络拓扑结构如图2所示,其中生产监控子系统和存档管理子系统属于外部系统。系统包括两台服务器和若干台PC机,服务器作为本系统的应用服务器和数据库服务器,而PC机用来作为本系统的客户端。系统在图像数据量不大的情况下,发布在内联网上使用可以获得较高的查询检索效率。然而,随着时间的积累,所获取的遥感数据逐渐增多。在进行数据检索时,系统会出现查询业务操作时间长、应用服务器无响应、数据库服务器内存资源紧张等现象,性能已达不到用户的使用需求。尤其是发布在因特网上供多用户并发查询时,系统的响应时间将会更长。为了充分利用现有的软硬件资源,减少用户查询的等待时间,本文从数据库服务器、应用服务器和应用程序三个方面的性能调整对系统进行了查询优化。

  3 数据库服务器的性能调整

  Oracle数据库服务器是整个系统的核心,它的性能高低直接影响整个系统的性能。而数据库服务器端的优化主要表现在如下几个方面。

  3·1 表分区

  遥感数据区别于其他类型图像数据的最大特点之一是数据量巨大。针对这种大数据量表,Oracle提出分区管理技术[2]。通过将大表和索引分成可以管理的小块,为管理大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理技术提高了查询性能。同时,通过屏蔽故障数据的分区,增加了系统的可用性。由于数据库中原始数据信息量最大,根据原始数据信息表的特点,按成像开始时间进行范围分区,每个季度为一个分区。新的数据可以装载到新的分区中,不需要的历史数据也可以很方便的删除。分区后,Oracle根据查询条件会自动将扫描范围缩小到一个或几个表(索引)分区上,同时对大表的查询、增加、修改等操作也可也以分解到表的不同分区来并行执行,提高了执行效率。

  3·2 文件分布

  通过在不同磁盘上分布物理文件可以最大限度地提高I/O性能,减少磁盘争用。优化措施主要体现在:

  (1)将表数据和索引数据分开表空间存储将表数据和索引数据存放在不同的表空间中,并在物理层面将这两个表空间的数据文件放在不同的物理磁盘上,可以避免因表数据和索引的I/O操作而产生的影响系统性能的I/O竞争。拥有独立的表空间,意味着可以独立地为表数据和索引数据提供独立的物理存储参数,而不会发生相互影响[3]。并且还会带来数据管理和维护上的方便,如我们在迁移数据库时,为了降低数据大小,可以只迁出表数据的表空间,在目标数据库中通过重建索引的方式就可以生成索引数据。

  (2)为LOB类型字段指定特定的表空间

  为了防止数据库增长过快,浏览的图像数据在存入数据库之前一般都要先进行压缩,选用JPEG格式,然后以Blob数据格式存储在数据库中。Blob类型数据是巨大的不定的二进制或者字符型数据。它的存储方式不同于普通的数据类型,对于普通类型的数据系统直接在用户定义的字段上存储数据值,而对于Blob类型数据,系统需开辟新的存储页面来存放这些数据,表中只存放LOB定位器。由于LOB类型的数据在物理存储结构的管理上和一般数据的策略不同,对于表中存在的LOB类型的字段,为其指定一个特定的表空间,以便灵活地设置其物理存储参数。

  3·3 查询方案

  在浏览查询系统中,查询操作在各种数据库操作中所占据的比重最大。当数据量累计到一定的程度时,全表扫描一次往往需要数十分钟,甚至数小时。如果采用比全表扫描更好的查询策略,查询时间可以降低到几秒。为了确定数据库执行一个查询所使用的访问路径,可以通过Oracle实用程序EX-PLAIN PLAN来生成解释计划。EXPLAINPLAN[4]是一个很好的分析SQL语句的工具,可以评估一个查询的执行路径,并且将结果输出到数据库中的PLAN TABLE表上,从而诊断查询语句是否存在瓶颈。

  4 应用服务器性能调整

  浏览查询系统的应用服务器软件是Tomcat ,Tomcat使用连接池加速处理数据库的连接请求。在Web应用中,大量的用户要并发访问数据库,并且进行频繁而短暂的数据库操作。然而创建和删除一个连接的代价都非常昂贵,连接池实现了数据库连接的共享,它是在网络客户和数据库之间建立的一种来管理所有连接的中间件。当客户需要访问数据库时,向连接池申请一个连接,执行数据库操作,然后释放这个连接,但连接池并不关闭空闲的连接,而是把空闲的连接继续提供给其他的客户。通过采用这种连接复用的策略,避免了数据库连接的频繁建立和关闭所消耗的系统资源。根据系统运行的实际情况,设置Tomcat连接池参数,可以充分利用CPU,使空闲时间保持最低,从而接受更多的请求。对于应用服务器Tomcat的优化还表现在JVM上,Tomcat本身不能直接在计算机上运行,还需要一个Java虚拟机(JVM)的支持。JVM有两个重要的参数需要根据系统运行的需求进行调整:JVM初始化堆的大小和JVM堆的最大值。通过实时监控当前JVM内存占用情况,对JVM参数进行调整,从而优化应用服务器的性能。

  5 应用程序的性能调整

  应用程序的调整可以从两个方面进行。

  (1)封装数据库操作

  其目的是隐藏java·sql包内的类,在编码中去掉核心的数据库操作代码,以杜绝直接数据库操作容易带来的资源未释放问题,同时也减少了数据库操作的编码量。编码中有很多程序访问数据库的情况,如果修改了数据库,所有的程序都要改动。解决的办法是把连接数据库的操作放进一个程序中,做成一个JavaBean进行封装。JavaBean技术是一种

  可重复使用且跨平台的软件组件,利用JavaBean封装事务逻辑,可以实现业务逻辑和客户端操作的分离,使系统具有更好的灵活性和适用性。

  (2)批量更新数据库

  数据库批量更新机制是通过一次调用,将整批更新命令打包后一起提交给数据库,数据库将一次处理所有的请求,这比将每一个更新逐一提交给数据库处理的性能要高得多。批量更新可以高速缓存已经预先优化并运行了的SQL查询,当它们被再次请求的时候,不必经历再次的优化预处理,因此不会消耗大量存。

  6 结束语

  使用性能测试工具HP LoadRunner对优化前后浏览查询系统进行并发查询性能测试。在10个并发用户查询时,优化后CBS的最大响应时间相比于优化前减小了71·89%,最小响应时间减小了54·65%,平均响应时间减小了67·85%;在20个并发用户查询时,优化后CBS的最大响应时间相比于优化前减小了84·88%,最小响应时间减小了34·51%,平均响应时间减小了78·86%;最大并发用户数由优化前的20个增加到优化后的558个。通过测试结果的对比,可以看出优化后的浏览查询系统查询响应时间和并发用户数都优于优化前,从而证实了优化方法的有效性。目前的查询系统只有GB级的数据存储量,随着遥感数据存储量达到TB级,仅在单数据库服务器上进行查询优化是不能够满足用户查询需求的,今后的研究方向将更加侧重于分布式数据库以及数据库集群技术。

  参考文献

  1 李璇,王风华·卫星遥感数据的浏览查询技术[J]·宇航学报, 2006,27(3):562~564.

  2 Abraham Silberschatz著,杨冬青,等译·数据库系统概念[M]·北京:机械工业出版社, 2000·

  3 Kevin Loney著,张立浩,等译·Oracle Database 10g完全参考手册[Z]·北京:清华大学出版社, 2006·

  4 谈竹奎,况志军编著·Oracle9i数据库管理员高级技术指南[M]·北京:中国铁道出版社, 2003·


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅