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