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

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

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

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

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



























