盤點市面上主流的時序數據庫
萬物互聯(lián)時代,工業(yè)物聯(lián)網產生的數據量比傳統(tǒng)的信息化要多數千倍甚至數萬倍,并且是實時采集、高頻度、高密度,動態(tài)數據模型隨時可變。傳統(tǒng)數據庫在對這些數據進行存儲、查詢、分析等處理操作時捉襟見肘,迫切需要一種專門針對時序數據來做優(yōu)化的數據庫系統(tǒng),即時間序列數據庫。
時間序列數據庫(Time Series Database)是用于存儲和管理時間序列數據的專業(yè)化數據庫,具備寫多讀少、冷熱分明、高并發(fā)寫入、無事務要求、海量數據持續(xù)寫入等特點,可以基于時間區(qū)間聚合分析和高效檢索,廣泛應用在物聯(lián)網、經濟金融、環(huán)境監(jiān)控、工業(yè)制造、農業(yè)生產、硬件和軟件系統(tǒng)監(jiān)控等場景。
▲DB-Engines最新發(fā)布的時序數據庫排名表
根據國際知名網站DB-Engines數據,時序數據庫在過去24個月內排名高居榜首,且遠高于其他類型的數據庫,可見業(yè)內對時序數據庫的需求迫切。相應的時序數據庫產品近年來也快速發(fā)展,各大互聯(lián)網企業(yè)包括谷歌、阿里巴巴、亞馬遜都推出自己的時序數據庫,業(yè)界使用較多的時序數據庫主要有如下幾種:
1. InfluxDB
InfluxDB是一款用Go語言編寫的開源分布式時序、事件和指標數據庫,無需外部依賴。該數據庫現(xiàn)在主要用于存儲涉及大量的時間戳數據,如DevOps監(jiān)控數據,APP metrics,loT傳感器數據和實時分析數據。
作為目前開源排名最高的時序數據庫,InfluxDB支持數據存儲策略(RP)和數據歸檔(CQ),能夠實時查詢,數據在寫入時被索引后就能夠被立即查出,內置HTTP接口,安裝管理很簡單,并且讀寫數據非常高效。
2. Kdb+
kdb+/q被官方稱為世界上最快的時間序列數據庫,它使用統(tǒng)一的數據庫處理實時數據和歷史數據,同時具備CEP(復雜事件處理)引擎、內存數據庫、磁盤數據庫等功能。列式存儲的特性,使得對于某個列的統(tǒng)計分析操作異常方便。
與一般數據庫或大數據平臺相比,kdb+/q具有更快的速度和更低的總擁有成本,非常適合海量數據處理,主要被用于海量數據分析、高頻交易、人工智能、物聯(lián)網等領域。在延遲性上有著苛刻要求的金融領域,kdb+有著獨特的優(yōu)勢。
3. Prometheus
Prometheus是一套開源的系統(tǒng)監(jiān)控報警框架,由工作在SoundCloud的Google前員工在2012年創(chuàng)建,作為社區(qū)開源項目進行開發(fā),2015年正式發(fā)布,并在次年正式加入Cloud Native Computing Foundation。
作為新一代的監(jiān)控框架,Prometheus具備強大的多維度數據模型,有多種可視化圖形界面,使用pull模式采集時間序列數據,可以采用push gateway的方式把時間序列數據推送至Prometheus server端。
4. Graphite
Graphite是一個開源實時的、顯示時間序列度量數據的圖形系統(tǒng)。Graphite并不收集度量數據本身,而是像一個數據庫,通過其后端接收度量數據,然后以實時方式查詢、轉換、組合這些度量數據。
Graphite支持內建的Web界面,它允許用戶瀏覽度量數據和圖。它由多個后端和前端組件組成。后端組件用于存儲數值型的時間序列數據,前端組件則用于獲取指標項數據并根據情況渲染圖表。
5. TimescaleDB
TimescaleDB是唯一支持完整SQL的開放源代碼時間序列數據庫,已針對支持全面SQL的快速提取和復雜查詢進行了優(yōu)化。它基于PostgreSQL,并且為時間序列數據提供了最好的NoSQL和Relational世界。
TimescaleDB使開發(fā)人員和組織能夠更多地利用其功能:分析過去,了解現(xiàn)在和預測未來。在查詢層面統(tǒng)一時序數據和關系數據可消除數據孤島,并使演示和原型更容易實現(xiàn)??蓴U展性和完整的SQL接口的結合賦予員工提出數據問題。
6. 阿里云TSDB
作為我國科技公司的代表,阿里云時序數據庫也入圍了DB-Engines榜單。TSDB是一種集時序數據高效讀寫,壓縮存儲,實時計算能力為一體的數據庫服務,可廣泛應用于物聯(lián)網和互聯(lián)網領域,實現(xiàn)對設備及業(yè)務服務的實時監(jiān)控,預測告警。
TSDB具備秒級寫入百萬級時序數據的性能,提供高壓縮比低成本存儲、預降采樣、插值、多維聚合計算、可視化查詢結果等功能,解決由設備采集點數量巨大、數據采集頻率高造成的存儲成本高、寫入和查詢分析效率低的問題。