周 瑩 (1968-)
女,廣東,本科,廣東工業(yè)大學(xué)實(shí)驗(yàn)教學(xué)部實(shí)驗(yàn)師,研究方向?yàn)閷?shí)驗(yàn)教學(xué)與管理。
摘要:無線傳感器網(wǎng)絡(luò)是一門獲取和處理信息的新興技術(shù),它以數(shù)據(jù)為中心,提供數(shù)據(jù)采集、處理和查詢功能,其根本任務(wù)是準(zhǔn)確獲取物理世界的有價值信息。數(shù)據(jù)存儲和數(shù)據(jù)查詢是無線傳感器網(wǎng)絡(luò)研究中的重點(diǎn)和熱點(diǎn)問題.。本文探討了無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)存儲與查詢技術(shù)。
關(guān)鍵詞:無線傳感器;數(shù)據(jù)存儲;數(shù)據(jù)查詢;查詢優(yōu)化
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
無線傳感器網(wǎng)絡(luò),就是由部署在監(jiān)測區(qū)域內(nèi)大量的廉價微型傳感器節(jié)點(diǎn)組成,節(jié)點(diǎn)之間通過無線通信方式形成一個多跳的自組織的網(wǎng)絡(luò)系統(tǒng),該網(wǎng)絡(luò)的目的是節(jié)點(diǎn)之間能夠協(xié)作地感應(yīng)、收集、處理和傳輸網(wǎng)絡(luò)覆蓋區(qū)域中感知目標(biāo)的信息,并發(fā)送給信息收集者[1]。
1 無線傳感器的結(jié)構(gòu)
無線傳感器網(wǎng)絡(luò)通常由一組帶有嵌入式處理器、傳感器以及無線收發(fā)裝置的節(jié)點(diǎn)以自組織的方式構(gòu)成的無線網(wǎng)絡(luò),通過節(jié)點(diǎn)的協(xié)同工作來采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中的目標(biāo)信息[2]。圖1是經(jīng)常被引用的一個典型的網(wǎng)絡(luò)架構(gòu),傳感器節(jié)點(diǎn)部署在一個目標(biāo)區(qū)域中,傳感器節(jié)點(diǎn)測得的信息如溫度、濕度、光照、壓力,速度等通過多跳的方式傳送到匯聚點(diǎn),通過匯聚點(diǎn)連入,最后接入任務(wù)管理節(jié)點(diǎn)。任務(wù)管理節(jié)點(diǎn)具有人機(jī)界面,可以進(jìn)行干預(yù),遙控和管理。匯聚點(diǎn)是擁有具有較強(qiáng)通信能力和計算能力及資源的系統(tǒng)[3]。
圖1 WSN網(wǎng)絡(luò)體系結(jié)構(gòu)
圖1只是一個典型的無線傳感器網(wǎng)絡(luò)系統(tǒng)架構(gòu),每個具體的實(shí)例會有各種不同,如信息傳送的方式,各傳感器節(jié)點(diǎn)互相連接的方式,路由的選擇,等等[4] [5]。
2 感知數(shù)據(jù)中心存儲技術(shù)
傳感器網(wǎng)絡(luò)中的數(shù)據(jù)存儲方式一般分為3種[6]:(1)外部存儲:數(shù)據(jù)集中存放在傳感器網(wǎng)絡(luò)外的中心處理設(shè)備(基站或網(wǎng)關(guān))上。(2)本地存儲:感知數(shù)據(jù)產(chǎn)生后即存放在產(chǎn)生它的傳感器節(jié)點(diǎn)。(3)數(shù)據(jù)中心存儲(Data-Centric Storage,DCS):給感知數(shù)據(jù)命名,根據(jù)感知數(shù)據(jù)名字存放在傳感器網(wǎng)絡(luò)中指定的位置。
使用外部存儲方法時,傳感器節(jié)點(diǎn)將所有采集的數(shù)據(jù)按事先指定的方式傳輸?shù)街行墓?jié)點(diǎn)進(jìn)行分析和處理,存儲很簡單,但通信開銷大,中心及其周圍節(jié)點(diǎn)會成為系統(tǒng)性能的瓶頸,同時可能把一些用不到的數(shù)據(jù)也傳到中心節(jié)點(diǎn),造成浪費(fèi)。使用本地存儲方法時,存儲感知數(shù)據(jù)不需要耗費(fèi)額外的通信能量,網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)都是匯聚節(jié)點(diǎn)感興趣的數(shù)據(jù),但是在查詢數(shù)據(jù)時要遍歷整個網(wǎng)絡(luò),需要耗費(fèi)大量能量,以數(shù)據(jù)為中心存儲的開銷則介于兩者之間[7]。
表1 3種存儲方式下網(wǎng)絡(luò)通信成本比較
表1對3 種存儲方式下的網(wǎng)內(nèi)能量消耗情況進(jìn)行了分析比較。其中,n 為網(wǎng)內(nèi)節(jié)點(diǎn)個數(shù);Dtotal為監(jiān)測到的感知數(shù)據(jù)總個數(shù);Q為查詢個數(shù),每個查詢對應(yīng)1個報文;Dq為Q個查詢返回的結(jié)果數(shù)據(jù)個數(shù),每個數(shù)據(jù)對應(yīng)1個報文。通過比較3種存儲方式可以得出如下結(jié)論:網(wǎng)絡(luò)規(guī)模較小時,如果感知數(shù)據(jù)的查詢頻率遠(yuǎn)高于數(shù)據(jù)產(chǎn)生頻率,外部存儲方法是適用的。當(dāng)網(wǎng)絡(luò)規(guī)模較大,如果感知數(shù)據(jù)的產(chǎn)生頻率高于查詢頻率,采用外部存儲易產(chǎn)生通信熱點(diǎn),本地存儲和數(shù)據(jù)中心存儲方式更適用。隨著網(wǎng)絡(luò)規(guī)模的繼續(xù)擴(kuò)大,當(dāng)Dq>Q并且查詢存在聚合運(yùn)算時,數(shù)據(jù)中心存儲方式的性能高于本地存儲方法。
3 查詢處理技術(shù)
無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)查詢是根據(jù)用戶的需求,通過一定的執(zhí)行策略,將查詢語句或者查詢數(shù)據(jù)包發(fā)送到數(shù)據(jù)源,取得數(shù)據(jù)結(jié)果,進(jìn)行處理后返回給用戶的過程。查詢處理與路由策略、感知數(shù)據(jù)模型和數(shù)據(jù)存儲策略緊密相關(guān),不可分割。
無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)查詢包括兩個階段[8]:查詢注入傳感器網(wǎng)絡(luò)的階段與收集數(shù)據(jù)并返回給用戶的階段。如圖2所示,查詢注入傳感器網(wǎng)絡(luò)的階段包括如下過程: 用戶提交查詢請求、查詢解析、查詢優(yōu)化、查詢分發(fā)。當(dāng)這個階段執(zhí)行完畢,用戶提交的查詢請求被解析與優(yōu)化成有效的查詢計劃,并發(fā)送到傳感器節(jié)點(diǎn),為下一步數(shù)據(jù)收集工作做好了準(zhǔn)備。
圖2 傳感器網(wǎng)絡(luò)查詢過程
數(shù)據(jù)查詢的第二個階段是收集數(shù)據(jù)與返回查詢數(shù)據(jù)給用戶。圖3 給出了這個階段的典型描述。需要指出的是,為了有效利用傳感器的有效能量,這個過程往往要對所收集到的數(shù)據(jù)將進(jìn)行網(wǎng)內(nèi)處理,比如數(shù)據(jù)聚集、數(shù)據(jù)壓縮等操作。
圖3 查詢數(shù)據(jù)結(jié)果處理過程
根據(jù)用戶所感興趣的數(shù)據(jù)的類型,傳感器網(wǎng)絡(luò)的查詢可以分成以下幾類[9]:
(1) 快照查詢:查詢傳感器網(wǎng)絡(luò)當(dāng)前或歷史的狀態(tài),如在某一區(qū)域某個時間段溫度值。
(2) 持續(xù)查詢:在用戶指定的時間內(nèi)持續(xù)不斷的監(jiān)測傳感器網(wǎng)絡(luò)的狀態(tài)。如未來一個月的每天溫度值。
(3) 統(tǒng)計查詢:這類查詢一般要對所有或大部分節(jié)點(diǎn)所采集的數(shù)據(jù)進(jìn)行訪問才能得到結(jié)論。如某一區(qū)域某段時間某一時間的平均溫度值。
(4) 多維查詢:這類查詢針對多個變量傳感器,進(jìn)行多維查詢。如對溫度,濕度和光強(qiáng)三個變量同時查詢。
實(shí)際情況還可能是這幾種查詢的混合。每種類型的查詢都需要不同的查詢技術(shù),一種類型的查詢技術(shù)并不見得適用于另一種類型的查詢。總之,傳感器網(wǎng)絡(luò)的查詢涉及到方方面面的技術(shù),可以把這些技術(shù)按查詢過程組織成如圖4 所示的圖形。
圖4 傳感器網(wǎng)絡(luò)數(shù)據(jù)查詢技術(shù)
4 查詢的優(yōu)化
選擇最好的查詢計劃的過程稱為查詢優(yōu)化,通常做法的是枚舉所有可能的查詢計劃,估算每個計劃中每個操作符的開銷,然后從中選取開銷最小的查詢計劃。在傳感器網(wǎng)絡(luò)中,查詢優(yōu)化可以集中式地處理,通常放在服務(wù)器端執(zhí)行。查詢優(yōu)化的目標(biāo)是最小化傳感器網(wǎng)絡(luò)的總能量消耗,包括各節(jié)點(diǎn)進(jìn)行數(shù)據(jù)處理的能源消耗和通信能源消耗。下面將采用基于代價的查詢優(yōu)化方法來產(chǎn)生能量消耗最低的查詢執(zhí)行計劃。
傳感器網(wǎng)絡(luò)遵循經(jīng)典的關(guān)系型數(shù)據(jù)庫系統(tǒng)模式,當(dāng)系統(tǒng)接收到一個查詢請求(如SQL語句)的時候,該查詢請求首先被解析,然后傳遞給查詢優(yōu)化器,查詢優(yōu)化器的作用是生成一個高效的查詢執(zhí)行計劃,查詢計劃當(dāng)中會說明查詢中不同操作(如join, selection, Projection)的執(zhí)行順序然后對每一個不同的操作使用某一具體的算法(如sort-merge join, hash-join)來實(shí)施。一般來說,優(yōu)化器的作用是搜索可能計劃的空間,通過比較各個計劃的預(yù)估費(fèi)用來選取費(fèi)用最低的查詢計劃,為了評估一個查詢執(zhí)行計劃的費(fèi)用,優(yōu)化器必須依賴數(shù)據(jù)庫中各類數(shù)據(jù)的有關(guān)統(tǒng)計數(shù)據(jù),如關(guān)系的大小,域的大小,謂詞(predicates)的選擇等,最后最優(yōu)的查詢計劃被傳遞給查詢執(zhí)行引擎加以執(zhí)行。查詢引擎負(fù)責(zé)查詢執(zhí)行,查詢的代數(shù)表示是一種邏輯表示,要在具體的節(jié)點(diǎn)上實(shí)施查詢,還必須將邏輯的代數(shù)表示轉(zhuǎn)換成物理的查詢計劃或命令。
節(jié)點(diǎn)的計算能力和能量都十分有限,因此傳感器網(wǎng)絡(luò)的查詢優(yōu)化要盡量多地在服務(wù)器端執(zhí)行。當(dāng)客戶端對收到的查詢進(jìn)行了一系列的變換和優(yōu)化后(并且要求表達(dá)查詢的數(shù)據(jù)量要盡量的小),將選擇出最小的查詢計劃下發(fā)到網(wǎng)絡(luò)中,如果節(jié)點(diǎn)不是簇首,則直接將查詢轉(zhuǎn)發(fā)給自己的簇首,簇首收到查詢后,根據(jù)簇內(nèi)節(jié)點(diǎn)信息,將查詢分解成子查詢分發(fā)給查詢相關(guān)的簇內(nèi)節(jié)點(diǎn)上,非簇首節(jié)點(diǎn)根據(jù)查詢計劃的信息,按照計劃中指定的操作順序執(zhí)行查詢,最后將符合條件的查詢結(jié)果返回給簇首節(jié)點(diǎn),收到查詢結(jié)果(不僅是本簇內(nèi)的結(jié)果信息,還包括其子簇的結(jié)果信息)的簇首節(jié)點(diǎn)將收到的結(jié)果進(jìn)行處理,將處理后的結(jié)果包發(fā)送給其上層的簇首,上層簇首繼續(xù)該過程,直到結(jié)果返回給根節(jié)點(diǎn),由根節(jié)點(diǎn)再將本周期的查詢結(jié)果傳送給客戶端。
為節(jié)省能量,我們將查詢下推至節(jié)點(diǎn)執(zhí)行。節(jié)點(diǎn)對查詢操作的執(zhí)行順序不同對應(yīng)的能量消耗也不同。傳感器的能量消耗主要集中在通信和采樣兩方面[10],因而,在不影響正常查詢執(zhí)行的條件下,我們不僅要壓縮數(shù)據(jù)量的傳輸,減少通訊能量消耗,還要考慮到應(yīng)用盡量減少采樣次數(shù)等有效方法,降低采樣能量消耗。
因此在執(zhí)行某個查詢過程中,如何減少采樣次數(shù)也是延長節(jié)點(diǎn)壽命的關(guān)鍵。如果查詢語句中的某項操作不僅可以影響到其它的許多操作,而且相比較而言執(zhí)行該語句所消耗的能量較少,那么就應(yīng)該考慮調(diào)整該謂詞的執(zhí)行順序,下面分兩種情況進(jìn)行討論:
(1) 非聚集查詢
規(guī)則1:當(dāng)選擇條件中無采樣屬性判斷時,則應(yīng)先判斷選擇屬性的真值,如果為真,則采樣投影操作中的采樣屬性。
規(guī)則2:當(dāng)選擇條件中的屬性包括采樣屬性時,按照屬性的采樣能量排列(這里設(shè)固有屬性的采樣能量為0),從小到大的順序采樣,每采樣一個屬性則判斷相應(yīng)的謂詞表達(dá)式,看是否能決定選擇條件的真值,如果能,則排在其后面的采樣屬性,如果在后續(xù)操作中沒有涉及到(涉及到的屬性可以在執(zhí)行到該屬性時進(jìn)行采樣),便不用采樣,否則繼續(xù)采樣后面的屬性。
舉例說明 查詢1:采集溫度大于20℃且光小于100的溫度和光值。
SELECT temperature, light
FROM Sensors
WHERE temperature>20℃ AND light<100
SAMPLE 30 s
DURATION 1Day
VALUES WITHIN 1
該查詢有3種查詢計劃:
計劃1:先將光和溫度進(jìn)行采樣,然后再執(zhí)行WHERE選擇操作語句。
計劃2:先采樣溫度的值,然后執(zhí)行WHERE語句中的temperature >20℃字句,若滿足該語句條件,采樣光的值,最后執(zhí)行WHERE語句中的light<100字句。
計劃3:先采樣光的值,然后執(zhí)行WHERE語句中的light<100字句,若滿足該語句條件,采樣溫度的值,最后執(zhí)行WHERE語句中的temperature>20℃字句。
通過實(shí)際測量得知,采樣一次溫度所消耗的能量大于采樣一次光所需能量。由于光和溫度都在WHERE語句中出現(xiàn),因此計劃3是最優(yōu)方案,在一定程度上可以減少采樣能量大的溫度傳感器采樣次數(shù) 。
(2)帶聚集的查詢
當(dāng)聚集操作是 MAX,MIN等求最值的聚集函數(shù)時,則可以應(yīng)用一些技巧節(jié)省采樣能源。例如,查詢2:查詢1天內(nèi)溫度大于20℃的最高光度值,且每30s返回一次結(jié)果。
SELECT MAX (light)
FROM Sensors
WHERE temperature>20℃
SAMPLE 30s
DURATION 1 Day
該查詢同樣有3種查詢計劃:
計劃1:先將光和溫度進(jìn)行采樣,然后再執(zhí)行WHERE選擇操作語句,最后比較當(dāng)前光度值和其下層節(jié)點(diǎn)(離客戶端較遠(yuǎn))的最大值,大的作為最大值反饋給其上層節(jié)點(diǎn)(離客戶端較近)。
計劃2:先采樣溫度的值,然后執(zhí)行WHERE語句中的temperature>20℃字句,若滿足該語句條件,采樣光的值,做聚集,判斷當(dāng)前光度值和其下層節(jié)點(diǎn)(離客戶端較遠(yuǎn))的最大值,大的作為最大值反饋給其上層節(jié)點(diǎn)(離客戶端較近)。
計劃3:先采樣光的值,然后做聚集,判斷當(dāng)前光度值和其下層節(jié)點(diǎn)(離客戶端較遠(yuǎn))的最大值,若當(dāng)前光度值較小,則直接將較大的值作為最大值反饋給其上層節(jié)點(diǎn)(離客戶端較近),不用采樣溫度值;若當(dāng)前光度值較大,則然后采樣溫度值,執(zhí)行WHERE 語句中的temperature>20℃字句,滿足條件后才將當(dāng)前值反饋給其上層節(jié)點(diǎn)。
同查詢1,第3種方案最節(jié)省能量,為最優(yōu)方案。上面通過調(diào)整采樣、選擇和聚集操作的順序進(jìn)一步減少了節(jié)點(diǎn)在采樣方面所浪費(fèi)的不必要的能量,節(jié)省大量的節(jié)點(diǎn)能源開銷,延長其使用周期。
5 小結(jié)
無線傳感器網(wǎng)絡(luò)綜合了傳感器技術(shù)、嵌入式計算技術(shù)、分布式信息處理技術(shù)和無線通信技術(shù),能夠?qū)崟r監(jiān)測、感知和采集各種環(huán)境或監(jiān)測對象的信息,并對其進(jìn)行處理。由于其十分廣闊的應(yīng)用前景,無線傳感器網(wǎng)絡(luò)相關(guān)的研究吸引了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。本文針對無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)的特點(diǎn),對無線傳感器網(wǎng)絡(luò)數(shù)據(jù)的存儲、查詢及其優(yōu)化技術(shù)進(jìn)行了深入的探討,以期提供一些有益的參考。
參考文獻(xiàn)
[1] 羅武勝,翟平,魯琴. 無線多媒體傳感器網(wǎng)絡(luò)研究[J]. 電子與信息學(xué)報,2008,30(6):1511-1516.
[2] 石軍鋒,鐘先信,陳帥. 無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)及特點(diǎn)分析[J]. 重慶大學(xué)學(xué)報(自然科學(xué)版),2005,28(2):16-19.
[3] 孫利民,李建中,陳渝.無線傳感器網(wǎng)絡(luò)[M]. 北京: 清華大學(xué)出版社.2005.
[4] 唐勇,周明天,張欣. 無線傳感器網(wǎng)絡(luò)路由協(xié)議研究進(jìn)展[J]. 軟件學(xué)報,2006,17(3):410-421.
[5] 張瓊. 基于內(nèi)容的無線傳感器網(wǎng)絡(luò)路由協(xié)方[J]. 現(xiàn)代電子技術(shù),2007,30(17):87-91.
[6] 李建中,李金寶,石勝飛. 傳感器網(wǎng)絡(luò)及其數(shù)據(jù)管理的概念、問題與進(jìn)展[J]. 軟件學(xué)報,2003,14(10):1717-1727.
[7] 崔莉,鞠海玲,苗勇,等.無線傳感器網(wǎng)絡(luò)研究進(jìn)展[J].計算機(jī)研究與發(fā)展,2005,42(1):163-174.
[8] 潘群華,李明祿. 無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)查詢[J]. 小型微型計算機(jī)系統(tǒng),2007,8(8):1357-1361.
[9]吳亞君.傳感器網(wǎng)絡(luò)數(shù)據(jù)查詢處理技術(shù)研究[D].黑龍江:黑龍江大學(xué),2006 (6).
[10] 李春杰,劉瑞霞,王繼志.基于無線傳感器網(wǎng)絡(luò)的監(jiān)控平臺設(shè)計[J].傳感技術(shù)學(xué)報,2006,19(2) :13-14.