時間序列數(shù)據(jù)庫為何會突然成為寵兒?——非結(jié)構(gòu)化、分布式的時間序列數(shù)據(jù)庫(TSDB)以數(shù)字化的形式,能裝下整體真實(shí)的物理世界,于是數(shù)字孿生、CPS、決策分析得以實(shí)現(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)、應(yīng)用程序)的監(jiān)控數(shù)據(jù)并進(jìn)行存儲,查詢。 介紹continue 存儲到OpenTSDB的數(shù)據(jù),是以metric為單位的,metric就是1個監(jiān)控項,譬如服務(wù)器的話,會有CPU使用率、內(nèi)存使用率這些metric; OpenTSDB使用HBase作為存儲,由于有良好的設(shè)計,因此對metric的數(shù)據(jù)存儲支持到秒級別; OpenTSDB支持?jǐn)?shù)據(jù)永久存儲,即保存的數(shù)據(jù)不會主動刪除;并且原始數(shù)據(jù)會一直保存(有些監(jiān)控系統(tǒng)會將較久之前的數(shù)據(jù)聚合之后保存) OpenTSDB存儲相關(guān)的概念 介紹這些概念的時候,我們先看一個實(shí)際的場景。 譬如假設(shè)我們采集1個服務(wù)器(hostname=qatest)的CPU使用率,發(fā)現(xiàn)該服務(wù)器在21:00的時候,CPU使用率達(dá)到99% 下面結(jié)合例子看看OpenTSDB存儲的一些核心概念 1)Metric:即平時我們所說的監(jiān)控項。譬如上面的CPU使用率 2)Tags:就是一些標(biāo)簽,在OpenTSDB里面,Tags由tagk和tagv組成,即tagk=takv。標(biāo)簽是用來描述Metric的,譬如上面為了標(biāo)記是服務(wù)器A的CpuUsage,tags可為hostname=qatest 3)Value:一個Value表示一個metric的實(shí)際數(shù)值,譬如上面的99% 4)Timestamp:即時間戳,用來描述Value是什么時候的;譬如上面的21:00 5)Data Point:即某個Metric在某個時間點(diǎn)的數(shù)值。 Data Point包括以下部分:Metric、Tags、Value、Timestamp 上面描述的服務(wù)器在21:00時候的cpu使用率,就是1個DataPoint 保存到OpenTSDB的,就是無數(shù)個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)控數(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)時代一輛汽車甚至一個冰箱都有一個獨(dú)立的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)的應(yī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)的應(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ā)展的核心,以用戶體驗為核心的創(chuàng)新是物聯(lián)網(wǎng)發(fā)展的靈魂。 以下圖為例,物聯(lián)網(wǎng)大致分為以下幾個層級:感知層,網(wǎng)絡(luò)層,應(yīng)用層。 感知層相當(dāng)于人的感官和神經(jīng)末梢,用來感知和采集應(yīng)用環(huán)境中的各種數(shù)據(jù)。包括溫度、濕度、速度、位置、震動、壓力、流量、氣體等各種各樣的傳感器。在萬物互聯(lián)的場景下,每天都會有大量的傳感器終端在進(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);同時,物聯(lián)網(wǎng)節(jié)點(diǎn)的數(shù)據(jù)生成頻率遠(yuǎn)高于互聯(lián)網(wǎng),如傳感節(jié)點(diǎn)多數(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í)時訪問、控制相應(yīng)的節(jié)點(diǎn)和設(shè)備,因此需要高數(shù)據(jù)傳輸速率來支持相應(yīng)的實(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é)合能夠為物聯(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)和移動互聯(lián)網(wǎng)提供有用的分析,獲取價值。 大數(shù)據(jù)的存儲模型經(jīng)歷了多個發(fā)展階段。其中,關(guān)系型數(shù)據(jù)庫在計算機(jī)數(shù)據(jù)管理的發(fā)展史上是一個重要的里程碑。數(shù)據(jù)結(jié)構(gòu)化、最低冗余度、較高的程序與數(shù)據(jù)獨(dú)立性、易于擴(kuò)充、易于編制應(yīng)用程序等優(yōu)點(diǎn),使其一直長期被廣泛應(yīng)用于數(shù)據(jù)的存儲、處理及分析,但隨著網(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)時代,傳統(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ù)——是在不同時間點(diǎn)上收集的數(shù)據(jù),反映事物隨時間變化而變化的過程。某個鍋爐過去24小時內(nèi)每分鐘的溫度就是典型的時間序列數(shù)據(jù),它的特點(diǎn)是每一個時間戳對應(yīng)一個數(shù)值(這個數(shù)值就是溫度)。在不同的應(yīng)用場景中,這個數(shù)值可以是電流、電壓、轉(zhuǎn)速、濃度、分貝、頻率,無論是哪種度量,每一個數(shù)值都對應(yīng)一個具體的采集時間戳。 物聯(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)進(jìn)行了專門的優(yōu)化,從而獲得極高的數(shù)據(jù)壓縮能力、極優(yōu)的查詢性能,特別契合需要處理海量時間序列數(shù)據(jù)的物聯(lián)網(wǎng)應(yīng)用場景,在工業(yè)制造、環(huán)境、能源、水務(wù)、物流等領(lǐng)域有著巨大的需求。 |
|