導讀:一個物聯(lián)網(wǎng)大數(shù)據(jù)平臺需要具備哪些功能?與通用的大數(shù)據(jù)平臺相比,它需要具備什么樣的特征呢?我們來仔細分析一下。
物聯(lián)網(wǎng)是一個很寬泛的概念,是指各種設備、機器都通過互聯(lián)網(wǎng)連接起來,車聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)等都屬于物聯(lián)網(wǎng)范疇。根據(jù)Gartner報告,聯(lián)網(wǎng)的設備在2019年已經(jīng)超過142億,預計2021年將達到250億,這是一個巨大的數(shù)量。毫無疑問,我們需要一個物聯(lián)網(wǎng)大數(shù)據(jù)平臺來處理這些聯(lián)網(wǎng)設備產(chǎn)生的海量數(shù)據(jù)。
一個物聯(lián)網(wǎng)大數(shù)據(jù)平臺需要具備哪些功能?與通用的大數(shù)據(jù)平臺相比,它需要具備什么樣的特征呢?我們來仔細分析一下。
1. 高效分布式
必須是高效的分布式系統(tǒng)。物聯(lián)網(wǎng)產(chǎn)生的數(shù)據(jù)量巨大,僅中國而言,就有5億多臺智能電表,每臺電表每隔15分鐘采集一次數(shù)據(jù),一天全國智能電表就會產(chǎn)生500多億條記錄。這么大的數(shù)據(jù)量,任何一臺服務器都無能力處理,因此處理系統(tǒng)必須是分布式的,水平擴展的。為降低成本,一個節(jié)點的處理性能必須是高效的,需要支持數(shù)據(jù)的快速寫入和快速查詢。
2. 實時處理
必須是實時處理的系統(tǒng)?;ヂ?lián)網(wǎng)大數(shù)據(jù)處理,大家所熟悉的場景是用戶畫像、推薦系統(tǒng)、輿情分析等等,這些場景并不需要什么實時性,批處理即可。但是對于物聯(lián)網(wǎng)場景,需要基于采集的數(shù)據(jù)做實時預警、決策,延時要控制在秒級以內(nèi)。如果計算沒有實時性,物聯(lián)網(wǎng)的商業(yè)價值就大打折扣。
3. 高可靠性
需要運營商級別的高可靠服務。物聯(lián)網(wǎng)系統(tǒng)對接的往往是生產(chǎn)、經(jīng)營系統(tǒng),如果數(shù)據(jù)處理系統(tǒng)宕機,直接導致停產(chǎn),產(chǎn)生經(jīng)濟有損失、導致對終端消費者的服務無法正常提供。比如智能電表,如果系統(tǒng)出問題,直接導致的是千家萬戶無法正常用電。因此物聯(lián)網(wǎng)大數(shù)據(jù)系統(tǒng)必須是高可靠的,必須支持數(shù)據(jù)實時備份,必須支持異地容災,必須支持軟件、硬件在線升級,必須支持在線IDC機房遷移,否則服務一定有被中斷的可能。
4. 高效緩存
需要高效的緩存功能。絕大部分場景,都需要能快速獲取設備當前狀態(tài)或其他信息,用以報警、大屏展示或其他。系統(tǒng)需要提供一高效機制,讓用戶可以獲取全部、或符合過濾條件的部分設備的最新狀態(tài)。
5. 實時流式計算
需要實時流式計算。各種實時預警或預測已經(jīng)不是簡單的基于某一個閾值進行,而是需要通過將一個或多個設備產(chǎn)生的數(shù)據(jù)流進行實時聚合計算,不只是基于一個時間點、而是基于一個時間窗口進行計算。不僅如此,計算的需求也相當復雜,因場景而異,應容許用戶自定義函數(shù)進行計算。
6. 數(shù)據(jù)訂閱
需要支持數(shù)據(jù)訂閱。與通用大數(shù)據(jù)平臺比較一致,同一組數(shù)據(jù)往往有很多應用都需要,因此系統(tǒng)應該提供訂閱功能,只要有新的數(shù)據(jù)更新,就應該實時提醒應用。而且這個訂閱也應該是個性化的,容許應用設置過濾條件,比如只訂閱某個物理量五分鐘的平均值。
7. 和歷史數(shù)據(jù)處理合二為一
實時數(shù)據(jù)和歷史數(shù)據(jù)的處理要合二為一。實時數(shù)據(jù)在緩存里,歷史數(shù)據(jù)在持久化存儲介質里,而且可能依據(jù)時長,保留在不同存儲介質里。系統(tǒng)應該隱藏背后的存儲,給用戶和應用呈現(xiàn)的是同一個接口和界面。無論是訪問新采集的數(shù)據(jù)還是十年前的老數(shù)據(jù),除輸入的時間參數(shù)不同之外,其余應該是一樣的。
8. 數(shù)據(jù)持續(xù)穩(wěn)定寫入
需要保證數(shù)據(jù)能持續(xù)穩(wěn)定寫入。對于物聯(lián)網(wǎng)系統(tǒng),數(shù)據(jù)流量往往是平穩(wěn)的,因此數(shù)據(jù)寫入所需要的資源往往是可以估算的。但是變化的是查詢、分析,特別是即席查詢,有可能耗費很大的系統(tǒng)資源,不可控。因此系統(tǒng)必須保證分配足夠的資源以確保數(shù)據(jù)能夠寫入系統(tǒng)而不被丟失。準確的說,系統(tǒng)必須是一個寫優(yōu)先系統(tǒng)。
9. 數(shù)據(jù)多維度分析
需要對數(shù)據(jù)支持靈活的多維度分析。對于聯(lián)網(wǎng)設備產(chǎn)生的數(shù)據(jù),需要進行各種維度的統(tǒng)計分析,比如從設備所處的地域進行分析,從設備的型號、供應商進行分析,從設備所使用的人員進行分析等等。而且這些維度的分析是無法事先想好的,而是在實際運營過程中,根據(jù)業(yè)務發(fā)展的需求定下來的。因此物聯(lián)網(wǎng)大數(shù)據(jù)系統(tǒng)需要一個靈活的機制增加某個維度的分析。
10. 支持數(shù)據(jù)計算
需要支持數(shù)據(jù)降頻、插值、特殊函數(shù)計算等操作。原始數(shù)據(jù)的采集可能頻次挺高,但具體分析時,往往不需要對原始收據(jù)進行,而是數(shù)據(jù)降頻之后。系統(tǒng)需要提供高效的數(shù)據(jù)降頻操作。設備是很難同步的,不同設備采集數(shù)據(jù)的時間點是很難對齊的,因此分析一個特定時間點的值,往往需要插值才能解決,系統(tǒng)需要提供線性插值、設置固定值等多種插值策略才行。工業(yè)互聯(lián)網(wǎng)里,除通用的統(tǒng)計操作之外,往往還需要支持一些特殊函數(shù),比如時間加權平均。
11. 即席分析和查詢
需要支持即席分析和查詢。為提高大數(shù)據(jù)分析師的工作效率,系統(tǒng)應該提供一命令行工具或容許用戶通過其他工具,執(zhí)行SQL查詢,而不是非要通過編程接口。查詢分析的結果可以很方便的導出,再制作成各種圖標。
12. 靈活數(shù)據(jù)管理策略
需要提供靈活的數(shù)據(jù)管理策略。一個大的系統(tǒng),采集的數(shù)據(jù)種類繁多,而且除采集的原始數(shù)據(jù)外,還有大量的衍生數(shù)據(jù)。這些數(shù)據(jù)各自有不同的特點,有的采集頻次高,有的要求保留時間長,有的需要多個副本以保證更高的安全性,有的需要能快速訪問。因此物聯(lián)網(wǎng)大數(shù)據(jù)平臺必須提供多種策略,讓用戶可以根據(jù)特點進行選擇和配置,而且各種策略并存。
13. 開放的系統(tǒng)
必須是開放的。系統(tǒng)需要支持業(yè)界流行的標準SQL,提供各種語言開發(fā)接口,包括C/C++,Java,Go,Python,RESTful等等,也需要支持Spark,R,Matlab等等,方便集成各種機器學習、人工智能算法或其他應用,讓大數(shù)據(jù)處理平臺能夠不斷擴展,而不是成為一個孤島。
14. 支持異構環(huán)境
系統(tǒng)必須支持異構環(huán)境。大數(shù)據(jù)平臺的搭建是一個長期的工作,每個批次采購的服務器和存儲設備都會不一樣,系統(tǒng)必須支持各種檔次、各種不同配置的服務器和存儲設備并存。
15. 支持邊云協(xié)同
需要支持邊云協(xié)同。要有一套靈活的機制將邊緣計算節(jié)點的數(shù)據(jù)上傳到云端,根據(jù)具體需要,可以將原始數(shù)據(jù),或加工計算后的數(shù)據(jù),或僅僅符合過濾條件的數(shù)據(jù)同步到云端,而且隨時可以取消,更改策略。
16. 單一后臺管理
需要單一的后臺管理系統(tǒng)。便于查看系統(tǒng)運行狀態(tài)、管理集群、管理用戶、管理各種系統(tǒng)資源等,而且系統(tǒng)能夠與第三方IT運維監(jiān)測平臺無縫集成,便于管理。
17. 私有化部署
便于私有化部署。因為很多企業(yè)出于安全以及各種因素的考慮,希望采用私有化部署。而傳統(tǒng)的企業(yè)往往沒有很強的IT運維團隊,因此在安裝、部署上需要做到簡單、快捷,可維護性強。
以上總結了物聯(lián)網(wǎng)大數(shù)據(jù)平臺的主要功能和特點。雖然物聯(lián)網(wǎng)大數(shù)據(jù)平臺本身也在演變之中,但總的目標不會改變,那就是高效、可伸縮、實時、可靠、靈活、開放、簡單、易維護。