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