多源海量遥感数据分页查询策略的优化研究

2014-12-02 01:13徐故成崔宾阁
计算机工程 2014年8期
关键词:数据量数据源页面

徐故成,崔宾阁,2

(1.山东科技大学信息科学与工程学院,山东 青岛 266590;2.国家海洋局第一海洋研究所,山东 青岛 266061)

1 概述

随着Internet 的发展和遥感技术的成熟,遥感图像的数据来源越来越多,数据量急剧增长,呈现出海量和分布存储的特征[1],这对传统的遥感图像检索系统的查询效率带来严峻的挑战。分页是实现数据快速检索的手段之一,目前已被广泛应用在遥感数据检索系统中,如中国科学院对地观测与数字地球科学中心的存档卫星遥感数据目录服务系统、北京大学的遥感图像Web 发布系统等[2-3]。传统的分页方法包括用户界面分页方法和数据源分页方法。用户界面分页方法的核心思想是从数据库中提取所有满足条件的查询结果,在Web 服务器上对整个查询结果集执行分页操作以截取请求页;数据源分页方法的核心思想是在数据库服务器上实现截取请求页的分页操作,在Web 服务器上无需做分页操作[4]。

用户界面分页方法编程实现简单。由于结果集需要加载到Web 服务器内存中,在数据规模较小时对系统性能没有较大影响,在数据规模较大时将对Web 服务器和数据库服务器造成较大负担。数据源分页方法的分页操作是在数据库服务器上实现。数据库服务器和Web 服务器之间传输的数据量只是请求页的数据量,而一页显示的数据量通常只有几十条,有效降低了传输的数据量和Web 服务器的负担,一般由存储过程实现。存储过程保存在数据库服务器上[5-6],优点是查询速度快,但是只能对一个数据库中的数据进行分页操作。综上,用户界面分页方法受数据规模影响较大,而数据源分页方法通常只能查询单个数据源。

用户界面分页方法和数据源分页方法都难以实现对多个数据源的分页查询。当前的多数据源查询方法基本思想是利用网格等分布式计算技术将多个物理数据源整合为单个虚拟数据源,如俄亥俄州立大学的GRIDDB-Lite 中间件项目[7-8]、国防科技大学的数据网格系统GridDaen[9-10]等。上述工作虽然实现了分布式环境下大数据集的查询,但是没有研究分页查询的优化策略,存在查询速度慢、响应时间长的问题。为此,本文研究了多源海量遥感数据环境下分页查询的物理优化策略,其基本思想是减少分布式环境下各个数据源需要查询的数据量和通过网络传输的数据量,降低中间查询结果的处理时间和传输时间,从而提高遥感数据的查询效率。

2 多源遥感数据分布式查询模型

2.1 查询模型总体设计

多源海量遥感数据分布式查询模型由客户端、Web服务器、智能Agent 和数据源4 个模块组成,每个模块主要功能以及模块之间的交互关系如图1 所示。

图1 多源海量遥感数据分布式查询模型

(1)客户端

客户端是用户和查询系统交互的可视化接口,一般是浏览器,主要实现用户查询条件的输入和查询结果的显示。用户根据自己的需要选择不同的查询条件。

(2)Web 服务器

Web 服务器是Web 应用程序运行的容器。一方面通过HTTP 协议和客户端完成消息的交互,另一方面向智能Agent 发送SOAP 消息调用Web 服务,实现遥感数据查询。Web 服务器主要包含了查询条件组合、查询条件编码和页面内容解析等功能。

Web 服务器将用户在客户端中输入的所有查询条件进行编码组合,然后封装在SOAP 消息中发送给智能Agent。查询结果返回时,Web 服务器解析查询页面的内容,然后发送到客户端。

(3)智能Agent

智能Agent[11]是具有一定智能性的计算机程序。它能够代表人们在动态变化的环境中进行交互操作。在本文中,智能Agent 是整个查询系统的核心,它接收Web 服务器的查询请求,访问注册的所有数据源,获取满足条件的遥感数据。

(4)数据源

数据源是遥感数据的存储中心,它提供用于访问本地遥感数据的Web 服务接口。智能Agent 发送SOAP 消息调用这些Web 服务接口,实现多源遥感数据的分布式查询[12-13]。

2.2 智能Agent 设计

智能Agent 由查询预处理、查询处理和查询后处理3 个功能模块构成,如图2 所示。查询预处理模块解析来自Web 服务器的页面请求,查询处理模块访问所有数据源获取满足条件的记录集合,查询后处理模块负责记录片段的合并。当查询页面内容分布在多个数据源中时,每个数据源中的相关记录集合称为子页面。

图2 智能Agent 执行流程

(1)查询预处理

查询预处理模块经过参数解析和参数重组获得用户的查询条件,Web 服务器以SOAP 消息的形式发送页面请求,所有的查询参数封装在消息内部,参数解析即对SOAP 消息的解析,获得用户的查询参数。参数重组根据应用需求重新组合各个参数,获得与应用相关的SQL 语句。

(2)查询处理

查询处理模块是智能Agent 的核心功能模块,处理过程分为查询页面定位、查询条件重构和子页面查询3 个阶段。查询页面定位阶段利用页面转换算法将查询页面划分为多个子页面。查询条件重构阶段确定子页面内容所在数据源,重新构建查询条件,加入子页面的位置信息。子页面查询阶段将新的查询条件分发给相关数据源,进行分布式查询获得子页面内容。

(3)查询后处理

查询后处理模块负责对子页面查询结果的后续处理,分为子页面合并和页面内容编码2 个阶段。子页面合并阶段将查询处理阶段获得的所有子页面合并,组合成完整的页面。页面内容编码阶段将完整的页面内容封装到SOAP 消息中,回送给Web 服务器,完成页面响应过程。

3 多源遥感数据分页查询策略优化

由于用户查询的内容可能分布在多个数据源中,因此需要将用户查询的页面转换为相关数据源的查询页面集合。页面转换过程需要输入每个数据源中满足查询条件的记录总数。智能Agent 通过调用每个数据源的查询Web 服务接口,可以获取这些统计信息。

本节首先定义页面转换的基本概念,然后介绍页面划分规则,最后给出页面转换算法的具体实现。

3.1 基本概念

其中,ti对应单源查询表SQ 的第i 个数据元素,i 称为数据元素ti在单源查询表SQ 中的位序;N 表示单源查询表SQ 中的数据元素数目,由智能Agent 在查询页面定位阶段获得。

定义2(多源查询表) 多个数据源中满足查询条件的所有记录组成的有限序列,用线性表MQ 表示,线性表的数据元素来自于各个单源数据表SQ,表示为:

其中,SQj表示组成多源查询表MQ 的第j 个单源查询表;m 表示数据源个数;Nj表示单源查询表SQj中的元素数目;t'i表示多源查询表MQ 中的第i 个元素。为了建立单源查询表SQj与多源查询表MQ 中数据元素的对应关系,本文将单源查询表SQj表示为:

其中,tjk表示单源查询表SQj的第k 个元素。

已知每个单源查询表中的数据元素数目N1,N2,…,Nm,定义tjk和t'i的位序映射关系如下:

混合并购:混合并购是指两个经营活动不相关的企业发生的并购,目的是为了开拓别的市场,分散企业的经营风险,从而达到提升企业竞争力的效果。

(1)位序正映射

(2)位序逆映射:

定义3(多源查询表分页) 保持多源查询表MQ 中的各个数据元素的序偶关系不变,将多源查询表MQ 划分为若干个满足下列3 个条件的非空子集LP1,LP2,…,LPl:

其中,称子集LPi为多源查询表MQ 的第i 个逻辑页面;Card(S)表示有限集合的数据元素数目;pageSize表示逻辑页面大小;l 表示逻辑页面个数。

定义4(单源查询表α -β 划分) 以单源查询表SQ 中的第α 条和第α +β 条记录为分界点,保持单源查询表中的数据元素序偶关系不变,将查询表划分为满足下列3 个条件的子集PP1,PP2和PP3:

其中,称子集PPi为单源查询表SQ 的第i 个子页面。

3.2 单源查询表α-β 划分规则

页面转换算法的基本思想是将逻辑页面划分为多个子页面,每个子页面来自于一个单源查询表。根据定义2 中单源查询表和多源查询表的包含关系,以及查询表中数据元素的序偶关系,可以确定逻辑页面LPi与单源查询表集合满足下列3 种关系之一:

基于上述关系,本文定义了3 条单源查询表的α-β划分规则:

规则1 如果逻辑页面包含在单个数据源中,即LPi⊆SQj,则单源查询表SQj的αj为LPi第一条记录和SQj第一条记录在MQ 中的距离:

SQj的α-β 划分示意图如图3 所示。

图3 SQj的α-β 划分示意图

在这种情况下,用户查询的逻辑页面LPi=PPj2。

规则2 如果逻辑页面包含在2 个连续的数据源中,即LPi⊆SQj∪SQj+1,则单源查询表SQj的αj为LPi第一条记录和SQj第一条记录在MQ 中的距离:

单源查询表SQj+1的αj+1为LPi最后一条记录和SQj最后一条记录在MQ 中的距离:

SQj和SQj+1的α-β 划分示意图如图4 所示。

图4 SQj和SQj+1的α-β 划分示意图

在这种情况下,用户查询的逻辑页面LPi=PPj2∪PP(j+1)1。

规则3 如果逻辑页面包含在多个连续数据源中,即LPi⊆SQj∪SQj+1∪…∪SQj+k,则单源查询表SQj的αj为LPi第一条记录和SQj第一条记录在MQ中的距离:

SQj和SQk之间的单源查询表中的元素都是逻辑页面的内容,因此这些单源查询表不需要做α -β划分。

单源查询表SQk的αk为LPi最后一条记录和SQk-1最后一条记录在MQ 中的距离:

SQj和SQk的α-β 划分示意图如图5 所示。

图5 SQj和SQk的α-β 划分示意图

在这种情况下,用户查询的逻辑页面LPi=PPj2∪SQj+1∪…∪SQk-1∪PPk1。

根据上述3 种划分规则可以确定构成逻辑页面的子页面集合。智能Agent 将对每个单源查询表做α-β 划分,确定α 和β 参数,然后重构每个数据源的查询条件,最后调用每个数据源的Web 服务接口查询获得各个子页面。在查询后处理阶段将所有子页面合并为单个逻辑页面,传回客户端。

3.3 页面转换算法实现

算法 页面转换算法

输入 逻辑页面页码num,逻辑页面大小pageSize和智能Agent 查询获得的每个数据源中满足条件的记录数目N1,N2,…,Nm

输出 子页面集合SubPageSet

(1)计算逻辑页面LPnum的第一条记录和最后一条记录在多源查询表MQ 中的位序pageSize·(num-1)+1 和pageSize·num。

(2)计算每个单源查询表SQj的第一条记录和最后一条记录在多源查询表MQ 中的位序和

(3)根据定义2 描述的位序映射关系,以及逻辑页面LPnum第一条记录和最后一条记录在多源查询表MQ 中的位序,计算它们所在的单源查询表SQj和单源查询表SQk。

(4)如果k=j,则根据规则1 对单源查询表SQj做α-β 划分,SubPageSet=PPj2;如果k=j+1,则根据规则2 对单源查询表SQj和SQj+1做α -β 划分,SubPageSet=PPj2∪PP(j+1)1;如果k≥j+2,则根据规则3 对单源查询表SQj和SQk做α -β 划分,

(5)输出逻辑页面映射后的子页面集合SubPageSet,算法结束。

在算法中,问题的规模(数据源个数)为m。假设每一种数学运算执行一次所需的时间均是单位时间,通过分析每个步骤的计算过程,得出算法的最大时间耗费T(m)=2+2m+2m+2m=6m+2,因此该算法的时间复杂度为O(m)。

4 实验与分析

为了验证本文的分页查询优化策略在遥感数据分布和海量情形下的有效性,开发了一个海岸带遥感数据共享系统。该系统由3 台通过局域网互联的计算机组成,每台计算机的主频为3.0 GHz,内存为2.0 GB,操作系统为Windows XP。其中,2 台计算机作为数据源,安装了Tomcat 应用服务器、JVM 和Microsoft SQL Server 2000,存储了大约10 万条遥感图像元数据。每条元数据描述了一幅遥感图像覆盖的区域范围、拍摄时间、卫星名称和传感器类型等信息。所有遥感图像都是从中国资源卫星应用中心的网站下载,包括环境卫星(HJ-1A/B)遥感图像和中巴资源卫星(CBERS)遥感图像等。另一台计算机作为Web 服务器,安装了Tomcat 应用服务器、JVM 和IIS,部署了Agent 服务以及海岸带遥感数据共享系统网站。

为了比较页面转换算法在各种查询条件下的效率和稳定性,本文设计了2 种不同类型的查询条件,对应于遥感图像查询时最常用的2 种查询方式。第1 种查询条件是查询完全包含在某个区域范围内的遥感图像,此时图像的4 个顶点坐标都应该包含在用户划定的区域范围内。第2 种查询条件是查询全部或部分包含在某个区域范围内的遥感图像,即只要遥感图像一部分包含在用户划定的区域范围内,则该图像满足查询条件。显然第2 种查询条件下满足条件的记录数量要多于第1 种查询条件,但是由于查询执行过程复杂,查询时间也更长。

本文针对这2 种不同的查询条件做了2 组对比实验。在每一组实验中,固定图像查询的空间范围,反复扩大查询的时间范围,测试传统分页查询策略和本文的分页查询优化策略的响应时间,总共进行了11 次实验。每次实验中满足查询条件的记录数目以及查询的响应时间如表1、图6 和图7 中所示。

表1 传统分页查询策略与本文分页查询优化策略对比实验结果

图6 图像完全包含关系的查询时间对比

图7 图像完全或部分包含关系的查询时间对比

从表1、图6 和图7 中可以看出,随着查询结果数据量的增加,传统分页查询策略与分页查询优化策略的响应时间呈现不同的变化趋势:传统查询策略的响应时间呈线性增长趋势,而分页查询优化策略的响应时间总体上变化较平坦,即基本不受查询结果数据量的影响。此外,第2 种查询条件下得到的数据量是第一种查询条件下的2 倍左右,这是由于它包含了与用户划定区域部分重叠的遥感图像。这2 种查询条件下传统分页查询策略与分页查询优化策略的响应时间变化趋势是完全一致的,证明了页面转换算法是高效的和稳定的。

5 结束语

本文提出一种多源海量遥感数据快速查询的方法,利用Web 服务和智能Agent 技术实现多数据源同时访问,采用页面转换技术实现用户查询页面的划分和合并,以此降低服务器需要处理和传输的遥感数据量,加快遥感图像的查询速度。通过比较不同查询条件下传统分页查询策略和分页查询优化策略的实验结果,发现后者在多源海量情况下查询速度更快,通常小于0.5 s,能够满足遥感数据快速查询的要求。

[1]谢冰川,赵 亮,李莎莎.分布式海量遥感图像编目检索机制[J].计算机工程,2010,36(20):281-285.

[2]存档卫星遥感数据目录服务系统[EB/OL].(2013-06-10).http://cs.rsgs.ac.cn/ cs_cn/cshome.asp.

[3]宋 爽.基于地理信息Web 服务的海量遥感图像分布式处理与发布[D].郑州:解放军信息工程大学,2007.

[4]陈 南.APS.NET 中大数据量分页技术的研究与实现[J].计算机应用与软件,2011,28(4):206-207.

[5]郭绍忠,甄 涛,贾 琦.基于存储过程的海量邮件数据挖掘[J].计算机工程,2010,36(1):40-43.

[6]黄龙军.应用存储过程实现数据分页[J].计算机系统应用,2012,21(12):186-189.

[7]石 柯,林海华,徐 彬.AnyQuery:网格环境下基于服务的分布式查询处理系统[J].小型微型计算机系统,2006,27(8):1432-1438.

[8]Narayanan S,Kurc T,Catalyurek U,et al.Database Support for Data-driven Scientific Applications in the Grid[J].Parallel Processing Letters,2003,13(2):245-271.

[9]Xiao Nong,Li Dongsheng,Fu Wei,et al.GridDaen:A Data Grid Engine[C]//Proc.of GCC'03.[S.1.]:IEEE Press,2003:519-528.

[10]Bader S A,Chaumette S.International Parallel and Distributed Processing Symposium[C]//Proc.of IPDPS'03.Washington D.C.,USA:IEEE Computer Society,2003:90-91.

[11]何瑞波,陈立云,连云峰,等.基于智能Agent 的模型自动选择[J].计算机系统应用,2010,21(5):50-54.

[12]胡 坚,汪超亮,李子扬.基于REST Web Services 的分布式遥感数据检索技术研究[J].计算机工程与设计,2010,31(14):3207-3209.

[13]刘相娟.基于语义Web 的多Agent 移动应用平台研究[D].齐齐哈尔:齐齐哈尔大学,2012.

猜你喜欢
数据量数据源页面
刷新生活的页面
基于大数据量的初至层析成像算法优化
计算Lyapunov指数的模糊C均值聚类小数据量法
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
基于真值发现的冲突数据源质量评价算法
分布式异构数据源标准化查询设计与实现
网站结构在SEO中的研究与应用