時(shí)間序列數(shù)據(jù)庫為何會(huì)突然成為寵兒?
時(shí)間序列數(shù)據(jù)庫為何會(huì)突然成為寵兒?——非結(jié)構(gòu)化、分布式的時(shí)間序列數(shù)據(jù)庫(TSDB)以數(shù)字化的形式,能裝下整體真實(shí)的物理世界,于是數(shù)字孿生、CPS、決策分析得以實(shí)現(xiàn)。
推薦一款開源時(shí)間序列數(shù)據(jù)庫:OpenTSDB——基于Hbase的分布式的,可伸縮的時(shí)間序列數(shù)據(jù)庫,而Hbase本質(zhì)是列存儲(chǔ)。
OpenTSDB介紹
OpenTSDB是什么?主要用途是什么?
官方文檔這樣描述:OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase;
翻譯過來就是,基于Hbase的分布式的,可伸縮的時(shí)間序列數(shù)據(jù)庫。
主要用途,就是做監(jiān)控系統(tǒng);譬如收集大規(guī)模集群(包括網(wǎng)絡(luò)設(shè)備、操作系統(tǒng)、應(yīng)用程序)的監(jiān)控?cái)?shù)據(jù)并進(jìn)行存儲(chǔ),查詢。
介紹continue
存儲(chǔ)到OpenTSDB的數(shù)據(jù),是以metric為單位的,metric就是1個(gè)監(jiān)控項(xiàng),譬如服務(wù)器的話,會(huì)有CPU使用率、內(nèi)存使用率這些metric;
OpenTSDB使用HBase作為存儲(chǔ),由于有良好的設(shè)計(jì),因此對metric的數(shù)據(jù)存儲(chǔ)支持到秒級別;
OpenTSDB支持?jǐn)?shù)據(jù)***存儲(chǔ),即保存的數(shù)據(jù)不會(huì)主動(dòng)刪除;并且原始數(shù)據(jù)會(huì)一直保存(有些監(jiān)控系統(tǒng)會(huì)將較久之前的數(shù)據(jù)聚合之后保存)
OpenTSDB存儲(chǔ)相關(guān)的概念
介紹這些概念的時(shí)候,我們先看一個(gè)實(shí)際的場景。
譬如假設(shè)我們采集1個(gè)服務(wù)器(hostname=qatest)的CPU使用率,發(fā)現(xiàn)該服務(wù)器在21:00的時(shí)候,CPU使用率達(dá)到99%
下面結(jié)合例子看看OpenTSDB存儲(chǔ)的一些核心概念
1)Metric:即平時(shí)我們所說的監(jiān)控項(xiàng)。譬如上面的CPU使用率
2)Tags:就是一些標(biāo)簽,在OpenTSDB里面,Tags由tagk和tagv組成,即tagk=takv。標(biāo)簽是用來描述Metric的,譬如上面為了標(biāo)記是服務(wù)器A的CpuUsage,tags可為hostname=qatest
3)Value:一個(gè)Value表示一個(gè)metric的實(shí)際數(shù)值,譬如上面的99%
4)Timestamp:即時(shí)間戳,用來描述Value是什么時(shí)候的;譬如上面的21:00
5)Data Point:即某個(gè)Metric在某個(gè)時(shí)間點(diǎn)的數(shù)值。
Data Point包括以下部分:Metric、Tags、Value、Timestamp
上面描述的服務(wù)器在21:00時(shí)候的cpu使用率,就是1個(gè)DataPoint
保存到OpenTSDB的,就是無數(shù)個(gè)DataPoint。
OpenTSDB的總體架構(gòu)
openTSDB架構(gòu)
Servers:就是服務(wù)器了,上面的C就是指Collector,可以理解為OpenTSDB的agent,通過Collector收集數(shù)據(jù),推送數(shù)據(jù);
TSD:TSD是對外通信的無狀態(tài)的服務(wù)器,Collector可以通過TSD簡單的RPC協(xié)議推送監(jiān)控?cái)?shù)據(jù);另外TSD還提供了一個(gè)web UI頁面供數(shù)據(jù)查詢;另外也可以通過腳本查詢監(jiān)控?cái)?shù)據(jù),對監(jiān)控?cái)?shù)據(jù)做報(bào)警
HBase:TSD收到監(jiān)控?cái)?shù)據(jù)后,是通過AsyncHbase這個(gè)庫來將數(shù)據(jù)寫入到HBase;AsyncHbase是完全異步、非阻塞、線程安全的Hbase客戶端,使用更少的線程、鎖以及內(nèi)存,可以提供更高的吞吐量,特別對于大量的寫操作。
眾所周知,物聯(lián)網(wǎng)時(shí)代所創(chuàng)造的數(shù)據(jù)將不會(huì)是互聯(lián)網(wǎng)時(shí)代數(shù)據(jù)所能比擬的,物聯(lián)網(wǎng)時(shí)代一輛汽車甚至一個(gè)冰箱都有一個(gè)獨(dú)立的ip地址,都能依照自己系數(shù)的改變生成數(shù)據(jù)。物聯(lián)網(wǎng)的發(fā)展離不開大數(shù)據(jù),依靠大數(shù)據(jù)可以提供足夠有利的資源;同時(shí),大數(shù)據(jù)也推動(dòng)了物聯(lián)網(wǎng)的發(fā)展。新時(shí)代的發(fā)展提出更高的要求,這是一種智慧化的新形態(tài),其外在表現(xiàn)就是物聯(lián)網(wǎng),而其內(nèi)涵就表現(xiàn)為大數(shù)據(jù)。簡單來說,物聯(lián)網(wǎng)的應(yīng)用,其內(nèi)在本質(zhì)就利用了大數(shù)據(jù)。大數(shù)據(jù)是物聯(lián)網(wǎng)的血液,大數(shù)據(jù)代表了物聯(lián)網(wǎng)的信息層(數(shù)據(jù)海洋),是智慧和意識(shí)產(chǎn)生的基礎(chǔ)。
物聯(lián)網(wǎng)是互聯(lián)網(wǎng)的應(yīng)用拓展,與其說物聯(lián)網(wǎng)是網(wǎng)絡(luò),不如說物聯(lián)網(wǎng)是業(yè)務(wù)和應(yīng)用。因此,應(yīng)用創(chuàng)新是物聯(lián)網(wǎng)發(fā)展的核心,以用戶體驗(yàn)為核心的創(chuàng)新是物聯(lián)網(wǎng)發(fā)展的靈魂。
以下圖為例,物聯(lián)網(wǎng)大致分為以下幾個(gè)層級:感知層,網(wǎng)絡(luò)層,應(yīng)用層。
感知層相當(dāng)于人的感官和神經(jīng)末梢,用來感知和采集應(yīng)用環(huán)境中的各種數(shù)據(jù)。包括溫度、濕度、速度、位置、震動(dòng)、壓力、流量、氣體等各種各樣的傳感器。在萬物互聯(lián)的場景下,每天都會(huì)有大量的傳感器終端在進(jìn)行數(shù)據(jù)回傳。
物聯(lián)網(wǎng)的大數(shù)據(jù)與一般的大數(shù)據(jù)有以下不同的的特點(diǎn):
1.物聯(lián)網(wǎng)中的數(shù)據(jù)量更大
物聯(lián)網(wǎng)的最主要特征之一是節(jié)點(diǎn)的海量性,除了人和服務(wù)器之外,物品、設(shè)備等都是物聯(lián)網(wǎng)的組成節(jié)點(diǎn),其數(shù)量規(guī)模遠(yuǎn)大于互聯(lián)網(wǎng);同時(shí),物聯(lián)網(wǎng)節(jié)點(diǎn)的數(shù)據(jù)生成頻率遠(yuǎn)高于互聯(lián)網(wǎng),如傳感節(jié)點(diǎn)多數(shù)處于全時(shí)工作狀態(tài),數(shù)據(jù)流源源不斷。
2.物聯(lián)網(wǎng)中的數(shù)據(jù)速率更高
一方面,物聯(lián)網(wǎng)中數(shù)據(jù)海量性必然要求骨干網(wǎng)匯聚更多的數(shù)據(jù),數(shù)據(jù)的傳輸速率要求更高;另一方面,由于物聯(lián)網(wǎng)與真實(shí)物理世界直接關(guān)聯(lián),很多情況下需要實(shí)時(shí)訪問、控制相應(yīng)的節(jié)點(diǎn)和設(shè)備,因此需要高數(shù)據(jù)傳輸速率來支持相應(yīng)的實(shí)時(shí)性。
3.物聯(lián)網(wǎng)中的數(shù)據(jù)更加多樣化
物聯(lián)網(wǎng)涉及的應(yīng)用范圍廣泛,不同領(lǐng)域、不同行業(yè),需要面對不同類型、不同格式的應(yīng)用數(shù)據(jù),因此物聯(lián)網(wǎng)中數(shù)據(jù)多樣性更為突出。
4物聯(lián)網(wǎng)對數(shù)據(jù)真實(shí)性的要求更高
物聯(lián)網(wǎng)是真實(shí)物理世界與虛擬信息世界的結(jié)合,其對數(shù)據(jù)的處理以及基于此進(jìn)行的決策將直接影響物理世界,物聯(lián)網(wǎng)中數(shù)據(jù)的真實(shí)性顯得尤為重要。
而大數(shù)據(jù)是物聯(lián)網(wǎng)大數(shù)據(jù)中必須的關(guān)鍵技術(shù),二者的結(jié)合能夠?yàn)槲锫?lián)網(wǎng)系統(tǒng)和應(yīng)用的發(fā)展帶來更好的技術(shù)基礎(chǔ)。為了更好地將大數(shù)據(jù)技術(shù)應(yīng)用于物聯(lián)網(wǎng)應(yīng)用中,通過大數(shù)據(jù)挖掘分析為物聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)提供有用的分析,獲取價(jià)值。
大數(shù)據(jù)的存儲(chǔ)模型經(jīng)歷了多個(gè)發(fā)展階段。其中,關(guān)系型數(shù)據(jù)庫在計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展史上是一個(gè)重要的里程碑。數(shù)據(jù)結(jié)構(gòu)化、***冗余度、較高的程序與數(shù)據(jù)獨(dú)立性、易于擴(kuò)充、易于編制應(yīng)用程序等優(yōu)點(diǎn),使其一直長期被廣泛應(yīng)用于數(shù)據(jù)的存儲(chǔ)、處理及分析,但隨著網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,人們發(fā)現(xiàn)關(guān)系型數(shù)據(jù)庫系統(tǒng)雖然技術(shù)很成熟,但其局限性也是顯而易見:它能很好地處理所謂的“表格型數(shù)據(jù)”,卻對越來越多復(fù)雜類型的數(shù)據(jù)無能為力。然而,在物聯(lián)網(wǎng)時(shí)代,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫對于物聯(lián)網(wǎng)大數(shù)據(jù)已然有諸多不適。由于物聯(lián)設(shè)備時(shí)刻不間斷的回傳數(shù)據(jù),人們對于數(shù)據(jù)的及時(shí)性需求越來也旺盛,物聯(lián)網(wǎng)時(shí)代的數(shù)據(jù)及時(shí)性價(jià)值 對大數(shù)據(jù)存儲(chǔ)及處理數(shù)據(jù)的及時(shí)性提出了更高的要求。
針對對物聯(lián)網(wǎng)時(shí)間序列數(shù)據(jù)的存儲(chǔ)時(shí)間序列數(shù)據(jù)——是在不同時(shí)間點(diǎn)上收集的數(shù)據(jù),反映事物隨時(shí)間變化而變化的過程。某個(gè)鍋爐過去24小時(shí)內(nèi)每分鐘的溫度就是典型的時(shí)間序列數(shù)據(jù),它的特點(diǎn)是每一個(gè)時(shí)間戳對應(yīng)一個(gè)數(shù)值(這個(gè)數(shù)值就是溫度)。在不同的應(yīng)用場景中,這個(gè)數(shù)值可以是電流、電壓、轉(zhuǎn)速、濃度、分貝、頻率,無論是哪種度量,每一個(gè)數(shù)值都對應(yīng)一個(gè)具體的采集時(shí)間戳。
物聯(lián)網(wǎng)大數(shù)據(jù)對存儲(chǔ)設(shè)施的要求區(qū)別于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,新的數(shù)據(jù)存儲(chǔ)設(shè)施需要針對物聯(lián)網(wǎng)時(shí)間序列數(shù)據(jù)的存儲(chǔ)、查詢和展現(xiàn)進(jìn)行了專門的優(yōu)化,從而獲得極高的數(shù)據(jù)壓縮能力、極優(yōu)的查詢性能,特別契合需要處理海量時(shí)間序列數(shù)據(jù)的物聯(lián)網(wǎng)應(yīng)用場景,在工業(yè)制造、環(huán)境、能源、水務(wù)、物流等領(lǐng)域有著巨大的需求。