小T導讀:在萬物互聯(lián)的時代,大到企業(yè)數(shù)字化轉(zhuǎn)型、數(shù)字城市建設(shè),小到和生活息息相關(guān)的家居生活、智能駕駛、運動健康等,都離不開智能物理設(shè)備廣泛的連接和互通。AIoT是人工智能和IoT技術(shù)的融合,通過物聯(lián)設(shè)備網(wǎng)產(chǎn)生、收集來自不同維度的、海量的數(shù)據(jù)存儲于云端、邊緣端和設(shè)備端再通過海量數(shù)據(jù)分析引擎,以及更高形式的機器學習、神經(jīng)網(wǎng)絡,實現(xiàn)萬物數(shù)據(jù)化、萬物智聯(lián)化。
2014年起,京東從智能家居領(lǐng)域開始發(fā)力,在業(yè)界率先推出語音交互入口-叮咚智能音箱,實現(xiàn)了廣泛的設(shè)備品類互聯(lián)生態(tài),同時整合集團內(nèi)部零售、物流、大健康、工業(yè)品等關(guān)鍵領(lǐng)域的物聯(lián)網(wǎng)技術(shù)能力,持續(xù)助力社區(qū)、城市、車聯(lián)、工業(yè)等關(guān)鍵行業(yè)領(lǐng)域,廣泛服務于實體經(jīng)濟,助力企業(yè)轉(zhuǎn)型升級。本文在京東云IoT多年來行業(yè)實踐經(jīng)驗積累的基礎(chǔ)上,分享在數(shù)據(jù)存儲方面的一些做法。
一、場景與痛點
數(shù)據(jù)是數(shù)字化時代企業(yè)的核心資產(chǎn)。京東云智能家居場景維護著大量的智能設(shè)備,這些設(shè)備聯(lián)網(wǎng)后,會根據(jù)設(shè)備設(shè)定的速率持續(xù)產(chǎn)生時序數(shù)據(jù),比如有的設(shè)備采樣間隔是15秒。京東云IoT團隊結(jié)合本公司數(shù)據(jù)特點與業(yè)務需求,對多種工業(yè)時序數(shù)據(jù)庫(Time-Series Database)進行了技術(shù)選型,以解決龐大的數(shù)據(jù)存儲和計算帶來的挑戰(zhàn):
- 數(shù)據(jù)存儲具有較高的數(shù)據(jù)壓縮比,節(jié)約存儲資源,降低IT成本
- 寫入和查詢性能優(yōu)異,數(shù)據(jù)庫底層邏輯的優(yōu)化可以減少CPU開銷
- 支持數(shù)據(jù)預聚合,擁有豐富的計算算子
- 強有力的穩(wěn)定架構(gòu)
二、技術(shù)選型
我們對兩種業(yè)界主流的時序數(shù)據(jù)庫做了分析和測試:
- OpenTSDB:基于HBase的分布式、可伸縮的時間序列數(shù)據(jù)庫。作為基于通用存儲開發(fā)的時序數(shù)據(jù)庫典型代表,起步比較早,在時序數(shù)據(jù)庫領(lǐng)域的認可度相對較高,但HBase成本高的問題無法免除。
- TDengine:在性能、成本、運維難度等方面都表現(xiàn)不俗,支持橫向擴展,且高可用。
通過實際對比測試,我們初步選定TDengine Database作為數(shù)據(jù)存儲方案。TDengine相比于OpenTSDB有明顯的優(yōu)勢:
- TDengine寫入吞吐量高出200%
- 1億條記錄平均查詢時間提升100倍
- 100萬條記錄讀取時間提升32倍
- 1億條記錄按時間分組取均值時間提升40倍
- 成本開銷降低2-3倍
三、數(shù)據(jù)建模
TDengine數(shù)據(jù)建模需根據(jù)數(shù)據(jù)的特性設(shè)計相應的Schema,以達到最好的性能表現(xiàn)。對于物聯(lián)網(wǎng)設(shè)備而言,是圍繞著設(shè)備孿生工作的。設(shè)備有對應的物類型、物模型,物模型描述了設(shè)備的屬性感知和交互行為。因此,我們基于物類型、物模型進行了Schema的設(shè)計:
- 基于物類型、物模型創(chuàng)建超級表
- 數(shù)據(jù)聚合以字表為維度,按照物模型及數(shù)據(jù)特性,選擇不同的聚合算子進行聚合
超級表舉例如下:

四、落地實施
結(jié)合業(yè)務需求與數(shù)據(jù)特點,我們采用的方案是:將設(shè)備上報的元數(shù)據(jù)存儲在metadata庫中,然后通過定時任務的方式,每小時以設(shè)備的維度,根據(jù)物模型,進行數(shù)據(jù)聚合,將聚合后的數(shù)據(jù)存儲在statistics庫中。同時為了減少數(shù)據(jù)存儲的壓力,將metadata的數(shù)據(jù)過期時間設(shè)置為固定時長。

五、改造效果
在與TDengine工程師溝通后, 我們只使用了3臺4C16G構(gòu)成的TDengine的集群,就承載了線上的業(yè)務。
數(shù)據(jù)聚合方面,根據(jù)TDengine的性能、機器配置和前期測試的時間開銷,只需很短的時間就完成了全量設(shè)備的數(shù)據(jù)聚合。

CPU方面,一直很穩(wěn)定,在常態(tài)下CPU低于10%,由于設(shè)備的數(shù)據(jù)聚合需要消耗大量的CPU,因此在每個整點CPU會有所上升,但是不超過45%的負載。

六、總結(jié)
通過一段時間的運行,TDengine Database在成本、性能和使用便利性方面相比OpenTSDB都有非常大的優(yōu)勢,實現(xiàn)了海量物聯(lián)數(shù)據(jù)的高性能、低成本的存儲。
在項目實施過程中, TDengine的工程師提供了專業(yè)、及時的幫助,在此表示感謝。希望TDengine能夠繼續(xù)提升性能和穩(wěn)定性,開發(fā)出更多的新特性、新功能,實現(xiàn)更大的突破。



互聯(lián)網(wǎng).png)



-1.png)











伙伴.png)
伙伴.png)



