賈睿
摘 要:隨著物聯(lián)網(wǎng)深入應(yīng)用到各行各業(yè),各類型傳感器時(shí)刻在產(chǎn)生大量的數(shù)據(jù),占用大量存儲(chǔ)空間。由于不同用戶需要不同的數(shù)據(jù)服務(wù)和安全級(jí)別,復(fù)雜的業(yè)務(wù)規(guī)則需要靈活的數(shù)據(jù)訪問機(jī)制,因此,如何存儲(chǔ)、共享和隔離這些數(shù)據(jù)是物聯(lián)網(wǎng)數(shù)據(jù)管理系統(tǒng)的主要挑戰(zhàn)。文章設(shè)計(jì)基于圖數(shù)據(jù)庫(kù)的物聯(lián)網(wǎng)數(shù)據(jù)管理系統(tǒng),使用具有節(jié)點(diǎn)、邊、屬性的圖形結(jié)構(gòu)來存儲(chǔ)和表示各個(gè)物聯(lián)網(wǎng)實(shí)體及實(shí)體間關(guān)系,有效降低數(shù)據(jù)管理復(fù)雜度,保障數(shù)據(jù)安全性。
關(guān)鍵詞:物聯(lián)網(wǎng);異構(gòu)數(shù)據(jù);圖數(shù)據(jù)庫(kù)
0 引言
物聯(lián)網(wǎng)被廣泛應(yīng)用于醫(yī)療保健,交通運(yùn)輸,智能家居和監(jiān)控系統(tǒng)等眾多日常應(yīng)用中,并以前所未有的速度快速增長(zhǎng),預(yù)測(cè)到2022年物聯(lián)網(wǎng)傳感設(shè)備的數(shù)量將達(dá)到80億[1]。物聯(lián)網(wǎng)設(shè)備生成大量傳感數(shù)據(jù),將數(shù)據(jù)傳輸并存儲(chǔ)在資源豐富的平臺(tái),對(duì)分析歷史傳感數(shù)據(jù)對(duì)于各種物聯(lián)網(wǎng)應(yīng)用的決策至關(guān)重要[2]。物聯(lián)網(wǎng)數(shù)據(jù)特征如下:
(1)多源異構(gòu)。物聯(lián)網(wǎng)數(shù)據(jù)來自不同的傳感設(shè)備,如環(huán)境設(shè)備、監(jiān)控設(shè)備、養(yǎng)殖設(shè)備等,各種設(shè)備數(shù)據(jù)具有不同的屬性和結(jié)構(gòu)。
(2)規(guī)模龐大。物聯(lián)網(wǎng)中有大量的傳感設(shè)備,這些設(shè)備實(shí)時(shí)不間斷的產(chǎn)生傳感數(shù)據(jù),對(duì)數(shù)據(jù)存儲(chǔ)空間和性能有很高要求。
(3)時(shí)空關(guān)聯(lián)。物聯(lián)網(wǎng)數(shù)據(jù)具有時(shí)間和空間屬性,用于描述時(shí)間和空間中對(duì)象狀態(tài)的動(dòng)態(tài)變化。
由于上述特征,存儲(chǔ)和管理海量異構(gòu)物聯(lián)網(wǎng)數(shù)據(jù)具有挑戰(zhàn)性,主要體現(xiàn)在數(shù)據(jù)存儲(chǔ)模式應(yīng)滿足多源、異構(gòu)、海量的物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)需求;分析物聯(lián)網(wǎng)設(shè)備產(chǎn)生的事件數(shù)據(jù)和狀態(tài)數(shù)據(jù)間復(fù)雜關(guān)聯(lián)關(guān)系,發(fā)現(xiàn)海量數(shù)據(jù)間蘊(yùn)含的共性和模式,挖掘深層次業(yè)務(wù)價(jià)值。
1 相關(guān)工作
目前,已開展多項(xiàng)技術(shù)來研究海量異構(gòu)物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ),主要分為:文件系統(tǒng)存儲(chǔ)、關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)、NoSQL數(shù)據(jù)庫(kù)存儲(chǔ)。
(1)文件系統(tǒng)存儲(chǔ):有許多研究使用文件系統(tǒng)作為物聯(lián)網(wǎng)數(shù)據(jù)的存儲(chǔ)介質(zhì)[3],將多個(gè)存儲(chǔ)節(jié)點(diǎn)連接為整個(gè)文件系統(tǒng),提供統(tǒng)一資源管理。存在的缺陷:僅提供基本存儲(chǔ)和檢索功能,海量數(shù)據(jù)的實(shí)時(shí)處理和存儲(chǔ)性能不理想。
(2)關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ):目前,大多數(shù)物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)方案都基于關(guān)系數(shù)據(jù)庫(kù)[4-5],但通過簡(jiǎn)單地?cái)U(kuò)展關(guān)系數(shù)據(jù)庫(kù)很難滿足物聯(lián)網(wǎng)海量數(shù)據(jù)存儲(chǔ)和高效查詢需求。
(3)NoSQL數(shù)據(jù)庫(kù)存儲(chǔ):文獻(xiàn)[6]以HBase作為數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng),對(duì)車輛GPS 等傳感器RowKey和列族的設(shè)計(jì)方法進(jìn)行了描述,并進(jìn)行可拓展性測(cè)試。
2 基于圖數(shù)據(jù)庫(kù)的物聯(lián)網(wǎng)數(shù)據(jù)管理系統(tǒng)
本文提出一種新的物聯(lián)網(wǎng)數(shù)據(jù)管理系統(tǒng),采用圖數(shù)據(jù)庫(kù)來存儲(chǔ)和管理海量異構(gòu)物聯(lián)網(wǎng)數(shù)據(jù),支持海量物聯(lián)網(wǎng)數(shù)據(jù)的存儲(chǔ)和高效查詢,適應(yīng)多種異構(gòu)數(shù)據(jù)格式。其主要組件包括:
2.1 MQTT代理服務(wù)
連接海量傳感器,支持從傳感器實(shí)時(shí)、安全、可靠地傳輸數(shù)據(jù),也可以向傳感器安全地發(fā)送指令,調(diào)整其運(yùn)行方式和狀態(tài)。
2.2 數(shù)據(jù)處理服務(wù)
對(duì)傳感器數(shù)據(jù)進(jìn)行真實(shí)性和安全性驗(yàn)證,保證被存儲(chǔ)的傳感器數(shù)據(jù)是由經(jīng)過認(rèn)證、可靠的設(shè)備所發(fā)送的,避免不安全的數(shù)據(jù)進(jìn)入存儲(chǔ)空間;根據(jù)傳感器數(shù)據(jù)特征,結(jié)合設(shè)備屬性、傳感器屬性、時(shí)間屬性等,形成存儲(chǔ)操作語句。
2.3 數(shù)據(jù)存儲(chǔ)服務(wù)
采用圖形數(shù)據(jù)庫(kù)節(jié)點(diǎn)和屬性來表示各種應(yīng)用數(shù)據(jù),用戶節(jié)點(diǎn)包括用戶ID、名稱、郵箱、電話等;設(shè)備節(jié)點(diǎn)包括設(shè)備編號(hào)、名稱、型號(hào)、描述等;傳感器節(jié)點(diǎn)包括傳感器編號(hào)、名稱、數(shù)值類型等;業(yè)務(wù)節(jié)點(diǎn)包括業(yè)務(wù)名稱、類別、描述、創(chuàng)建時(shí)間等;數(shù)據(jù)節(jié)點(diǎn)包括傳感器數(shù)據(jù)、生成時(shí)間、存儲(chǔ)時(shí)間等。
采用圖形數(shù)據(jù)庫(kù)邊和方向來表示數(shù)據(jù)彼此間關(guān)系,主要包括用戶設(shè)備關(guān)聯(lián)、用戶業(yè)務(wù)關(guān)聯(lián)、設(shè)備傳感器關(guān)聯(lián)、業(yè)務(wù)傳感器關(guān)聯(lián)、傳感器數(shù)據(jù)關(guān)聯(lián)。當(dāng)業(yè)務(wù)變化時(shí),定位被影響的信息節(jié)點(diǎn),構(gòu)建關(guān)聯(lián)調(diào)整指令,更新對(duì)應(yīng)邊結(jié)構(gòu)。
3 實(shí)驗(yàn)與結(jié)果
3.1 數(shù)據(jù)架構(gòu)
本系統(tǒng)采用Neo4j圖形數(shù)據(jù)庫(kù)作為物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ),設(shè)計(jì)了用戶、設(shè)備、業(yè)務(wù)、傳感器和數(shù)據(jù)等數(shù)據(jù)節(jié)點(diǎn),并設(shè)計(jì)OWNS,CONTAINS,INCLUDES,STORES等關(guān)聯(lián)關(guān)系。
本系統(tǒng)中,數(shù)據(jù)節(jié)點(diǎn)結(jié)構(gòu)為Data(Value,Type,SensorCode,Timestamp,StorageTime),Timestamp屬性表示存儲(chǔ)時(shí)間戳,并用其進(jìn)行時(shí)間維度的過濾和選擇;傳感器節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)為Sensor(Code,Name,Description,Creator,CreateTime);兩者之間是一對(duì)多的關(guān)系,即一個(gè)傳感器可以產(chǎn)生多條數(shù)據(jù),但一條數(shù)據(jù)僅能屬于一個(gè)傳感器。Sensor和Data節(jié)點(diǎn)設(shè)計(jì)抽象提取物聯(lián)網(wǎng)應(yīng)用中核心屬性,結(jié)合圖數(shù)據(jù)庫(kù)的鍵值對(duì)數(shù)據(jù)存儲(chǔ)格式,能夠很好地支持異構(gòu)數(shù)據(jù)的擴(kuò)展和存儲(chǔ)。當(dāng)產(chǎn)生新的異構(gòu)數(shù)據(jù)時(shí),僅需要調(diào)整數(shù)據(jù)節(jié)點(diǎn)屬性,不會(huì)影響已有數(shù)據(jù)。
本系統(tǒng)采用設(shè)備從縱向維度對(duì)傳感器進(jìn)行分組管理,并設(shè)計(jì)一對(duì)多的CONTAINS關(guān)系來表示設(shè)備-傳感器間關(guān)聯(lián)。采用業(yè)務(wù)節(jié)點(diǎn)從橫向維度對(duì)傳感器進(jìn)行管理,設(shè)計(jì)多對(duì)多的INCLUDES關(guān)系來包含多個(gè)不同設(shè)備下的傳感器,并能夠根據(jù)實(shí)際業(yè)務(wù)變化進(jìn)行靈活適配。
根據(jù)用戶對(duì)設(shè)備的所有權(quán)信息為其分配對(duì)應(yīng)的設(shè)備節(jié)點(diǎn),根據(jù)用戶的業(yè)務(wù)角色為其分配對(duì)應(yīng)的業(yè)務(wù)節(jié)點(diǎn),設(shè)計(jì)多對(duì)多的OWNS關(guān)系來表示用戶-設(shè)備、用戶-業(yè)務(wù)間關(guān)聯(lián)。用戶進(jìn)行數(shù)據(jù)訪問時(shí),根據(jù)其訪問規(guī)則,結(jié)合OWNS關(guān)系,構(gòu)建查詢操作,從設(shè)備和業(yè)務(wù)維度查找符合規(guī)則的傳感器節(jié)點(diǎn),并結(jié)合時(shí)間條件,定位數(shù)據(jù)節(jié)點(diǎn),返回查詢結(jié)果。當(dāng)用戶對(duì)設(shè)備所屬權(quán)變化時(shí),或用戶業(yè)務(wù)角色調(diào)整時(shí),需構(gòu)建變更操作,修改用戶-設(shè)備、用戶-業(yè)務(wù)的OWNS關(guān)系即可,兼?zhèn)潇`活性和動(dòng)態(tài)性。
3.2 實(shí)驗(yàn)設(shè)計(jì)和結(jié)果
構(gòu)建1 000萬條物聯(lián)網(wǎng)數(shù)據(jù)、30 000個(gè)傳感器、2 000臺(tái)設(shè)備、500項(xiàng)業(yè)務(wù)、100名用戶,并隨機(jī)連接數(shù)據(jù)、傳感器、設(shè)備、業(yè)務(wù)和用戶。使用Neo4j提供的管理工具進(jìn)行批量數(shù)據(jù)導(dǎo)入,導(dǎo)入后生成10 032 600個(gè)數(shù)據(jù)Node及10 372 367個(gè)Relation。
評(píng)測(cè)兩種不同的數(shù)據(jù)立方查詢方式,從用戶相關(guān)聯(lián)的設(shè)備和業(yè)務(wù)出發(fā),根據(jù)用戶屬性、設(shè)備類型、業(yè)務(wù)名稱等屬性進(jìn)行過濾,找出和其有連接的傳感器交集或并集,并結(jié)合起始時(shí)間范圍等數(shù)據(jù)屬性,最終定位待訪問的數(shù)據(jù)節(jié)點(diǎn)。查詢性能評(píng)測(cè)設(shè)置了不同數(shù)量的用戶、設(shè)備、業(yè)務(wù)和傳感器的組合環(huán)境,模擬驗(yàn)證各種復(fù)雜的物聯(lián)網(wǎng)業(yè)務(wù)場(chǎng)景,并對(duì)比測(cè)試是否包含屬性查詢條件時(shí)的平均響應(yīng)時(shí)間。
查詢結(jié)果展示了查詢1 000條傳感器集合所需平均時(shí)間:查詢傳感器交集且無查詢條件所需0.262 s,查詢傳感器交集且有屬性查詢條件所需0.452 s,查詢傳感器并集且無查詢條件所需0.143 s,查詢傳感器并集且有屬性查詢條件所需0.149 s。說明在各種復(fù)雜的物聯(lián)網(wǎng)管理場(chǎng)景下,本系統(tǒng)能夠在有效時(shí)間響應(yīng)數(shù)據(jù)訪問請(qǐng)求。同時(shí),隨著業(yè)務(wù)變化,數(shù)據(jù)查詢條件也隨之動(dòng)態(tài)調(diào)整,基于屬性的過濾條件未對(duì)系統(tǒng)查詢響應(yīng)時(shí)間造成顯著影響。
4 結(jié)語
本文主要分析物聯(lián)網(wǎng)數(shù)據(jù)管理系統(tǒng)面對(duì)海量數(shù)據(jù)存儲(chǔ)時(shí),缺少異構(gòu)模型擴(kuò)展能力、數(shù)據(jù)訪問控制配置能力弱等問題,提出一種優(yōu)化解決方案:采用圖數(shù)據(jù)庫(kù)作為物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)系統(tǒng),利用其適用于存儲(chǔ)、管理、查詢高度關(guān)聯(lián)數(shù)據(jù)的特性,實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備、傳感器及數(shù)據(jù)的高效管理。后續(xù)工作中,會(huì)進(jìn)一步研究圖數(shù)據(jù)庫(kù)存儲(chǔ)模型,加強(qiáng)數(shù)據(jù)并行處理能力,引入數(shù)據(jù)安全機(jī)制,適應(yīng)物聯(lián)網(wǎng)業(yè)務(wù)高速發(fā)展和安全隱私訴求。
[參考文獻(xiàn)]
[1]王瑾. 物聯(lián)網(wǎng)海量異構(gòu)數(shù)據(jù)存儲(chǔ)與共享策略的思考[J].無線互聯(lián)科技,2018(10):110-111.
[2]趙立波,李凌霞,王旭.物聯(lián)網(wǎng)海量異構(gòu)傳感器采樣數(shù)據(jù)存儲(chǔ)與查詢處理[J].軟件導(dǎo)刊,2017(12):182-183,187
[3]田野,袁博,李廷力.物聯(lián)網(wǎng)海量異構(gòu)數(shù)據(jù)存儲(chǔ)與共享策略研究[J].電子學(xué)報(bào),2016(2):247-257.
[4]丁治明,高需.面向物聯(lián)網(wǎng)海量傳感器采樣數(shù)據(jù)管理的數(shù)據(jù)庫(kù)集群系統(tǒng)框架[J].計(jì)算機(jī)學(xué)報(bào),2012(6):1175-1191.
[5]史俊茹,黑敏星,楊軍.一種物聯(lián)網(wǎng)數(shù)據(jù)管理框架研究[J].計(jì)算機(jī)科學(xué),2015(S1):294-298.
[6]KU W Y,CHOU T Y,CHUNG L K.The cloud based sensor data warehouse[C].Taibei:International Symposium on Grids and Clouds and the Open Grid Forum,2011:21-24.
(編輯 姚 鑫)