前面,我們?cè)?a href="http://www.itdecent.cn/p/30d0d781e320" target="_blank">物聯(lián)網(wǎng)學(xué)習(xí)(1)中介紹了物聯(lián)網(wǎng)系統(tǒng)的分層。然后,在物聯(lián)網(wǎng)學(xué)習(xí)(2)和物聯(lián)網(wǎng)學(xué)習(xí)(3)中分別介紹了設(shè)備層的關(guān)鍵技術(shù)——通信技術(shù)和網(wǎng)絡(luò)層的關(guān)鍵技術(shù)——網(wǎng)絡(luò)協(xié)議。
這一節(jié),我們講講應(yīng)用層中的關(guān)鍵部分,怎樣對(duì)數(shù)據(jù)進(jìn)行分析。
7 數(shù)據(jù)分析
7.1 為什么要對(duì)數(shù)據(jù)進(jìn)行分析
數(shù)據(jù)本身是沒(méi)有價(jià)值的,或者說(shuō)有價(jià)值的是數(shù)據(jù)中包含的信息以及對(duì)信息的應(yīng)用。就好比以往股票價(jià)格的數(shù)據(jù),大家都可以獲取到,這些數(shù)據(jù)本身沒(méi)有什么價(jià)值,只有從這些數(shù)據(jù)中準(zhǔn)確推斷出后續(xù)股票漲跌的預(yù)測(cè)信息,并及時(shí)購(gòu)買或拋售,才能帶來(lái)價(jià)值。
因此,我們需要對(duì)物聯(lián)網(wǎng)采集的數(shù)據(jù)進(jìn)行分析和應(yīng)用。
7.2 從數(shù)據(jù)的維度來(lái)分析物聯(lián)網(wǎng)
讓我們把目光聚焦在數(shù)據(jù)這一個(gè)維度,來(lái)重新分析一下物聯(lián)網(wǎng)。從數(shù)據(jù)的“生產(chǎn)”到“消費(fèi)”的過(guò)程做一個(gè)更加詳細(xì)的分析,用宏觀的視角看看需要怎樣的技術(shù)體系。
7.2.1 數(shù)據(jù)采集
每一個(gè)原始數(shù)據(jù),都有其“生產(chǎn)者”,通常我們稱之為“數(shù)據(jù)源”。(這個(gè)和我們?cè)陂_發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí)提到的DataSource是不一樣的,不要弄混淆了。)
數(shù)據(jù)源采集和參數(shù)數(shù)據(jù),然后通過(guò)物聯(lián)網(wǎng),傳遞到應(yīng)用層。由于物聯(lián)網(wǎng)的通信特點(diǎn),可能還需要對(duì)數(shù)據(jù)做一些臨時(shí)的保存工作。
從宏觀的角度來(lái)看,數(shù)據(jù)源采集的數(shù)據(jù)類型多種多樣,對(duì)應(yīng)的數(shù)據(jù)采集設(shè)備也多種多樣。例如采集溫度、濕度等的傳感器、采集視頻的攝像頭、采集聲音的錄音設(shè)備等等。
這些終端設(shè)備中,需要有嵌入式系統(tǒng)進(jìn)行支撐。
7.2.2 數(shù)據(jù)傳輸
采集到的數(shù)據(jù),需要上傳到物聯(lián)網(wǎng)應(yīng)用平臺(tái),這個(gè)過(guò)程就是數(shù)據(jù)傳輸。數(shù)據(jù)傳輸?shù)囊笫强焖佟⒖煽俊?/p>
從宏觀的角度來(lái)看,數(shù)據(jù)傳輸?shù)碾y點(diǎn)是高并發(fā)。很多物聯(lián)網(wǎng)應(yīng)用中連接的設(shè)備數(shù)量很多,并且這些設(shè)備都是源源不斷的產(chǎn)生和上傳數(shù)據(jù),因此要求應(yīng)用平臺(tái)具備處理高并發(fā)的能力,能夠有效、可靠的接收數(shù)據(jù)。
高并發(fā)的實(shí)現(xiàn),需要分布式系統(tǒng)的支持,同時(shí)要引入負(fù)載均衡、消息隊(duì)列、緩存等相關(guān)的技術(shù)。
7.2.3 數(shù)據(jù)存儲(chǔ)
數(shù)據(jù)傳輸?shù)轿锫?lián)網(wǎng)應(yīng)用平臺(tái)之后,需要進(jìn)行存儲(chǔ)。這里要解決的問(wèn)題是海量異構(gòu)數(shù)據(jù)的存儲(chǔ)。
比如現(xiàn)在遍布大街小巷的攝像頭,一個(gè)智慧城市系統(tǒng)中的攝像頭每個(gè)月就可以產(chǎn)生數(shù)百PB的數(shù)據(jù)。
在數(shù)據(jù)量大的同時(shí),數(shù)據(jù)的類型和格式還多種多樣,按照特性可以分為3類:
- 結(jié)構(gòu)化數(shù)據(jù):例如用戶信息、設(shè)備參數(shù)等等。
- 半結(jié)構(gòu)化數(shù)據(jù):例如日志記錄、JSON結(jié)構(gòu)的數(shù)據(jù)等。
- 非結(jié)構(gòu)化數(shù)據(jù):例如圖像、視頻、音頻等數(shù)據(jù)。
為了存儲(chǔ)這樣的數(shù)據(jù),對(duì)于海量的結(jié)構(gòu)化數(shù)據(jù),可以采用分布式關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ),并且對(duì)于時(shí)間敏感的數(shù)據(jù),可以采用時(shí)序數(shù)據(jù)庫(kù)。對(duì)于半結(jié)構(gòu)化數(shù)據(jù),可以采用NoSQL數(shù)據(jù)庫(kù),比如MongoDB,Neo4j等來(lái)存儲(chǔ)。對(duì)于非結(jié)構(gòu)化數(shù)據(jù),可以采用HDFS這樣的分布式文件系統(tǒng)來(lái)處理。
7.2.4 數(shù)據(jù)處理
數(shù)據(jù)本身并不能帶來(lái)價(jià)值,因此我們需要對(duì)數(shù)據(jù)進(jìn)行處理。對(duì)于海量數(shù)據(jù),我們就需要用到大數(shù)據(jù)處理引擎。
按照數(shù)據(jù)處理的應(yīng)用場(chǎng)景,有兩種不同的處理方式:
- 批處理:對(duì)批量數(shù)據(jù)進(jìn)行統(tǒng)一處理的方式。特點(diǎn)是吞吐量高,延遲長(zhǎng)。
- 流處理:對(duì)數(shù)據(jù)流進(jìn)行及時(shí)的處理技術(shù),特點(diǎn)是延遲低,能夠滿足快速響應(yīng)的要求。比如基于溫度閾值告警的處理,就可以通過(guò)流處理來(lái)完成。
7.2.5 數(shù)據(jù)應(yīng)用
前面的數(shù)據(jù)采集、傳輸、存儲(chǔ)、處理,都是為了最終的數(shù)據(jù)應(yīng)用,利用數(shù)據(jù)創(chuàng)造價(jià)值。
數(shù)據(jù)產(chǎn)生價(jià)值的方式,大致有以下幾種:
- 挖掘:分析數(shù)據(jù)的規(guī)律和管理關(guān)系,一個(gè)經(jīng)典的應(yīng)用就是用戶畫像和購(gòu)買習(xí)慣的分析。
- 預(yù)測(cè):構(gòu)建預(yù)測(cè)模型,比如我們經(jīng)常可以看到共享單車公司將單車各個(gè)地方收集整理后投放到指定的位置,這些位置的選擇就是通過(guò)預(yù)測(cè)得出的。
- 控制決策:例如根據(jù)光線變化打開關(guān)閉電燈,根據(jù)溫度變化打開空調(diào)等等。
- 可視化:一種是單個(gè)數(shù)據(jù)的可視化,例如我們使用滴滴打車的時(shí)候顯示司機(jī)的位置。一種是統(tǒng)計(jì)數(shù)據(jù)的可視化,例如直方圖、曲線圖等。
所有的這些應(yīng)用,都是需要通過(guò)一些算法來(lái)實(shí)現(xiàn)的。由于數(shù)據(jù)量巨大,使用人工分析是不可能的,因此通常使用機(jī)器學(xué)習(xí)、人工智能來(lái)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。
這些算法分為監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)兩大類。
- 監(jiān)督學(xué)習(xí):我們需要告訴算法哪些是對(duì)的,哪些是錯(cuò)的。
- 非監(jiān)督學(xué)習(xí):算法要自己將數(shù)據(jù)中的”異常值“區(qū)分出來(lái)。
7.3 小結(jié)
