鄒文景,唐良運(yùn),甘 瑩,孫 剛
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東廣州 510663)
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展和普及,物聯(lián)網(wǎng)大數(shù)據(jù)的數(shù)量呈幾何倍數(shù)增長,為保證數(shù)據(jù)存儲(chǔ)的質(zhì)量和安全,物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)實(shí)際應(yīng)用不可缺少。傳統(tǒng)的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)以并行數(shù)據(jù)存儲(chǔ)為主,硬件配置要求不高,系統(tǒng)運(yùn)行和維護(hù)成本較低。但隨著物聯(lián)網(wǎng)環(huán)境的日益復(fù)雜,數(shù)據(jù)丟失、竊取、泄露等問題不斷發(fā)生,傳統(tǒng)的存儲(chǔ)系統(tǒng)不能實(shí)現(xiàn)高質(zhì)量的數(shù)據(jù)存儲(chǔ),出現(xiàn)了存儲(chǔ)時(shí)延長、安全性較低、存儲(chǔ)速度慢等情況[1-2]。
為此,國內(nèi)的相關(guān)研究人員和專家學(xué)者展開了深入的研究。以往設(shè)計(jì)的基于區(qū)塊鏈的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)[3],以區(qū)塊鏈技術(shù)為基礎(chǔ),構(gòu)建物聯(lián)網(wǎng)數(shù)據(jù)自動(dòng)存儲(chǔ)模型,采用激勵(lì)機(jī)制計(jì)算最優(yōu)運(yùn)算模式,縮短數(shù)據(jù)存儲(chǔ)時(shí)間,支持多通道多協(xié)議同步數(shù)據(jù)存儲(chǔ),設(shè)計(jì)成本低,數(shù)據(jù)存儲(chǔ)同步性高,但運(yùn)算過程復(fù)雜,收斂性較差,導(dǎo)致數(shù)據(jù)存儲(chǔ)效率較低。基于云計(jì)算的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)[4],在云計(jì)算環(huán)境下構(gòu)建分布式控制系統(tǒng),以FPGA 芯片為核心處理器,集成嵌入式芯片、寄存器、SPI 接口等硬件設(shè)備,在Linux 操作系統(tǒng)的支持下,配合多信道進(jìn)行大數(shù)據(jù)并行傳輸,能夠在短時(shí)間內(nèi)進(jìn)行海量數(shù)據(jù)存儲(chǔ),具有較高的數(shù)據(jù)存儲(chǔ)效率,但并行存儲(chǔ)技術(shù)不夠成熟,數(shù)據(jù)存儲(chǔ)同步性差,數(shù)據(jù)存儲(chǔ)易出現(xiàn)誤差。
針對(duì)以上問題,該文設(shè)計(jì)了基于Hadoop 技術(shù)的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)。
數(shù)據(jù)采集單元是存儲(chǔ)系統(tǒng)最為關(guān)鍵的一部分,其承載了物聯(lián)網(wǎng)數(shù)據(jù)和數(shù)字化信號(hào)的采集任務(wù)。該文設(shè)計(jì)的數(shù)據(jù)采集單元是一個(gè)單板,差分?jǐn)?shù)據(jù)傳輸信號(hào)經(jīng)過差分電路后,轉(zhuǎn)換為單端數(shù)據(jù)傳輸信號(hào),單端數(shù)據(jù)傳輸信號(hào)由模數(shù)轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),最后匯聚到DSP 芯片,進(jìn)行初步數(shù)據(jù)預(yù)處理,并由SPI 接口傳輸至存儲(chǔ)器[5-6]。數(shù)據(jù)采集單元的結(jié)構(gòu)如圖1 所示。

圖1 數(shù)據(jù)采集單元結(jié)構(gòu)
其中,DSP 芯片是采集單元的核心,其晶振頻率約為28.9 Hz,最高主頻可達(dá)到960 Hz,最快數(shù)據(jù)處理速度約為5 227 MIPS,支持異步緩存模式,具有強(qiáng)大的數(shù)據(jù)處理功能,兼具DDR2 型RAM 和嵌入式控制器,利用FLASH 進(jìn)行程序引導(dǎo),并采用I2C 對(duì)數(shù)字信號(hào)的編碼和解碼進(jìn)行配置,工作性能穩(wěn)定,能最大限度地保證數(shù)據(jù)采集的質(zhì)量。
為便于存儲(chǔ)系統(tǒng)的數(shù)據(jù)共享和數(shù)據(jù)傳輸,該文設(shè)計(jì)的接口采用DDR3型硬件接口。接口設(shè)計(jì)如圖2所示。

圖2 存儲(chǔ)系統(tǒng)接口設(shè)計(jì)
圖2 中,DDR3 型接口能夠與采集模塊的DSP 進(jìn)行無縫銜接,能在保證采集數(shù)據(jù)在傳輸過程中的完整性的同時(shí),提升數(shù)據(jù)傳輸效率。接口位置通常設(shè)計(jì)在硬件設(shè)備的高16 位和低16 位,或者設(shè)計(jì)在高32 位和低32 位,從而實(shí)現(xiàn)32 位或64 位數(shù)據(jù)讀寫。進(jìn)行數(shù)據(jù)傳輸?shù)耐瑫r(shí),DDR3 型接口還能傳輸復(fù)位信號(hào)、控制信號(hào)等信號(hào)指令,促進(jìn)各硬件設(shè)備之間的協(xié)調(diào)工作[7-8]。由于DDR3 對(duì)輸入電源的穩(wěn)定性需求較高,該文設(shè)計(jì)三個(gè)具有相同電壓環(huán)路的電源,進(jìn)行持續(xù)電源供給,且電源供給距離小于4 英寸,以避免出現(xiàn)因電源輸入不穩(wěn),出現(xiàn)數(shù)據(jù)傳輸異常等現(xiàn)象。
考慮到存儲(chǔ)系統(tǒng)的數(shù)據(jù)運(yùn)算需求,在對(duì)系統(tǒng)處理器進(jìn)行設(shè)計(jì)時(shí),采用多核處理器替代傳統(tǒng)單核處理器,即內(nèi)部具備多個(gè)處理核心,處理核之間相互調(diào)度、分配,以提升處理器的性能。考慮多核之間的分配權(quán)衡問題,引入多核調(diào)度技術(shù)進(jìn)行全局隊(duì)列調(diào)度,保證多核并行處理的穩(wěn)定性。
針對(duì)多核處理器的IDS 接口、雙口RAM、PCI-E,設(shè)置小型控制器,采用FIPA 型控制器,以數(shù)值排列方式為主,有助于提升處理器對(duì)局部的控制能力[9-10]。處理器中幾個(gè)較大的寄存器和存儲(chǔ)器采用CIB 連接方式相互連接,能夠縮短數(shù)據(jù)訪問時(shí)間,保證處理器保持高效的數(shù)據(jù)處理狀態(tài)。
存儲(chǔ)器是存儲(chǔ)系統(tǒng)的核心,其容量和工作性能決定了存儲(chǔ)系統(tǒng)性能的優(yōu)劣。存儲(chǔ)器結(jié)構(gòu)如圖3所示。

圖3 存儲(chǔ)器結(jié)構(gòu)
觀察圖3 可知,配置雙口RAM,一旦進(jìn)行大量數(shù)據(jù)存儲(chǔ)時(shí),在CIP 的有效連接下,調(diào)用多通道進(jìn)行同步存儲(chǔ)。存儲(chǔ)器設(shè)置ISHR 接口與DOM 接口,便于進(jìn)行數(shù)據(jù)外部共享。調(diào)度數(shù)據(jù)時(shí),必須經(jīng)過訪問機(jī)制,才能進(jìn)行數(shù)據(jù)存儲(chǔ)[11-12]。
存儲(chǔ)器設(shè)置了兩個(gè)接地電阻,同時(shí)連接不同的電阻,通過兩個(gè)電容器完成電量存儲(chǔ),確保存儲(chǔ)器順利運(yùn)行。
在上述物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)硬件的設(shè)計(jì)基礎(chǔ)上,合理化設(shè)計(jì)軟件程序。系統(tǒng)軟件的主要流程如圖4 所示。

圖4 系統(tǒng)軟件流程
1)通過Hadoop 技術(shù)對(duì)物聯(lián)網(wǎng)大數(shù)據(jù)進(jìn)行高效采集。由于物聯(lián)網(wǎng)數(shù)據(jù)的種類多、屬性復(fù)雜,因此在進(jìn)行數(shù)據(jù)采集時(shí),針對(duì)不同種類的物聯(lián)網(wǎng)數(shù)據(jù),需要調(diào)用采集模塊的不同單位進(jìn)行分類采集和預(yù)處理,從而提高數(shù)據(jù)運(yùn)算效率,為實(shí)現(xiàn)高質(zhì)量的數(shù)據(jù)存儲(chǔ)打下基礎(chǔ)。
2)數(shù)據(jù)加密和解密。引入Hadoop 技術(shù)管理信息文檔,通信信息文檔內(nèi)容分析實(shí)現(xiàn)數(shù)據(jù)加密,加密文檔的建立可以有效提升數(shù)據(jù)存儲(chǔ)的安全性和可靠性,降低數(shù)據(jù)泄露、數(shù)據(jù)竊取的概率。首先,數(shù)據(jù)存儲(chǔ)的明文可能是文字、圖片、數(shù)字化音頻等,假設(shè)存在某一待加密存儲(chǔ)數(shù)據(jù)m,加密后的數(shù)據(jù)為c,m和c的長度可以相同,c的長度也可以長于m,在加密函數(shù)E下,m映射到c的過程可表示為:
相反,在解密函數(shù)D的作用下,由c到m的恢復(fù)過程可表示為:
待存儲(chǔ)數(shù)據(jù)經(jīng)過加密之后再經(jīng)過解密,原始的數(shù)據(jù)內(nèi)容將被復(fù)原:
一個(gè)完善的數(shù)據(jù)加密和解密過程的條件是數(shù)據(jù)存儲(chǔ)的明文和密文之間的信息交換為0,即存在:
I(m,c)的計(jì)算公式為:
即有:
其中,H(m)表示數(shù)據(jù)存儲(chǔ)的明文的熵;H(c)表示數(shù)據(jù)存儲(chǔ)的密文的熵;H(m,c)表示聯(lián)合熵;M表示明文空間;C表示密文空間;p表示運(yùn)算法則[13-14]。
3)物聯(lián)網(wǎng)數(shù)據(jù)的同步存儲(chǔ)。Hadoop技術(shù)以HDFS和MapReduce 為核心,在分布式架構(gòu)的基礎(chǔ)上開發(fā)分布式程序,充分發(fā)揮集群的能力[15-18],為海量數(shù)據(jù)的存儲(chǔ)和計(jì)算提供便利,具有較高的可靠性、高效性、容錯(cuò)性以及可伸縮性。
為了驗(yàn)證該文提出的基于Hadoop 技術(shù)的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)的有效性,對(duì)該文系統(tǒng)與傳統(tǒng)的基于區(qū)塊鏈的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)、基于云計(jì)算的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)進(jìn)行實(shí)驗(yàn)對(duì)比。設(shè)定實(shí)驗(yàn)環(huán)境如表1 所示。

表1 實(shí)驗(yàn)環(huán)境
根據(jù)上述實(shí)驗(yàn)參數(shù),選用該文研究的系統(tǒng)和傳統(tǒng)系統(tǒng)對(duì)HBase 存儲(chǔ)業(yè)務(wù)進(jìn)行同步查詢和分析,比較在查詢相同數(shù)量信息時(shí),傳統(tǒng)系統(tǒng)和該文系統(tǒng)在執(zhí)行run 操作時(shí),MySQL 數(shù)據(jù)庫和HBase 數(shù)據(jù)庫的耗時(shí)比,得到的實(shí)驗(yàn)結(jié)果如圖5-6 所示。

圖5 MySQL數(shù)據(jù)庫耗時(shí)比實(shí)驗(yàn)結(jié)果
觀察圖5 可知,隨著數(shù)據(jù)量的增加,三種系統(tǒng)的耗時(shí)出現(xiàn)明顯差別,當(dāng)數(shù)據(jù)量為100×103個(gè)時(shí),傳統(tǒng)云計(jì)算系統(tǒng)耗時(shí)急劇增加,當(dāng)數(shù)據(jù)量為250×103個(gè)時(shí),傳統(tǒng)云計(jì)算系統(tǒng)耗時(shí)急劇增加,而該文系統(tǒng)耗時(shí)始終要少于傳統(tǒng)的兩種系統(tǒng)。造成這種現(xiàn)象的原因是該文設(shè)計(jì)的存儲(chǔ)器采用的是SPRTAN-2 的芯片,考慮到物聯(lián)網(wǎng)數(shù)據(jù)特點(diǎn),以Hadoop 技術(shù)為基礎(chǔ),結(jié)合其分布式架構(gòu)設(shè)計(jì)了分布式的存儲(chǔ)器內(nèi)部結(jié)構(gòu),使存儲(chǔ)器具備較大的存儲(chǔ)空間,同時(shí)加快數(shù)據(jù)存入和提取的響應(yīng)速度。
根據(jù)圖6 可知,該文系統(tǒng)在數(shù)據(jù)量低于50×103個(gè)時(shí),耗時(shí)高于傳統(tǒng)系統(tǒng),但是隨著數(shù)據(jù)量增加,該文系統(tǒng)的耗時(shí)增長率越來越低,而傳統(tǒng)系統(tǒng)卻不斷增加,實(shí)際可操作性差。造成這種現(xiàn)象的原因是系統(tǒng)硬件的運(yùn)行模式存在一定差異性,在運(yùn)行一段時(shí)間后,各個(gè)硬件的時(shí)間模塊可能存在微小的差異,運(yùn)行時(shí)間越長,時(shí)間差異越明顯,最終導(dǎo)致數(shù)據(jù)記錄和存儲(chǔ)的時(shí)間基準(zhǔn)不一致,易導(dǎo)致數(shù)據(jù)存儲(chǔ)誤差,而該文以時(shí)間戳為基礎(chǔ),設(shè)計(jì)同步記錄和存儲(chǔ)方式,在待存儲(chǔ)數(shù)據(jù)集中插入時(shí)間戳,以絕對(duì)時(shí)間和相對(duì)時(shí)間為參考標(biāo)準(zhǔn)進(jìn)行時(shí)間基準(zhǔn)校正,其中,相對(duì)時(shí)間為系統(tǒng)開始進(jìn)行數(shù)據(jù)采集的時(shí)間,絕對(duì)時(shí)間一般默認(rèn)為是北京時(shí)間,具有固定性,通過這種時(shí)間校正方式,能夠保證數(shù)據(jù)記錄與數(shù)據(jù)存儲(chǔ)在時(shí)間維度上的高度一致性,便于將數(shù)據(jù)存儲(chǔ)到正確的存儲(chǔ)空間,且相同的時(shí)間屬性更便于進(jìn)行數(shù)據(jù)查詢,因此該文系統(tǒng)的耗時(shí)更短。

圖6 HBase數(shù)據(jù)庫耗時(shí)比實(shí)驗(yàn)結(jié)果
隨著物聯(lián)網(wǎng)數(shù)據(jù)量的不斷增加以及種類的日漸豐富,針對(duì)物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)需求逐漸升高,傳統(tǒng)物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng)雖然成本低且易于實(shí)現(xiàn),但存儲(chǔ)效率較低、存儲(chǔ)延遲較高,因此,為滿足數(shù)據(jù)的同步存儲(chǔ)需求,完善傳統(tǒng)系統(tǒng)的不足,該文設(shè)計(jì)了基于Hadoop 技術(shù)的物聯(lián)網(wǎng)大數(shù)據(jù)同步存儲(chǔ)系統(tǒng),采用加密算法對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密處理,保證數(shù)據(jù)存儲(chǔ)的安全性和穩(wěn)定性。