隨著制造業數字化的發展以及物聯網應用的普及,越來越非互聯網、業務系統的數據被采集、記錄和存儲。
很多系統開發者熟悉的是 Oracle、MySQL等關系型數據庫,以及像 Redis 這樣的鍵值數據庫,于是在物聯網應用、制造業數字化應用中也延續了相似的數據庫選型。
這樣做得好處很直接,產品熟悉,技術難度可控,開發工期可控。但隨著系統運行時間的推移,該方案面臨的性能挑戰越來越大,而且在業務開發中會面臨很多相似的查詢、統計需求需要實現。
為什么呢?我們再審視一下物聯網數據、制造業數據的特點。
首先,數據結構相對簡單,主要包含三列,時間、標簽、值;
第二,數據生成大多具有穩定的節奏,不存在或者與一般互聯網應用那樣的波峰波谷;
第三,數據很少更新,更多的是一次寫,多次查詢;
第四,數據量極其巨大,同時對于存儲成本又很敏感;
第五,數據分析統計中很重要的維度之一是時間;
……
以上這些特點和我們熟悉的交易類數據有很明顯的不同。雖然用關系型數據庫可以存儲和管理,但沒有很好地利用對于數據的理解。
如果能選擇針對這類數據特點的專用數據庫,則會讓很多技術難點得到化解,而且會提高系統的穩定性。在數據庫行業中,這類產品叫時序數據庫。
時間序列數據庫是廣泛應用于物聯網(IoT)設備監控系統 ,企業能源管理系統(EMS),生產安全監控系統,電力檢測系統等行業場景的專業數據庫產品,提供百萬高效寫入,高壓縮比低成本存儲、預降采樣、插值、多維聚合計算,查詢結果可視化功能;解決由于設備采集點數量巨大,數據采集頻率高,造成的存儲成本高,寫入和查詢分析效率低的問題。
下面介紹幾款時間數據庫產品供大家選擇。
Informix TimeSeries
Informix TimeSeries在時間序列數據庫中的位置就像Oracle 在關系數據庫中一樣,屬于經典的產品。
它給后續時間數據庫產品研發提供了很好的標桿作用。其針對時間序列數據的特殊存儲結構、索引設計以及專用計算函數都屬于創新性的設計。
它也是多模數據的早期實踐者,能與關系型數據庫引擎并存,簡化了應用系統設計、部署的復雜度。
InfluxDB
時序數據庫 InfluxDB版是一款專門處理高寫入和查詢負載的時序數據庫,用于存儲大規模的時序數據并進行實時分析,包括來自DevOps監控、應用指標和IoT傳感器上的數據。目前有以下特點:
- 專為時間序列數據量身打造的高性能數據存儲設備。TSM引擎提供數據高速讀寫和壓縮等功能。
- 簡單高效的HTTP API寫入和查詢接口。
- 針對時序數據,量身打造類似SQL的查詢語言,輕松查詢聚合數據。
- 允許對tag建索引,實現快速有效地查詢。
- 數據保留策略(Retention policies)能夠有效地使舊數據自動失效。
OpenTSDB
OpenTSDB是可擴展的分布式時序數據庫,底層依賴HBase。作為基于通用存儲開發的時序數據庫典型代表,起步比較早,在時序市場的認可度相對較高。
OpenTSDB的自我定位很清晰:The Scalable Time Series Database。
如果應用場景很看重擴展性,可以選擇 OpenTSDB,否則就要考慮一下是否需要接受將 HBase 也納入到技術棧和系統中了。
阿里云智能TSDB
阿里云智能TSDB高度兼容OpenTSDB協議,采用自研的索引,數據模型,流式聚合等技術手段提供更強大的時序能力。它不是簡單地把OpenTSDB在云上部署了一份,而是基于云計算架構重新設計了底層架構;同時由于阿里云TSDB底層技術架構同OpenTSDB的實現區別巨大,對于OpenTSDB的一些運維接口不會兼容。從運維管控,功能,成本,性能等方面對比,阿里云智能TSDB相比OpenTSDB而言,優勢還是很明顯的。
上述應用架構中,設備將原始數據通過 MQTT 協議發送到物聯網平臺,經由物聯網平臺將數據轉發到消息服務系統,繼而通過流計算系統對這些數據進行實時計算處理后寫入到 TSDB 中存儲,或者經由物聯網平臺直接將原始數據寫入 TSDB 中存儲。前端的監控系統和大數據處理系統會利用 TSDB 的數據查詢和計算分析能力進行業務監控和分析結果的實時展現。
阿里云TSDB for InfluxDB
阿里云TSDB for InfluxDB則是云上的 InfluxDB 版,與InfluxDB 有很好的兼容性,可順利地將線下數據庫遷移至云上;同時省去了部署、運維管理的復雜度。

原文鏈接:https://www.toutiao.com/a7049881825195360771/