李 明,李明春,劉世超
(烽火通信科技股份有限公司,武漢 430074)
近年來,隨著第五代移動(dòng)通信技術(shù)(5th Generation Mobile Communication Technology,5G)的普及以及網(wǎng)絡(luò)帶寬的不斷發(fā)展,無線訪問接入點(diǎn)[1](Access Point,AP)設(shè)備產(chǎn)生的物聯(lián)網(wǎng)[2](Internet of Things,IoT)數(shù)據(jù)呈現(xiàn)驚人的增長趨勢(shì),而傳統(tǒng)的IoT管理平臺(tái)數(shù)據(jù)分析模塊面對(duì)如此大量的接入數(shù)據(jù),相應(yīng)數(shù)據(jù)分析時(shí)長的增加,成了當(dāng)前必須要解決的首要任務(wù),引入大數(shù)據(jù)[3]流式計(jì)算和離線計(jì)算后很好地解決了數(shù)據(jù)處理時(shí)數(shù)據(jù)量過大的難題,但是面對(duì)較高頻率的上送數(shù)據(jù)持久化存儲(chǔ)成本以及相關(guān)數(shù)據(jù)倉庫[4]的建設(shè)成本也亟需解決。
IoT數(shù)據(jù)的一大特性就是數(shù)據(jù)重復(fù),比如100萬臺(tái)設(shè)備5 min上送一次數(shù)據(jù),每天即可產(chǎn)生幾百Gbit的數(shù)據(jù),而這些數(shù)據(jù)中包含了大量的重復(fù)數(shù)據(jù),數(shù)據(jù)的全部收錄將會(huì)增加企業(yè)的網(wǎng)絡(luò)傳輸成本以及數(shù)據(jù)倉庫構(gòu)建成本,如果將所有數(shù)據(jù)收錄至數(shù)據(jù)倉庫,再構(gòu)建不同層次的數(shù)倉,數(shù)據(jù)量又會(huì)呈現(xiàn)出翻倍增長的情況,龐大的數(shù)據(jù)量對(duì)于數(shù)據(jù)分析和異常識(shí)別[5]等造成計(jì)算資源的浪費(fèi)以及數(shù)據(jù)處理時(shí)效性的降低。
基于原有IoT平臺(tái)對(duì)于無線AP的設(shè)備接入、設(shè)備管理、數(shù)據(jù)流轉(zhuǎn)以及數(shù)據(jù)分析,本文提出了基于異常識(shí)別與有損壓縮的無線AP數(shù)倉構(gòu)建方法,使用了一種有損壓縮[6-7]方法,對(duì)于無線AP傳輸?shù)腎oT數(shù)據(jù)可以通過流式計(jì)算以及基于K-means聚類算法[8-9]的異常識(shí)別方式進(jìn)行有損數(shù)據(jù)壓縮,主要處理設(shè)備運(yùn)行中存在的較多重復(fù)數(shù)據(jù)且數(shù)據(jù)存儲(chǔ)精度要求不高,比如信號(hào)強(qiáng)度和帶寬等。通過以信號(hào)強(qiáng)度為例的具體實(shí)驗(yàn)驗(yàn)證了本文所提方法的可行性,彌補(bǔ)了現(xiàn)有無線AP數(shù)據(jù)構(gòu)建數(shù)倉解決方案中的數(shù)據(jù)量過大的問題。
IoT技術(shù)目前在各行各業(yè)已經(jīng)逐漸落地實(shí)踐,其產(chǎn)生的社會(huì)經(jīng)濟(jì)效益也越來越明顯,IoT平臺(tái)是一個(gè)集成了設(shè)備管理、數(shù)據(jù)安全通信和消息訂閱等能力的一體化平臺(tái)。向下支持連接海量設(shè)備?;贏P設(shè)備的IoT平臺(tái)實(shí)現(xiàn)了對(duì)AP設(shè)備的管理、連接管理和數(shù)據(jù)分析等一系列功能,同時(shí)在大數(shù)據(jù)的支持下實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的采集、處理、挖掘和展示。
數(shù)據(jù)倉庫主要功能是將組織透過資訊系統(tǒng)之聯(lián)機(jī)事務(wù)處理(On-Line Transaction Processing,OLTP)經(jīng)年累月所累積的大量資料,透過數(shù)據(jù)倉庫理論所特有的資料儲(chǔ)存架構(gòu),系統(tǒng)地分析整理,以利于進(jìn)行各種分析如聯(lián)機(jī)分析處理(On-Line Analytical Processing,OLAP)和數(shù)據(jù)挖掘(Data Mining),幫助決策者能快速有效地從大量資料中分析出有價(jià)值的資訊,以利決策擬定及快速回應(yīng)外在環(huán)境變動(dòng)。
為充分有效利用無線AP數(shù)據(jù),本文在IoT設(shè)備連接的基礎(chǔ)上設(shè)計(jì)了數(shù)據(jù)采集[10]、數(shù)據(jù)處理和數(shù)倉實(shí)現(xiàn)數(shù)據(jù)整體架構(gòu),如圖1所示,主要由消息中間件、HDFS、實(shí)時(shí)計(jì)算和離線計(jì)算等組件構(gòu)成。本文中實(shí)現(xiàn)的無線AP數(shù)據(jù)數(shù)倉分層主要分為:數(shù)據(jù)緩存層、數(shù)據(jù)近源層、公共明細(xì)層、公共匯總層和數(shù)據(jù)應(yīng)用層。無線AP IoT數(shù)據(jù)經(jīng)由IoT平臺(tái)的設(shè)備連接至消息隊(duì)列,集成至緩存層進(jìn)行數(shù)據(jù)壓縮后進(jìn)入操作數(shù)據(jù) (Operation Data Store,ODS)層;明細(xì)數(shù)據(jù) (Data Warehouse Details,DWD)層負(fù)責(zé)轉(zhuǎn)碼/清洗,異常&缺失值處理,計(jì)算加工邏輯,按業(yè)務(wù)過程分表;業(yè)務(wù)數(shù)據(jù) (Data Warehouse Service,DWS)基于業(yè)務(wù)需求的原始粒度明細(xì)事實(shí)的整合匯總,采用一致性維度建模;應(yīng)用數(shù)據(jù)服務(wù) (Application Data Service,ADS)層面向業(yè)務(wù)需求的應(yīng)用模型,基于應(yīng)用進(jìn)行數(shù)據(jù)組裝,定制化,提供數(shù)據(jù)應(yīng)用。
圖1 數(shù)據(jù)采集處理和數(shù)倉實(shí)現(xiàn)整體架構(gòu)圖Figure 1 The overall architecture diagram of data acquisition and processing and data warehouse realization
為提高處理AP設(shè)備上送數(shù)據(jù)的實(shí)時(shí)性,本文設(shè)計(jì)了基于flume的數(shù)據(jù)集成方式,采用Spark Streaming的window以及Spark Ml來實(shí)現(xiàn)數(shù)據(jù)的異常識(shí)別以及正常數(shù)據(jù)基于窗口數(shù)據(jù)均值的有損壓縮技術(shù),該過程主要包括數(shù)據(jù)集成、數(shù)據(jù)異常識(shí)別、數(shù)據(jù)壓縮和持久化存儲(chǔ)模塊。
本方案在SSA中實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備數(shù)據(jù)壓縮;基于K-means算法與先驗(yàn)知識(shí)結(jié)合的方式, 基于數(shù)據(jù)是否異常制定數(shù)據(jù)下發(fā)方案。正常數(shù)據(jù)時(shí),采集的設(shè)備數(shù)據(jù)處于平穩(wěn)變化,取當(dāng)前窗口平均值下發(fā);異常數(shù)據(jù)時(shí),異常數(shù)據(jù)點(diǎn)前后1 min數(shù)據(jù)根據(jù)媒體存取控制(Media Access Control,MAC)和時(shí)間字段去重后下發(fā);該方案主要處理設(shè)備運(yùn)行中存在較多重復(fù)數(shù)據(jù)的指標(biāo),且該指標(biāo)數(shù)據(jù)存儲(chǔ)精度要求不高,本文以信號(hào)強(qiáng)度數(shù)據(jù)為例。具體的實(shí)現(xiàn)過程如圖2所示。
圖2 信號(hào)強(qiáng)度RSSI數(shù)據(jù)處理過程Figure 2 The scheme of signal strength RSSI data processing
數(shù)據(jù)壓縮過程主要包含4部分內(nèi)容:
(1) 數(shù)據(jù)集成:在緩存層將終端設(shè)備上送數(shù)據(jù)集成至HDFS中,用于構(gòu)建模型以及異常識(shí)別測(cè)試。數(shù)據(jù)集成使用flume組件實(shí)時(shí)采集kafka消息隊(duì)列中的接收信號(hào)強(qiáng)度指示(Received Signal Strength Indicator,RSSI),同步至HDFS中。
(2) 異常數(shù)據(jù)識(shí)別:基于先驗(yàn)知識(shí)以及專家知識(shí)庫中獲得異常數(shù)據(jù)樣本取樣,使用Spark ML構(gòu)建K-means模型對(duì)上送數(shù)據(jù)進(jìn)行聚類分析,結(jié)合取樣異常數(shù)據(jù)進(jìn)行綜合判斷。
(3) 有損壓縮:數(shù)據(jù)識(shí)別為異常后,取異常評(píng)分?jǐn)?shù)據(jù)前后1 min的數(shù)據(jù),根據(jù)MAC地址和時(shí)間字段去重后進(jìn)行下發(fā),同時(shí)將異常數(shù)據(jù)告警信號(hào)下發(fā);正常數(shù)據(jù)取15 min窗口中每個(gè)設(shè)備正常值的平均值下發(fā)。
(4) 持久化存儲(chǔ):有損壓縮后的數(shù)據(jù)持久化存儲(chǔ)至近源層中,為后面的數(shù)據(jù)分析提供數(shù)據(jù)源。
經(jīng)由flume同步至HDFS中的數(shù)據(jù),需要經(jīng)過有損壓縮后進(jìn)入ODS層進(jìn)行數(shù)據(jù)持久化存儲(chǔ)以及數(shù)據(jù)規(guī)范管理。本文在異常識(shí)別中,為了使識(shí)別結(jié)果更加準(zhǔn)確,通過參考異常生成器結(jié)合K-means聚類算法的方式構(gòu)建了異常識(shí)別算法。上送信號(hào)強(qiáng)度RSSI字段經(jīng)歸一化處理后形成特征字段,K-means聚類算法將特征字段聚類后取異常數(shù)據(jù)在redis中進(jìn)行緩存,通過與參考異常生成器數(shù)據(jù)進(jìn)行比對(duì),若異常數(shù)據(jù)超過參考異常生成器數(shù)據(jù)中的異常值,則認(rèn)定該數(shù)據(jù)為異常,根據(jù)異常數(shù)據(jù)數(shù)值范圍發(fā)送相應(yīng)告警信號(hào),截取數(shù)據(jù)前后1 min數(shù)據(jù)進(jìn)行數(shù)據(jù)下發(fā);若數(shù)據(jù)值不超過參考異常生成器中的最低異常值,則認(rèn)定聚類中無異常數(shù)據(jù),從redis中將該數(shù)據(jù)刪除,同時(shí)取窗口數(shù)據(jù)平均值進(jìn)行下發(fā)。
參考異常生成器:為了增加異常數(shù)據(jù)識(shí)別的準(zhǔn)確度以及增加丟包判斷標(biāo)準(zhǔn),使用該模塊生成參考異常值。設(shè)μR為參考異常,定義為l個(gè)正常樣本異常分?jǐn)?shù){r1,r2,…,rl}的均值,采用先驗(yàn)方式獲取此值:
K-means異常識(shí)別模型:K-means算法的思想如下:對(duì)于給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個(gè)簇。讓簇內(nèi)的點(diǎn)盡量緊密地連在一起,而讓簇間距離盡量大。K-means算法使用距離來描述兩個(gè)數(shù)據(jù)對(duì)象之間的相似度。距離函數(shù)有明式距離、歐氏距離、馬式距離和蘭氏距離,最常用的是歐氏距離。K-means算法是當(dāng)準(zhǔn)則函數(shù)達(dá)到最優(yōu)或者達(dá)到最大的迭代次數(shù)時(shí)即可終止。當(dāng)采用歐氏距離時(shí),如果用數(shù)據(jù)表達(dá)式表示,假設(shè)簇劃分為(c1,c2,…,ck),則我們的目標(biāo)是最小化平方誤差E,
式中:k為簇的個(gè)數(shù);ci為第i個(gè)簇的中心點(diǎn);dist(ci,x)為x到ci的距離。
實(shí)驗(yàn)用通用路由器一臺(tái),通用智能手機(jī)一部,實(shí)驗(yàn)代碼在Spark集群中運(yùn)行,集群配置為3臺(tái)Intel(R) Xeon(R) Gold 5120 CPU @ 2.20 GHzcpu,16 G內(nèi)存服務(wù)器,操作系統(tǒng)為CentOS7.9。對(duì)于K-means聚類算法,K值選取采用誤差平方和 (Sum of Squares due to Error,SSE)評(píng)價(jià)指標(biāo)進(jìn)行評(píng)價(jià)。采用壓縮后的文件大小與原文件大小比值的形式來進(jìn)行壓縮率的評(píng)價(jià)。
為驗(yàn)證本文算法的有效性,將連接有一臺(tái)終端設(shè)備的無線AP接入IoT平臺(tái)進(jìn)行實(shí)際驗(yàn)證,終端上送數(shù)據(jù)為每秒1條,通過IoT平臺(tái)收集終端上送數(shù)據(jù),其中正常樣本為設(shè)備在無線AP附近獲取,通過移動(dòng)設(shè)備增加設(shè)備與無線AP的距離,實(shí)現(xiàn)異常樣本的采集。采集3 h數(shù)據(jù),每小時(shí)數(shù)據(jù)為一組,將數(shù)據(jù)分為3組進(jìn)行實(shí)驗(yàn),每組數(shù)據(jù)樣本總數(shù)均為3 600條,保證每小時(shí)數(shù)據(jù)中都包含了異常數(shù)據(jù)以及正常上送數(shù)據(jù)。如表1所示,其中第1小時(shí)數(shù)據(jù)異常樣本數(shù)為23條,正常樣本數(shù)為3 577條;第2小時(shí)數(shù)據(jù)異常樣本數(shù)為106條,正常樣本數(shù)為3 494條;第3小時(shí)(訓(xùn)練數(shù)據(jù)集)異常樣本數(shù)為129條,正常樣本數(shù)為3 471條。
表1 終端上送數(shù)據(jù)集
在Spark集群中對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行歸一化處理后運(yùn)行K-means聚類程序,對(duì)K值采用實(shí)驗(yàn)的方式獲取,通過不斷調(diào)整K值大小,得到在不同K值下的最小化平方誤差E,E越小說明聚類效果越好,實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 K值大小與E的趨勢(shì)圖Figure 3 The value of K and the trend chart of E
結(jié)果表明,K=3時(shí),E逐漸平滑,根據(jù)拐點(diǎn)法確認(rèn)K=3時(shí),可以作為聚類時(shí)的參數(shù),聚類中心的選擇使用“K-means||”方式。
經(jīng)參考異常生成器獲得差信號(hào)強(qiáng)度為-80 dBm,很差信號(hào)強(qiáng)度為-90 dBm?;诰垲惤Y(jié)果與參考異常生成器綜合判斷邏輯如圖4所示。經(jīng)過K-means模型與參考異常生成器綜合判斷訓(xùn)練數(shù)據(jù)集中的異常檢測(cè)結(jié)果如表2所示。
圖4 基于聚類結(jié)果與參考異常生成器綜合判斷邏輯Figure 4 Comprehensive judgment logic based on clustering results and reference exception generator
表2 異常檢測(cè)結(jié)果
其中劃分為異常數(shù)據(jù)組,但是不滿足信號(hào)強(qiáng)度≤-80 dBm的數(shù)據(jù)有6條,基于K=3的K-means聚類算法實(shí)現(xiàn)的判斷準(zhǔn)確率為95.6%。同樣對(duì)另外兩個(gè)測(cè)試數(shù)據(jù)集進(jìn)行相同處理,異常檢測(cè)結(jié)果如表3所示。
表3 異常檢測(cè)結(jié)果
在測(cè)試數(shù)據(jù)集中,兩個(gè)數(shù)據(jù)集的識(shí)別率分別為99%和85%。根據(jù)綜合判斷,將該異常識(shí)別錯(cuò)誤的數(shù)據(jù)從redis中剔除,在本窗口中,根據(jù)綜合判斷的異常數(shù)據(jù)取時(shí)間字段,對(duì)異常數(shù)據(jù)前后1 min的數(shù)據(jù)進(jìn)行抽取,同時(shí)根據(jù)MAC以及時(shí)間字段去重后下發(fā)。
實(shí)驗(yàn)測(cè)試過程中,測(cè)試數(shù)據(jù)集1的數(shù)據(jù)時(shí)間區(qū)間為2022-02-20 15∶33∶00~ 2022-02-20 16∶32∶59,測(cè)試數(shù)據(jù)集2的數(shù)據(jù)時(shí)間區(qū)間為2022-02-20 16∶33∶00~ 2022-02-20 17∶32∶59。其中測(cè)試數(shù)據(jù)集1的異常數(shù)據(jù)起始點(diǎn)為2022-02-20 16∶05∶02~ 2022-02-20 16∶06∶47,測(cè)試數(shù)據(jù)集2的異常數(shù)據(jù)起始點(diǎn)為2022-02-20 17∶23∶37~ 2022-02-20 17∶23∶59。程序基于圖4的一場(chǎng)判別有損壓縮邏輯,最終取得測(cè)試數(shù)據(jù)集1和測(cè)試數(shù)據(jù)集2的有損壓縮數(shù)據(jù)總條數(shù)分別為229和149條。詳細(xì)數(shù)據(jù)比對(duì)如表4所示。
表4 數(shù)據(jù)壓縮對(duì)比
通過兩組測(cè)試數(shù)據(jù)與原始數(shù)據(jù)的對(duì)比,表明本文方案可以在保證識(shí)別異常數(shù)據(jù)、保留異常數(shù)據(jù)細(xì)節(jié)動(dòng)作的同時(shí),很好地降低無線AP重復(fù)性上送數(shù)據(jù)的存儲(chǔ)占用空間,可以大大降低用戶的存儲(chǔ)成本。
為了降低無線AP數(shù)據(jù)的數(shù)倉實(shí)現(xiàn)成本,本文提出了基于緩存層實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備數(shù)據(jù)壓縮的方法,設(shè)計(jì)了結(jié)合流式計(jì)算和異常識(shí)別決策數(shù)據(jù)下發(fā)框架,根據(jù)無線AP上送數(shù)據(jù)的特點(diǎn),結(jié)合機(jī)器學(xué)習(xí)和流式計(jì)算,通過對(duì)信號(hào)強(qiáng)度的實(shí)際實(shí)驗(yàn),驗(yàn)證了本文方法的可行性以及經(jīng)濟(jì)性。本文所提方法同樣可以用于其他IoT領(lǐng)域,如電力終端、智慧家庭和智慧工業(yè)等領(lǐng)域,以降低IoT設(shè)備的數(shù)倉構(gòu)建和數(shù)據(jù)存儲(chǔ)成本,同時(shí)對(duì)于異常數(shù)據(jù)的識(shí)別提供了一種很好的辦法。當(dāng)然,對(duì)于方法中單一特征值也可以進(jìn)行相應(yīng)的擴(kuò)充,比如信號(hào)強(qiáng)度字段與丟包率和網(wǎng)速結(jié)合形成多特征的聚類能夠更好地識(shí)別異常。