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