999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種傳感數據的壓縮和高效存儲方案

2016-02-27 01:53:50毛燕琴沈蘇彬
計算機技術與發展 2016年11期
關鍵詞:數據庫

祁 蘭,毛燕琴,沈蘇彬

(南京郵電大學 計算機學院、軟件學院,江蘇 南京 210003)

一種傳感數據的壓縮和高效存儲方案

祁 蘭,毛燕琴,沈蘇彬

(南京郵電大學 計算機學院、軟件學院,江蘇 南京 210003)

傳感網絡數據經旋轉門壓縮后是零散分布的,壓縮后的數據直接在云中存儲,將導致其難以統一管理和查詢,集群為了負載均衡會頻繁移動數據。MongoDB數據庫是一種新型的非關系數據庫,其存儲結構靈活,查詢效率高,適合傳感數據的存儲和管理。通過研究MongoDB的存儲特點和空間分配機制,利用云平臺的計算能力,設計針對傳感數據的壓縮和高效存儲方案。先將傳感器壓縮后的傳感數據在云中使用最小二乘法擬合進行解壓縮處理,得到時間粒度上的完整數據集,設計一種針對時域性傳感數據的通用存儲格式,將數據集存儲到高性能的NoSQL數據庫MongoDB中。實驗結果表明,該方案可以更好地恢復有損壓縮后的數據并提高數據的查詢效率,體現了MongoDB靈活的存儲模式在傳感數據中應用的顯著優勢。

傳感數據;云計算;MongoDB;壓縮算法

0 引 言

物聯網是繼互聯網和移動互聯網后世界信息產業的第三次浪潮,2001年,NASA第一次定義了傳感器網絡[1]。2005年,開放地理空間信息聯盟(Open GIS Consortium,OGC)制定了一套傳感網絡標準。數據顯示,到2020年,全球接入物聯網的傳感器終端將達到500億個,在物聯網行業的應用日益廣泛[2]。

傳感數據不僅可以在實時處理和監控中使用,歷史數據還可以預測未來的新趨勢[3],但由于傳感器收集的數據量大,無線傳輸耗能大,數據種類和分布復雜,傳感器精度有限,部分傳感器誤差較大,傳統的關系型數據庫在處理傳感數據時面臨嚴重挑戰。使用云存儲技術不僅能夠解決傳感數據的擴展和管理問題,而且還能提高數據存儲的可用性、穩定性和安全性。選取合適的統一完整的存儲模式有利于傳感數據的統一管理和高效查詢[4]。

對于傳感數據的傳輸和存儲,一般采用的解決方案是將傳感數據壓縮后存儲,以降低傳感器網絡的功耗。但是如果采用有損壓縮,那么得到的數據集是零散分布的。然而云存儲在存儲大數據的核心思想為化零為整、預先分配、統一管理,這與有損壓縮后數據的零散性相矛盾,所以文中提出先在傳感器上壓縮數據,后在云中解壓縮,然后使用嵌套格式統一存儲的方案。

文中首先介紹了傳感數據的壓縮技術、云存儲技術和MongoDB數據庫,然后討論了各需求之間的矛盾和取舍理由,并詳細介紹了方案設計的實現過程,最后對方案結果進行了測試和分析。

1 相關技術分析

1.1 傳感數據的壓縮技術

文獻[2]中研究表明,傳感器節點在數據傳輸上的能耗比在數據運算上的能耗大得多,在同等條件下,發送1位數據所需要的能量甚至是執行1次加法運算所需要的能量的500倍左右,所以傳感器節能問題是傳感網絡設計需要考慮的一個重要問題,傳感器節點上的壓縮算法需要壓縮率高但又不能太復雜。由于傳感器節點采集數據時容易受外界環境偶然因素的影響,并且現有的傳感設備的精度非常有限,所以通常不是以傳感器節點某一時刻的數據作為判斷依據,而是以一個時間段的數據序列作為判斷依據,所以線性回歸壓縮適用于這一類時序性數據的壓縮。

針對傳感數據,研究者們在經典壓縮算法的基礎上提出了一些針對傳感數據的壓縮方法,主要有小波壓縮算法、分段常量近似算法、感知壓縮算法等[5]。其中旋轉門壓縮算法比較簡單且壓縮性能好,最適合傳感數據的壓縮。

旋轉門壓縮算法如圖1所示[6]。在數據a點上下有兩個像門軸一樣的點,這兩個點與當前點組成兩條線段E,就像繞著這兩個點的兩個門漸漸打開,每個門都只能向外打開而不能向內關。當兩扇門張開的角度之和不超過180°時,旋轉門繼續向外開;若超過180°,保留上一個數據點,以保存的點為起點開始下一輪的旋轉門壓縮,起點與終點之間的點全部舍棄。圖1中執行旋轉門壓縮后,以a與d的連線替代a到d這4個點的變化趨勢。

圖1 旋轉門壓縮算法原理

但是旋轉門解壓縮過程過于簡單,直接用直線連接兩點的線性插值法來還原中間數據,不能很好地還原數據的變化趨勢,而還原階段數據已傳輸到云上,可以利用云的計算能力,能量消耗問題不再是瓶頸,所以可以使用更好的最小二乘法擬合來改進旋轉門壓縮算法的解壓縮部分。

1.2 云存儲技術

云計算已成為一種流行的商業模式,它是作為一個實用程序或服務,為互聯網上的客戶提供計算資源或存儲資源等,目的是為了實現資源的虛擬化。云存儲是云計算的服務之一,它為客戶提供虛擬化的存儲需求。供應商可以使用低成本的物理存儲器設備靈活擴展,實現更多的功能,而不需要購買額外的設備[7]。

云存儲成為處理大數據的首要選擇,是因為它能夠按照用戶需求定制存儲空間,而且還具有擴展靈活、管理方便、價格低廉、穩定安全等優點,為數據存儲和管理提供了新方式和新思路。物聯網中的傳感數據使用云存儲便于擴展和統一管理,為挖掘物聯網大數據的價值提供了條件。

云存儲技術綜合了虛擬化技術、并行處理、網格計算、集群應用、分布式文件系統等,將各種不同類型的物理存儲設備組織到一起,共同對應用層提供服務,通過軟件技術實現不同存儲設備的統一管理和調度,對外提供存儲服務[8]。

其中非關系數據庫(NoSQL)是一類典型的云存儲,它是為了解決數據的海量性和異構性,主要體現在:

(1)高并發讀寫;

(2)海量數據的高效存儲和訪問;

(3)高可擴展性和可用性。

NoSQL種類繁多,Strauch等[9]根據數據模型將NoSQL數據庫分為三種類型:鍵值存儲、文檔數據庫和列式數據庫。其中,MongoDB屬于文檔數據庫,但是它的功能非常豐富,使用的BSON存儲格式具有非常靈活的擴展性。

1.3 MongoDB數據庫

自1970年Edgar F. Codd提出關系數據模型以來,它就成為了存儲數據的主要方式。到了20世紀90年代中期,互聯網數據越來越多,結構也發生了變化,1996年提出的XML(eXtensible Markup Language)是復雜網狀結構和無模式數據的一種解決方案。

然而XML對于半結構化數據的建模和處理仍不夠理想,2001年,Douglas Crockford提出了一個比XML更簡單的變體:JavaScript Object Notation (JSON)[10]。JSON是序列化格式,不是邏輯數據模型,它能對復雜的網狀結構和無模式數據的記錄建模。和XML不同的是,它只能對記錄建模,不能對人類生產的文檔建模,所以JSON更簡單、更高效。

MongoDB公司將JSON又進一步優化,產生了另一種數據格式:BSON(Binary JSON)。BSON擁有更好的性能,主要表現為遍歷速度更快、操作更簡單、數據類型更豐富。

與關系數據庫的扁平結構不同,MongoDB是通過對鍵值對進行不同程度的擴展,通過嵌套(embedded)、引用鏈接(reference link)等方式組成更為復雜的存儲模式[11]。嵌套是將一個文檔包裹一個子文檔,引用鏈接則是使用MongoDB的DBRef對象或自定義外鍵來建立文檔和文檔之間的引用關系。MongoDB提供了兩種復制模式,主從復制(master-slave replication)和復制集(replica set)。分片技術則可以實現數據庫的水平擴展,而對上層應用是透明的,不影響集群中的其他服務器。MongoDB提供自動分片和負載均衡的功能,這是它相比于關系數據庫的另一大優勢。

MongoDB對物聯網數據存儲和擴展有著很好的支持,為了提供更快的分析查詢能力,在MongoDB中使用預聚合文檔可以直接獲得一些常用的統計數據[12]。預聚合文檔(pre-aggregated documents)是指在存儲時不僅存儲每個數據值,還附加存儲一些簡單常用的聚合值,如各類平均值、最大值和最小值等。使用預聚合文檔來查詢平均每分鐘/小時/天更容易且更快,增強了更新和查詢性能。在MongoDB中,為了提高查詢效率,避免文檔在分片間的頻繁移動,一般采取預分配的方式存儲,查詢和存儲效率都會大幅提高,但是在傳感器端為了降低傳感器的能耗,數據是經過壓縮的,所以不能確定MongoDB預分配空間大小,必須有一套完整的數據集才能確定預分配空間。

2 方案設計

由于傳感器采用無線傳輸,能量有限,數據通信能量消耗遠高于其數據運算的能量消耗,所以傳感器節點的數據必須在傳輸前進行壓縮處理。旋轉門壓縮是一種有損壓縮,但比無損壓縮的能量消耗小得多,且傳感數據是一種時序性數據,用戶關心的是數據的整體變化過程,所以采用旋轉門壓縮更合適。

MongoDB數據庫采用時間粒度的嵌套存儲查詢效率高,但是需要時間粒度上一個完整的數據集,而經旋轉門壓縮后的數據已經缺失了一些數據,所以在存入MongoDB之前需要先進行解壓縮處理。旋轉門壓縮算法的解壓縮直接采用線性差值法,這是為節省能量的一種簡單處理,不能有效剔除某些因素引起的異常值,而利用云的計算能力,采用最小二乘法擬合能更好地反映傳感數據隨時間的整體走勢。圖2所示的方案設計能同時滿足以上需求,在傳感器上采用旋轉門數據壓縮能降低傳感器能量消耗,在云服務平臺采用最小二乘法擬合對數據進行解壓縮處理后可以得到時間粒度上的完整數據集,最后以時間粒度上的嵌套模式將完整數據集存入MongoDB數據庫中。

圖2 壓縮存儲方案示意圖

2.1 傳感數據的壓縮處理設計

旋轉門壓縮算法(SDT)是一種典型的線性回歸壓縮算法,原理是對原始數據進行一元線性回歸,去掉一些變化趨勢不明顯的數據,在誤差范圍內以直線替代原來的走勢。旋轉門壓縮在數據量大且變化比較穩定時可以達到很高的壓縮比,計算簡單,節省能量,在傳感器端可以取得很好的效果。

但是當數據傳到云上后,云中可以提供強大的計算力,不再受能量的限制,其線性插值法解壓縮原理并不適用于云存儲環境。如果直接利用旋轉門的線性插值法來解壓縮,可能會因為數據中斷而出現失真,而且由于現有的傳感設備精度非常有限,測量出的傳感數據準確度不高,有的點甚至離實際值差距很大,這樣的點在工程中稱為“噪聲”。若用線性插值法直接解壓縮,會將“噪聲”帶進近似函數,不能較好地描述數據整體的變化趨勢。解壓縮時利用最小二乘法擬合的曲線比用直線連接更貼合實際的數據變化走勢。

曲線擬合是指“對一個復雜函數f(x),求出一個簡單的便于計算的函數p(x),使p(x)與f(x)的誤差在某種度量意義下最小”。它不要求函數必須穿過每個節點,只盡可能反映給定的這些點的基本走勢,根據求得的這個函數補全中間的數據點完成解壓縮,能更好地反映傳感數據整體的走勢,從而過濾掉一些經旋轉門壓縮保留下來的異常點。

2.2 云存儲的數據模式設計

傳感數據的快速增長迫使MongoDB將文檔從內存中移動到磁盤,分散的存儲將導致訪問速度變得更慢,MongoDB不得不掃描更多的文檔,內存與磁盤進行頻繁的交換來實現查詢,降低效率。如果使用類似關系數據庫的扁平存儲模式會產生大量相同的域和屬性,重復率高,對時間建立索引粒度太小,查詢效率也不高。扁平模式存儲示例如下:

{"deviceId":"0x3424","temperature":"18","humidity":"43", "Time":"2014/12/11 04:17:37"}

MongoDB中BSON的存儲模式靈活,可以隨意增加或刪除文檔中的域,也可以在一個文檔內嵌入多層子文檔,特別是對時間的嵌套,因為BSON的數據結構大小是固定的,掃描時可以根據子文檔的大小直接跳過前面的子文檔查找,減少了查詢引擎檢索文檔的次數,也減少了對重復時間的存儲空間。

對于傳感器設備信息這種數據較大、變動較頻繁、一致性要求高的數據存儲,如果直接嵌套存儲,查詢和更新的性能都會比較低,而應該使用引用鏈接來表示文檔之間的關系。

綜上所述,在MongoDB使用以時間為粒度建立的傳感數據文檔可以很好地解決上述問題。這種文檔適用于幾乎所有時序性的傳感網絡數據,合理使用嵌套和引用關系,使文檔簡潔、層次清晰,便于各層次查詢、分配空間和統一管理。以小時為粒度的嵌套存儲示例如下:

{

"deviceId": ObjectId($sensor._id) ,

"timestamp": "2014.12.11T04",

"temperature":{

0:{0:18,…,58:18},

…,

59:{0:21,…,59:20},

"avg": arg_val,

"max": max_val,

"min": min_val

}

}

3 系統實現

3.1 旋轉門壓縮和解壓縮處理

旋轉門壓縮算法通過不斷計算上下兩個門的斜率,同時更新最大上斜率和最小下斜率,當旋轉門的最大上斜率大于最小下斜率時,即認為當前點不能擬合到這一段線性函數中,保存當前點的前一個點,并以此點為起點進行下一輪旋轉門壓縮。

殘差的值是衡量擬合好壞的重要指標,通常采用三種標準衡量:

(1)殘差的最大絕對值最小;

(2)殘差的絕對值之和最小;

(3)殘差的平方和最小[13]。

3.2 MongoDB的存儲和查詢

文中采用Java開發,使用MongoDB的Java驅動操作MongoDB數據庫,MongoDB中BSON格式的文檔模式的轉化需要使用它的基本單位BasicBSONObject類來修改。由于它的構造函數BasicBSONObject(String key,Object value)中的Object類可以為任意類型,也包括了BasicBSONObject,它的方法get(String key)返回的Object類也能轉化為任意類型,如此通過不斷迭代即可完成嵌套。

MongoDB中的嵌套查詢需要使用MongoDB的正則表達式“$regex”查詢日期和小時,需要返回的域用內部類的方式獲取,使用JavaScript查詢2015.12.11T11:0:0的溫度的示例如下:

>db.collection_name.find({"deviceId":"device1","timestamp":{$regex:"2015.12.11T11"},"temperature.0.0":{"$exists":1}},{"temperature.0.0":1})

DBRef與關系數據庫中外鍵的概念類似,使用DBRef引用傳感設備信息文檔sensor時,獲取文檔的_id值,與需要嵌入的域名構造DBRef對象,代碼如下所示:

{"deviceId": [new DBRef(device1, sensor._id) ]}

4 測試和分析

4.1 解壓縮結果測試

實驗數據為2015年10月18日實驗室每隔1分鐘收集一次的溫度數據,使用旋轉門壓縮算法壓縮,參數E取0.2,壓縮前為1 440個數據,壓縮后為138個數據,壓縮率為90.4%,最小二乘法擬合階數取4。用Matlab畫出的兩種解壓縮效果對比圖如圖3所示。其中旋轉門壓縮用線性插值法還原,曲線以變化幅度大的點為導向,可能會由于某些環境因素影響局部溫度,或因傳感器的性能和精度而產生“噪聲”,而最小二乘法擬合出的曲線則主要反映了傳感數據的整體走勢,消除了一些經旋轉門壓縮保留下來的異常點的影響,對于時序性數據更有參考價值。

圖3 最小二乘法擬合和線性插值法解壓縮對比圖

4.2 MongoDB查詢測試

相比于沒有嵌套的扁平的形式存儲,以對時間粒度嵌套的形式存儲查詢效率要高很多,使用系統性能工具benchrRun測試5組數據量較大的隨機查詢,實驗結果如圖4所示。

圖4 MongoDB嵌套和扁平存儲的查詢效率對比圖

MongoDB使用時間粒度下的多層嵌套,能大大增強查詢效率,減少了插入引擎的負荷,雖然增大了更新引擎的負荷,但更新時已分配好空間,所以避免了文檔移動。對于數據小但數量多且雜的傳感數據,使用這種統一的存儲格式有利于查詢和管理。

5 結束語

文中對傳感數據的存儲和查詢遇到的挑戰進行闡述,分析了MongoDB數據庫在解決存儲大數據時采取的方案。為了在降低傳感器能量消耗的同時保證時間粒度的完整數據集,提出先對傳感數據有損壓縮,再利用曲線擬合進行解壓縮,并設計了一種高效存儲和查詢的存儲格式。測試結果表面,該方案可以更好地恢復有損壓縮后的數據并提高MongoDB的存儲和查詢效率。

[1] Liu Q,Mao S,Li M,et al.Release and storage of mine gas monitoring data based on sensor web[C]//22nd international conference on geoinformatics.[s.l.]:IEEE,2014:1-6.

[2] Kimura N,Latifi S.A survey on data compression in wireless sensor networks[C]//International conference on information technology:coding and computing.[s.l.]:IEEE,2005:8-13.

[3] 應蓓華.用于無線傳感網的低能耗數據壓縮[D].北京:清華大學,2010.

[4] 孫韓林,張 鵬,閆 崢,等.一種基于云計算的無線傳感網體系結構[J].計算機應用研究,2013,30(12):3720-3723.

[5] 曾凡文.云存儲環境中傳感數據的壓縮存儲處理研究[D].南京:南京理工大學,2012.

[6] 寧海楠.一種基于SDT算法的新的過程數據壓縮算法[J].計算機技術與發展,2010,20(1):25-28.

[7] 王意潔,孫偉東,周 松,等.云計算環境下的分布存儲關鍵技術[J].軟件學報,2012,23(4):962-986.

[8] He Q,Li Z,Zhang X.Analysis of the key technology on cloud storage[C]//International conference on future information technology and management engineering.[s.l.]:IEEE,2010:426-429.

[9] Kuznetsov S D,Poskonin A V.NoSQL data management systems[J].Programming & Computer Software,2014,40(6):323-332.

[10] Fourny G,Florescu D.JSONiq:the history of a query language[J].IEEE Internet Computing,2013,17(5):86-90.

[11] Mongo DB data modeling introduction[EB/OL].2015-12-28.https://docs.mongodb.org/manual/core/data-modeling-introduction/.

[12] Copeland R.MongoDB應用設計模式[M].陳 新,譯.北京:中國電力出版社,2015.

[13] 薛 毅.數值分析與實驗[M].北京:北京工業大學出版社,2005.

A Compressed and Efficient Storage Scheme of Sensor Network Data

QI Lan,MAO Yan-qin,SHEN Su-bin

(School of Computer Science & Technology,School of Software,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)

Since compressed wireless sensor network data based on Swing Door Trending (SDT) is scattered,unified management and query are difficult to handle,meanwhile the data would be moved frequently for the goal of loading balancing.MongoDB,as a new non-relational database,is famous for flexible storing configuration and high query efficiency,which is suitable for storage and management of sensor data.By studying the MongoDB storage features and space allocation mechanism,taking advantage of the ability to cloud computing platform,a compressed and efficient storage scheme of sensor network data is proposed.The sensing data compressed by sensors is decompressed in the cloud using the least squares fitting,getting the complete data set on time granularity,and a common storage format applies to the time domain senor data is designed to put the data into the MongoDB,a high-performance NoSQL database.Experimental results show that the scheme recoveries compressed data better and promotes the database query efficiency,and the flexible storage mode of MongoDB plays a significant advantage in sensing data applications.

sensing data;cloud computing;MongoDB;compression algorithm

2016-01-16

2016-04-21

時間:2016-10-24

江蘇省未來網絡前瞻性研究資助項目(BY2013095-1-08);南京郵電大學自然科學基金(NY211115)

祁 蘭(1991-),女,碩士研究生,研究方向為計算機網絡;沈蘇彬,博士生導師,研究方向為計算網絡、下一代電信網及網絡安全。

http://www.cnki.net/kcms/detail/61.1450.TP.20161024.1114.042.html

TP392

A

1673-629X(2016)11-0177-05

10.3969/j.issn.1673-629X.2016.11.039

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 一本大道无码日韩精品影视| 日韩天堂视频| 一级片免费网站| 国产在线97| 国产在线精彩视频二区| 99久久国产自偷自偷免费一区| 在线亚洲小视频| 亚洲欧美综合另类图片小说区| 亚洲视频黄| 无码网站免费观看| 亚洲精品欧美日本中文字幕| 69国产精品视频免费| 亚洲天堂伊人| 亚洲第一成网站| 91九色最新地址| 国产91丝袜在线播放动漫| 538精品在线观看| 美女一级免费毛片| 国产精品手机在线播放| 999精品在线视频| 亚洲αv毛片| 无码福利日韩神码福利片| 日韩国产无码一区| 国产成人一区免费观看 | AV天堂资源福利在线观看| 伊伊人成亚洲综合人网7777| 中文国产成人精品久久| 91精品亚洲| 成人午夜亚洲影视在线观看| 亚洲资源站av无码网址| 国产精品开放后亚洲| 色爽网免费视频| 国产99视频精品免费视频7| 国产精品不卡片视频免费观看| 亚洲欧美日韩另类| 国产粉嫩粉嫩的18在线播放91| 亚洲不卡无码av中文字幕| 国产乱人伦精品一区二区| 99久久精品国产精品亚洲| 99999久久久久久亚洲| 性网站在线观看| 91啦中文字幕| 亚洲欧美综合在线观看| 国产后式a一视频| 国产精品原创不卡在线| 久久久精品无码一二三区| 精品欧美一区二区三区久久久| 国产亚洲欧美日本一二三本道| 欧美日韩国产系列在线观看| 亚洲狠狠婷婷综合久久久久| 亚洲精品不卡午夜精品| 乱系列中文字幕在线视频 | 四虎影视永久在线精品| 中文字幕一区二区视频| 国产幂在线无码精品| 欧美福利在线| 亚洲成人网在线播放| 国产精品任我爽爆在线播放6080 | 日韩毛片免费| 99国产在线视频| a色毛片免费视频| 亚洲黄色视频在线观看一区| 成年A级毛片| 国产99视频精品免费视频7| 最新国产网站| 99这里只有精品在线| 亚洲欧美成人在线视频| 91精品国产麻豆国产自产在线| 色哟哟国产成人精品| 四虎永久在线精品影院| 手机永久AV在线播放| a级毛片免费网站| 性网站在线观看| aaa国产一级毛片| 亚洲精品777| 97成人在线观看| 国产第一页免费浮力影院| 日本三级欧美三级| 热99精品视频| 永久免费无码日韩视频| 亚洲精品日产精品乱码不卡| 就去色综合|