趙立波+李凌霞+王旭
摘要:物聯網中的數據具有海量、異構性的特點,數據存儲關系到數據共享、數據查詢等后續(xù)工作,對存儲方式的研究一直備受關注。在介紹存儲策略和查詢技術的基礎上,著重探討查詢算法,為海量異構傳感采樣數據存儲提供可參考的解決方案。
關鍵詞:物聯網;海量數據;異構數據;海量數據;數據查詢
DOIDOI:10.11907/rjdk.172023
中圖分類號:TP392
文獻標識碼:A 文章編號:1672-7800(2017)012-0182-02
Abstract:The datas in the IoT are massive and heterogeneous, the good storage strategy has been a research hotspot. The storage of data is related to the next operation, such as data sharing, data query and so on. Based on the analysis of storage technology, a storage strategy is proposed based on the selection of appropriate storage technology, and the query algorithm is discussed, which provides a reference solution for the storage of massive heterogeneous sensor sampling data.
Key Words:Internet of Things;massive data;heterogeneous data;storage;data query
0 引言
1999年,美國Auto-ID首先提出“物聯網”(The Internet of Thing,IoT)的概念[1],指通過各種信息傳感系統(tǒng)(如傳感網、射頻識別系統(tǒng)、紅外感應器、激光掃描器等)、條碼與二維碼、全球定位系統(tǒng),按約定的通信協(xié)議,將物與物、人與物、人與人連接起來,通過各種接入網、互聯網進行信息交換,以實現智能化識別、定位、跟蹤、監(jiān)控的一種信息網絡。物聯網從底層到高層共分為感知層、網絡層、數據層、應用層[2]。數據經過層層處理,從底層傳送到高層。
物聯網中的數據具有如下特征:①物聯網數據的大數據特征。由于物聯網結點中存在各類傳感器節(jié)點,感知的數據類型各不相同,每一個傳感器在工作期間都是頻繁地采集數據,因此整個系統(tǒng)中產生了海量數據,這些海量數據的存儲、查詢對于物聯網數據管理系統(tǒng)是一個巨大挑戰(zhàn);②物聯網數據的異構性[3]。在一個物聯網系統(tǒng)中,包含不同類型的傳感節(jié)點,例如音頻傳感器、溫度傳感器、GPS傳感器等,這些傳感器得到的采樣數據結構完全不同,而這些不同類型的采樣數據要在一個網絡中協(xié)調工作,互相配合。因此,如何存儲這些異構的海量數據亟待研究解決。鑒于此,本文梳理了物聯網海量異構數據的存儲策略和查詢技術,總結了各種方法的優(yōu)缺點,為海量異構傳感采樣數據存儲提供參考。
1 物聯網數據管理系統(tǒng)特點與結構
物聯網的數據管理系統(tǒng)是分布式的,但又不同于傳統(tǒng)分布式數據庫系統(tǒng),它具有自己的特性:一是在傳感網的生存環(huán)境中,感知節(jié)點可能隨時失效,存儲容量、處理能力、電池能量有限;二是數據需在傳感網內進行預處理,這是因為物聯網由海量節(jié)點組成,并且每個節(jié)點采集到的采樣數據中包含大量冗余無效的噪聲數據;三是能夠處理感知數據誤差。
物聯網中的數據管理系統(tǒng)主要分為集中式、半分布式、分布式、層次式。集中式結構中,節(jié)點的工作方式是將采集的數據按事先約定的形式傳送至中心節(jié)點,再由中心節(jié)點統(tǒng)一處理。這種方式的優(yōu)點是簡單,并且數據中心與節(jié)點相比較,具有強大的存儲和計算能力,可以支持復雜、密集的查詢工作。但缺點也很明顯,中心節(jié)點成為整個系統(tǒng)的瓶頸,容錯性較差。半分布式結構中,節(jié)點將數據傳送到中心節(jié)點之前,會對原始數據進行簡單處理。分布式結構中,節(jié)點獨自處理數據存儲及查詢命令。顯然,這要求網絡中所有節(jié)點具有較強的通信、存儲和計算能力。由于每次查詢都會有網絡通信開銷,導致查詢效率低下,因此分布式結構不適合密集、復雜的查詢工作。層次式結構中,節(jié)點被分為網絡層和代理層兩種類型。網絡層的每個節(jié)點均具有一定的計算和存儲能力,完成諸如接收指令、本地計算和數據傳送等任務。而代理層是為了完成接收命令、本地計算和數據傳輸等功能,因此代理層節(jié)點要求具有一定的計算和存儲能力。
2 物聯網海量異構數據存儲策略
對于物聯網的海量異構數據,較好的方案是采用集中式處理方式。集中式管理方式下,文件系統(tǒng)的存儲方式由于效率限制,不適合作為物聯網數據的存儲方案,數據庫技術作為物聯網數據的存儲方案是比較常見的選擇。
數據庫技術可分為關系型數據庫和非關系型數據庫。關系型數據庫技術較為成熟,對數據描述精確,強調數據的完整性、一致性。然而,傳感網數據流具有與之完全不同的特點,即數據實時到達,是一個時間序列,且數據流中存在噪聲數據,數據具有多樣性,結構完全不同,因此不能簡單地將關系型數據庫技術推廣到物聯網數據存儲處理中。
新興的非關系型數據庫技術中,NoSQL技術由于性能、擴展性等方面的優(yōu)勢,在處理大數據方面有很多成功應用,其中包含云數據管理技術。其利用普通PC搭建平臺,動態(tài)管理大規(guī)模計算機資源,使這些計算機協(xié)調工作,結合計算機群的資源處理能力,為海量數據處理提供有效解決方法。
針對物聯網海量異構數據的特點,對于數據存儲,必須對原始數據作預處理,并用統(tǒng)一的表達方式將數據存儲到數據庫中。endprint
(1)預處理。在物聯網節(jié)點內進行數據預處理,其原因有二:一是由于物聯網中的采樣數據帶有大量的噪聲數據,而物聯網節(jié)點處理能力及能量有限,因此要先進行數據清洗、數據融合、關鍵值提?。欢怯捎谖锫摼W各節(jié)點采樣數據格式不一致,因此預處理中也要對數據格式進行統(tǒng)一規(guī)劃。
根據傳感器類型的不同,將采樣數據分為非數值化與數值化兩種。對于非數值化數據,例如視頻、音頻數據,要根據實際應用作分析,通過算法提取出關鍵值;對于數值型數據,還需注意密集數據的稀疏化。數據經過清洗和融合之后,定義一個狀態(tài)變化的閾值,當狀態(tài)變化超過閾值,才提取數據,進一步達到數據關鍵值提取的目的。
(2)數據表達。文獻[2-3]中,提出使用非NoSQL數據庫存儲物聯網數據的策略。在此方法中,有三級數據:數據元素、數據記錄、數據集合。數據集合由數據記錄組成,數據記錄由數據元素組成。采樣數據包含兩類信息:靜態(tài)信息和動態(tài)信息。靜態(tài)信息指只采集一次信息,例如傳感節(jié)點ID;而動態(tài)信息指時空相關信息,例如時間、溫度等。用一條類似于數據中的記錄記載這兩條信息,如圖1所示。
靜態(tài)信息和動態(tài)信息分別指向原子信息開始位置,每個原子信息表示方法為:
多個數據元素組成了一條記錄,內容包括senID、type、value、time,loc。senID:節(jié)點ID;type:數據類型;value:數據值;time:采樣時間;loc:采樣地點。每條記錄相當于關系型數據庫中的一條記錄,若干條記錄組成一個數據集合。
文獻[4]中,提出用MongoDB數據庫存儲數據的方法。此方法中,可以像普通關系數據庫用E-R圖設計數據邏輯模型,將E-R圖中的實體集、屬性集和方法集轉換為MongoDB中的屬性和集合。
E-R模型中的單值屬性、對象屬性、派生屬性分別為單一鍵值對應的文檔、多鍵值對應的文檔和外部引用的文檔。實體可以轉換為集合,在實體轉換為集合時:一對一的關系中,將兩個實體轉換為一個集合,一個實體看作另一個實體的屬性;一對多的關系中,將兩個實體分別建立集合,再根據具體情況確定將哪個集合嵌套在另一個集合中;多對多的關系中,將實體和關系都映射為集合,再根據應用需求構建不同的數據模型。
非關系型數據庫的存儲方式能夠高效實現主關鍵字的查詢,缺點是對于物聯網數據的時空關系表示與存儲、時空邏輯條件查詢以及屬性約束條件查詢等不能很好地予以支持。
3 查詢技術
目前,物聯網海量數據查詢算法相關研究并不多,主要方法是構建能夠快速查詢數據的索引表,加快查詢速度。每種查詢算法都與數據存儲方案關系緊密,不能普遍適用。文獻[5]提出了一種基于分布式哈希表的數據結構查詢方法,將數據抽象為
4 結語
海量異構數據如何存儲,達到方便共享、快速查詢的要求值得探究。本文從尋求合適的存儲方式入手,分析各類數據的不同,提出了一種能夠統(tǒng)一表達數據的存儲策略,并對查詢技術作了探討。未來工作中,將進一步探尋
更高效的查詢方法。
參考文獻:
[1] SARMA S,BROCK D L,ASHTON K. MIT auto ID WH-001:the networked physical world-proposals for engineering the next generation of computing,commerce & automatic-identification[M].Massachusetts:MIT Press,2000.
[2] 丁治明.面向物聯網海量傳感器采樣數據管理的數據庫集群系統(tǒng)框架[J].計算機工程,2011,37(23):1175-1191.
[3] 田野.物聯網海量異構數據存儲與共享策略研究[J].電子學報,2016,44(2):247-256.
[4] 王光磊.MongoDB數據庫的應用研究和方案優(yōu)化[J].信息科技,2011,20(044):93-96.
[5] 李占波.基于Chord算法的物聯網信息機制[J].2011,37(23):107-109.
[6] 馬武彬,劉明星,鄧蘇,等.面向物聯網的語義空間資源索引構建及其查詢優(yōu)化算法[J].系統(tǒng)工程與電子技術,2014,36(1):173-178.
(責任編輯:孫 娟)