王民明 吳玉鑫 王超 范檸檸 蔡天巍
摘? ?要:目前,國(guó)內(nèi)大數(shù)據(jù)行業(yè)發(fā)展得如火如荼。作為互聯(lián)網(wǎng)時(shí)代新興產(chǎn)業(yè),大數(shù)據(jù)與工業(yè)互聯(lián)網(wǎng)的結(jié)合實(shí)現(xiàn)了工業(yè)數(shù)據(jù)的網(wǎng)絡(luò)化,賦予了大數(shù)據(jù)更廣闊的應(yīng)用空間和新的生命力。文章開(kāi)發(fā)了一款針對(duì)工業(yè)設(shè)備的企業(yè)大數(shù)據(jù)分析展示系統(tǒng),用于對(duì)企業(yè)設(shè)備上云的數(shù)據(jù)進(jìn)行挖掘處理、劃分適當(dāng)類(lèi)別、構(gòu)建運(yùn)行相關(guān)指數(shù)模型、進(jìn)行指數(shù)預(yù)測(cè)分析,并將數(shù)據(jù)進(jìn)行可視化展示。
關(guān)鍵詞:大數(shù)據(jù);工業(yè)設(shè)備;Hadoop
近年來(lái),大數(shù)據(jù)越來(lái)越熱門(mén),日漸應(yīng)用于生活中,越來(lái)越多的企業(yè)把大數(shù)據(jù)提升到公司戰(zhàn)略層面,而關(guān)于大數(shù)據(jù)的討論也越來(lái)越熱烈。利用大數(shù)據(jù)開(kāi)展工作是技術(shù)驅(qū)動(dòng)還是業(yè)務(wù)需求驅(qū)動(dòng)的爭(zhēng)論一直都存在,但是如何讓大數(shù)據(jù)發(fā)揮出應(yīng)有的價(jià)值才是企業(yè)大數(shù)據(jù)戰(zhàn)略的目標(biāo)所在。
目前,長(zhǎng)三角地區(qū)在“企業(yè)上云”方面先行先試,重點(diǎn)行業(yè)和重點(diǎn)工業(yè)設(shè)備上云如火如荼。云平臺(tái)已積累了大量企業(yè)用戶(hù)的基礎(chǔ)信息與設(shè)備運(yùn)行等數(shù)據(jù),深入發(fā)掘數(shù)據(jù)價(jià)值,將助力監(jiān)控和預(yù)測(cè)宏觀經(jīng)濟(jì)發(fā)展,提升對(duì)行業(yè)及區(qū)域工業(yè)發(fā)展的掌控能力。
本團(tuán)隊(duì)開(kāi)發(fā)了針對(duì)工業(yè)設(shè)備的企業(yè)大數(shù)據(jù)分析展示系統(tǒng),主要對(duì)采得的設(shè)備數(shù)據(jù)分析監(jiān)控,幫助企業(yè)監(jiān)控設(shè)備,幫助行業(yè)發(fā)掘數(shù)據(jù)價(jià)值。
1? ? 主要技術(shù)簡(jiǎn)介
系統(tǒng)主要采用Hadoop進(jìn)行數(shù)據(jù)處理,系統(tǒng)框架使用了Spring Boot,前端開(kāi)發(fā)使用了Vue.js。
(1)Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS),有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的(low-cost)硬件上;提供高吞吐量(high throughput)來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(wèn)(streaming access)文件系統(tǒng)中的數(shù)據(jù)[1]。
Hadoop的框架最核心的設(shè)計(jì)就是HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。
(2)Spring Boot使用了特定的方式來(lái)進(jìn)行配置,使開(kāi)發(fā)人員不再需要定義樣板化的配置。Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開(kāi)發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
(3)Vue.js是一個(gè)構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的Web界面的漸進(jìn)式框架。Vue.js通過(guò)盡可能簡(jiǎn)單地應(yīng)用程序編程接口(Application Programming Interface,API)實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件,同樣便于與第三方庫(kù)或既有項(xiàng)目整合。當(dāng)與單文件組件和Vue生態(tài)系統(tǒng)支持的庫(kù)結(jié)合使用時(shí),Vue也完全能夠?yàn)閺?fù)雜的單頁(yè)應(yīng)用程序提供驅(qū)動(dòng)[2]。
2? ? 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)主要分為前端與后端兩大模塊。
首先,后端用Java編寫(xiě),應(yīng)用Spring Boot的3層架構(gòu),引用HBase的JavaApi對(duì)HBase的數(shù)據(jù)進(jìn)行操作(確定表名、行鍵、列族和列即可取到值)。根據(jù)各個(gè)維度的需求進(jìn)行處理,返回給前端對(duì)應(yīng)的json數(shù)據(jù)格式。整體架構(gòu)分為3層:dao層、service層、controller層,如圖1所示。
(1)dao層,主要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,HBaseConn是用來(lái)連接habse的,HBaseUtil是操作hbas所對(duì)應(yīng)的方法。Demo為Dao接口實(shí)現(xiàn)的一個(gè)類(lèi),主要用來(lái)獲取數(shù)據(jù)庫(kù)的值。傳輸給service層。
data包中有很多類(lèi),這些類(lèi)是所有維度的實(shí)例類(lèi)。對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一張表,類(lèi)中的成員變量對(duì)應(yīng)數(shù)據(jù)庫(kù)中的字段名。并有g(shù)et,set方法。
(2)Service層,該層中所有邏輯代碼都放在這一層,主要用來(lái)處理所有維度。接收dao層的數(shù)據(jù)。定義接口Service_inter在里面創(chuàng)建方法,用Impl去具體實(shí)現(xiàn)對(duì)應(yīng)維度的方法。定義dao層的接口對(duì)象private Dao dao = new Demo();dao中只有一個(gè)取數(shù)據(jù)庫(kù)值的方法。用dao.getCf(tableName, String.valueOf(i), “enterpriseId”,”equipmentId”)取對(duì)應(yīng)表的值,創(chuàng)建對(duì)應(yīng)維度的對(duì)象,循環(huán)給對(duì)象復(fù)制,再用Map存入。最后返回?cái)?shù)據(jù):return new Gson().toJson(map);
(3)Controller層,用指定的攔截器來(lái)接收Service層傳來(lái)的json數(shù)據(jù)。創(chuàng)建service層接口對(duì)象:private Service_inter service_inter;用@ Autowired自動(dòng)注入。
其次,前端主要負(fù)責(zé)數(shù)據(jù)可視化,由以下4個(gè)模塊構(gòu)成:主要工業(yè)信息、故障設(shè)備信息、企業(yè)設(shè)備信息、地理分布,系統(tǒng)結(jié)構(gòu)如圖2所示。
3? ? 系統(tǒng)運(yùn)行
系統(tǒng)已經(jīng)通過(guò)測(cè)試,各模塊運(yùn)行穩(wěn)定,系統(tǒng)響應(yīng)迅速??梢栽赑C端與手機(jī)端查看,系統(tǒng)界面美好、操作簡(jiǎn)單,系統(tǒng)展示如圖3—4所示。
[參考文獻(xiàn)]
[1]譚磊,范磊.Hadoop應(yīng)用實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2017.
[2]MERCYBLIZ.Spring Boot編程思想(核心篇)[M].北京:電子工業(yè)出版社,2019.