周 莹 (1968-)
女,广东,本科,广东工业大学实验教学部实验师,研究方向为实验教学与管理。
摘要:无线传感器网络是一门获取和处理信息的新兴技术,它以数据为中心,提供数据采集、处理和查询功能,其根本任务是准确获取物理世界的有价值信息。数据存储和数据查询是无线传感器网络研究中的重点和热点问题.。本文探讨了无线传感器网络的数据存储与查询技术。
关键词:无线传感器;数据存储;数据查询;查询优化
Abstract: Wireless sensor networks(WSN) is a novel technology about acquiring and processing information,which is data centric and provides data collection,processing and query services。Its fundamental task is to accurately access to valuable information of the physical world. Data storage and query technology are the hot spots in the research of wireless sensor networks. This thesis discusses wireless sensor networks briefly and study data storage, query technology in details.
Key words: Wireless Sensor; Data storage; Data query; Query optimization
无线传感器网络,就是由部署在监测区域内大量的廉价微型传感器节点组成,节点之间通过无线通信方式形成一个多跳的自组织的网络系统,该网络的目的是节点之间能够协作地感应、收集、处理和传输网络覆盖区域中感知目标的信息,并发送给信息收集者[1]。
1 无线传感器的结构
无线传感器网络通常由一组带有嵌入式处理器、传感器以及无线收发装置的节点以自组织的方式构成的无线网络,通过节点的协同工作来采集和处理网络覆盖区域中的目标信息[2]。图1是经常被引用的一个典型的网络架构,传感器节点部署在一个目标区域中,传感器节点测得的信息如温度、湿度、光照、压力,速度等通过多跳的方式传送到汇聚点,通过汇聚点连入,最后接入任务管理节点。任务管理节点具有人机界面,可以进行干预,遥控和管理。汇聚点是拥有具有较强通信能力和计算能力及资源的系统[3]。

图1 WSN网络体系结构
图1只是一个典型的无线传感器网络系统架构,每个具体的实例会有各种不同,如信息传送的方式,各传感器节点互相连接的方式,路由的选择,等等[4] [5]。
2 感知数据中心存储技术
传感器网络中的数据存储方式一般分为3种[6]:(1)外部存储:数据集中存放在传感器网络外的中心处理设备(基站或网关)上。(2)本地存储:感知数据产生后即存放在产生它的传感器节点。(3)数据中心存储(Data-Centric Storage,DCS):给感知数据命名,根据感知数据名字存放在传感器网络中指定的位置。
使用外部存储方法时,传感器节点将所有采集的数据按事先指定的方式传输到中心节点进行分析和处理,存储很简单,但通信开销大,中心及其周围节点会成为系统性能的瓶颈,同时可能把一些用不到的数据也传到中心节点,造成浪费。使用本地存储方法时,存储感知数据不需要耗费额外的通信能量,网络传输的数据都是汇聚节点感兴趣的数据,但是在查询数据时要遍历整个网络,需要耗费大量能量,以数据为中心存储的开销则介于两者之间[7]。

表1 3种存储方式下网络通信成本比较
表1对3 种存储方式下的网内能量消耗情况进行了分析比较。其中,n 为网内节点个数;Dtotal为监测到的感知数据总个数;Q为查询个数,每个查询对应1个报文;Dq为Q个查询返回的结果数据个数,每个数据对应1个报文。通过比较3种存储方式可以得出如下结论:网络规模较小时,如果感知数据的查询频率远高于数据产生频率,外部存储方法是适用的。当网络规模较大,如果感知数据的产生频率高于查询频率,采用外部存储易产生通信热点,本地存储和数据中心存储方式更适用。随着网络规模的继续扩大,当Dq>Q并且查询存在聚合运算时,数据中心存储方式的性能高于本地存储方法。
3 查询处理技术
无线传感器网络的数据查询是根据用户的需求,通过一定的执行策略,将查询语句或者查询数据包发送到数据源,取得数据结果,进行处理后返回给用户的过程。查询处理与路由策略、感知数据模型和数据存储策略紧密相关,不可分割。
无线传感器网络的数据查询包括两个阶段[8]:查询注入传感器网络的阶段与收集数据并返回给用户的阶段。如图2所示,查询注入传感器网络的阶段包括如下过程: 用户提交查询请求、查询解析、查询优化、查询分发。当这个阶段执行完毕,用户提交的查询请求被解析与优化成有效的查询计划,并发送到传感器节点,为下一步数据收集工作做好了准备。

图2 传感器网络查询过程
数据查询的第二个阶段是收集数据与返回查询数据给用户。图3 给出了这个阶段的典型描述。需要指出的是,为了有效利用传感器的有效能量,这个过程往往要对所收集到的数据将进行网内处理,比如数据聚集、数据压缩等操作。

图3 查询数据结果处理过程
根据用户所感兴趣的数据的类型,传感器网络的查询可以分成以下几类[9]:
(1) 快照查询:查询传感器网络当前或历史的状态,如在某一区域某个时间段温度值。
(2) 持续查询:在用户指定的时间内持续不断的监测传感器网络的状态。如未来一个月的每天温度值。
(3) 统计查询:这类查询一般要对所有或大部分节点所采集的数据进行访问才能得到结论。如某一区域某段时间某一时间的平均温度值。
(4) 多维查询:这类查询针对多个变量传感器,进行多维查询。如对温度,湿度和光强三个变量同时查询。
实际情况还可能是这几种查询的混合。每种类型的查询都需要不同的查询技术,一种类型的查询技术并不见得适用于另一种类型的查询。总之,传感器网络的查询涉及到方方面面的技术,可以把这些技术按查询过程组织成如图4 所示的图形。

图4 传感器网络数据查询技术
4 查询的优化
选择最好的查询计划的过程称为查询优化,通常做法的是枚举所有可能的查询计划,估算每个计划中每个操作符的开销,然后从中选取开销最小的查询计划。在传感器网络中,查询优化可以集中式地处理,通常放在服务器端执行。查询优化的目标是最小化传感器网络的总能量消耗,包括各节点进行数据处理的能源消耗和通信能源消耗。下面将采用基于代价的查询优化方法来产生能量消耗最低的查询执行计划。
传感器网络遵循经典的关系型数据库系统模式,当系统接收到一个查询请求(如SQL语句)的时候,该查询请求首先被解析,然后传递给查询优化器,查询优化器的作用是生成一个高效的查询执行计划,查询计划当中会说明查询中不同操作(如join, selection, Projection)的执行顺序然后对每一个不同的操作使用某一具体的算法(如sort-merge join, hash-join)来实施。一般来说,优化器的作用是搜索可能计划的空间,通过比较各个计划的预估费用来选取费用最低的查询计划,为了评估一个查询执行计划的费用,优化器必须依赖数据库中各类数据的有关统计数据,如关系的大小,域的大小,谓词(predicates)的选择等,最后最优的查询计划被传递给查询执行引擎加以执行。查询引擎负责查询执行,查询的代数表示是一种逻辑表示,要在具体的节点上实施查询,还必须将逻辑的代数表示转换成物理的查询计划或命令。
节点的计算能力和能量都十分有限,因此传感器网络的查询优化要尽量多地在服务器端执行。当客户端对收到的查询进行了一系列的变换和优化后(并且要求表达查询的数据量要尽量的小),将选择出最小的查询计划下发到网络中,如果节点不是簇首,则直接将查询转发给自己的簇首,簇首收到查询后,根据簇内节点信息,将查询分解成子查询分发给查询相关的簇内节点上,非簇首节点根据查询计划的信息,按照计划中指定的操作顺序执行查询,最后将符合条件的查询结果返回给簇首节点,收到查询结果(不仅是本簇内的结果信息,还包括其子簇的结果信息)的簇首节点将收到的结果进行处理,将处理后的结果包发送给其上层的簇首,上层簇首继续该过程,直到结果返回给根节点,由根节点再将本周期的查询结果传送给客户端。
为节省能量,我们将查询下推至节点执行。节点对查询操作的执行顺序不同对应的能量消耗也不同。传感器的能量消耗主要集中在通信和采样两方面[10],因而,在不影响正常查询执行的条件下,我们不仅要压缩数据量的传输,减少通讯能量消耗,还要考虑到应用尽量减少采样次数等有效方法,降低采样能量消耗。
因此在执行某个查询过程中,如何减少采样次数也是延长节点寿命的关键。如果查询语句中的某项操作不仅可以影响到其它的许多操作,而且相比较而言执行该语句所消耗的能量较少,那么就应该考虑调整该谓词的执行顺序,下面分两种情况进行讨论:
(1) 非聚集查询
规则1:当选择条件中无采样属性判断时,则应先判断选择属性的真值,如果为真,则采样投影操作中的采样属性。
规则2:当选择条件中的属性包括采样属性时,按照属性的采样能量排列(这里设固有属性的采样能量为0),从小到大的顺序采样,每采样一个属性则判断相应的谓词表达式,看是否能决定选择条件的真值,如果能,则排在其后面的采样属性,如果在后续操作中没有涉及到(涉及到的属性可以在执行到该属性时进行采样),便不用采样,否则继续采样后面的属性。
举例说明 查询1:采集温度大于20℃且光小于100的温度和光值。
SELECT temperature, light FROM Sensors WHERE temperature>20℃ AND light<100 SAMPLE 30 s DURATION 1Day VALUES WITHIN 1
该查询有3种查询计划:
计划1:先将光和温度进行采样,然后再执行WHERE选择操作语句。
计划2:先采样温度的值,然后执行WHERE语句中的temperature >20℃字句,若满足该语句条件,采样光的值,最后执行WHERE语句中的light<100字句。
计划3:先采样光的值,然后执行WHERE语句中的light<100字句,若满足该语句条件,采样温度的值,最后执行WHERE语句中的temperature>20℃字句。
通过实际测量得知,采样一次温度所消耗的能量大于采样一次光所需能量。由于光和温度都在WHERE语句中出现,因此计划3是最优方案,在一定程度上可以减少采样能量大的温度传感器采样次数 。
(2)带聚集的查询
当聚集操作是 MAX,MIN等求最值的聚集函数时,则可以应用一些技巧节省采样能源。例如,查询2:查询1天内温度大于20℃的最高光度值,且每30s返回一次结果。
SELECT MAX (light) FROM Sensors WHERE temperature>20℃ SAMPLE 30s DURATION 1 Day
该查询同样有3种查询计划:
计划1:先将光和温度进行采样,然后再执行WHERE选择操作语句,最后比较当前光度值和其下层节点(离客户端较远)的最大值,大的作为最大值反馈给其上层节点(离客户端较近)。 计划2:先采样温度的值,然后执行WHERE语句中的temperature>20℃字句,若满足该语句条件,采样光的值,做聚集,判断当前光度值和其下层节点(离客户端较远)的最大值,大的作为最大值反馈给其上层节点(离客户端较近)。
计划3:先采样光的值,然后做聚集,判断当前光度值和其下层节点(离客户端较远)的最大值,若当前光度值较小,则直接将较大的值作为最大值反馈给其上层节点(离客户端较近),不用采样温度值;若当前光度值较大,则然后采样温度值,执行WHERE 语句中的temperature>20℃字句,满足条件后才将当前值反馈给其上层节点。
同查询1,第3种方案最节省能量,为最优方案。上面通过调整采样、选择和聚集操作的顺序进一步减少了节点在采样方面所浪费的不必要的能量,节省大量的节点能源开销,延长其使用周期。
5 小结
无线传感器网络综合了传感器技术、嵌入式计算技术、分布式信息处理技术和无线通信技术,能够实时监测、感知和采集各种环境或监测对象的信息,并对其进行处理。由于其十分广阔的应用前景,无线传感器网络相关的研究吸引了学术界和工业界的广泛关注。本文针对无线传感器网络中的数据的特点,对无线传感器网络数据的存储、查询及其优化技术进行了深入的探讨,以期提供一些有益的参考。
参考文献
[1] 罗武胜,翟平,鲁琴. 无线多媒体传感器网络研究[J]. 电子与信息学报,2008,30(6):1511-1516.
[2] 石军锋,钟先信,陈帅. 无线传感器网络结构及特点分析[J]. 重庆大学学报(自然科学版),2005,28(2):16-19.
[3] 孙利民,李建中,陈渝.无线传感器网络[M]. 北京: 清华大学出版社.2005.
[4] 唐勇,周明天,张欣. 无线传感器网络路由协议研究进展[J]. 软件学报,2006,17(3):410-421.
[5] 张琼. 基于内容的无线传感器网络路由协方[J]. 现代电子技术,2007,30(17):87-91.
[6] 李建中,李金宝,石胜飞. 传感器网络及其数据管理的概念、问题与进展[J]. 软件学报,2003,14(10):1717-1727.
[7] 崔莉,鞠海玲,苗勇,等.无线传感器网络研究进展[J].计算机研究与发展,2005,42(1):163-174.
[8] 潘群华,李明禄. 无线传感器网络中的数据查询[J]. 小型微型计算机系统,2007,8(8):1357-1361.
[9]吴亚君.传感器网络数据查询处理技术研究[D].黑龙江:黑龙江大学,2006 (6).
[10] 李春杰,刘瑞霞,王继志.基于无线传感器网络的监控平台设计[J].传感技术学报,2006,19(2) :13-14.
|