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