07.30 時間序列數據庫為何會突然成為寵兒?

時間序列數據庫為何會突然成為寵兒?——非結構化、分佈式的時間序列數據庫(TSDB)以數字化的形式,能裝下整體真實的物理世界,於是數字孿生、CPS、決策分析得以實現。

推薦一款開源時間序列數據庫:OpenTSDB——基於Hbase的分佈式的,可伸縮的時間序列數據庫,而Hbase本質是列存儲。

OpenTSDB介紹

OpenTSDB是什麼?主要用途是什麼?

官方文檔這樣描述:OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase;

翻譯過來就是,基於Hbase的分佈式的,可伸縮的時間序列數據庫。

主要用途,就是做監控系統;譬如收集大規模集群(包括網絡設備、操作系統、應用程序)的監控數據並進行存儲,查詢。

時間序列數據庫為何會突然成為寵兒?

介紹continue

存儲到OpenTSDB的數據,是以metric為單位的,metric就是1個監控項,譬如服務器的話,會有CPU使用率、內存使用率這些metric;

OpenTSDB使用HBase作為存儲,由於有良好的設計,因此對metric的數據存儲支持到秒級別;

OpenTSDB支持數據永久存儲,即保存的數據不會主動刪除;並且原始數據會一直保存(有些監控系統會將較久之前的數據聚合之後保存)

OpenTSDB存儲相關的概念

介紹這些概念的時候,我們先看一個實際的場景。

譬如假設我們採集1個服務器(hostname=qatest)的CPU使用率,發現該服務器在21:00的時候,CPU使用率達到99%

下面結合例子看看OpenTSDB存儲的一些核心概念

1)Metric:即平時我們所說的監控項。譬如上面的CPU使用率

2)Tags:就是一些標籤,在OpenTSDB裡面,Tags由tagk和tagv組成,即tagk=takv。標籤是用來描述Metric的,譬如上面為了標記是服務器A的CpuUsage,tags可為hostname=qatest

3)Value:一個Value表示一個metric的實際數值,譬如上面的99%

4)Timestamp:即時間戳,用來描述Value是什麼時候的;譬如上面的21:00

5)Data Point:即某個Metric在某個時間點的數值。

Data Point包括以下部分:Metric、Tags、Value、Timestamp

上面描述的服務器在21:00時候的cpu使用率,就是1個DataPoint

保存到OpenTSDB的,就是無數個DataPoint。

OpenTSDB的總體架構

時間序列數據庫為何會突然成為寵兒?

openTSDB架構

Servers:就是服務器了,上面的C就是指Collector,可以理解為OpenTSDB的agent,通過Collector收集數據,推送數據;

TSD:TSD是對外通信的無狀態的服務器,Collector可以通過TSD簡單的RPC協議推送監控數據;另外TSD還提供了一個web UI頁面供數據查詢;另外也可以通過腳本查詢監控數據,對監控數據做報警

HBase:TSD收到監控數據後,是通過AsyncHbase這個庫來將數據寫入到HBase;AsyncHbase是完全異步、非阻塞、線程安全的Hbase客戶端,使用更少的線程、鎖以及內存,可以提供更高的吞吐量,特別對於大量的寫操作。

眾所周知,物聯網時代所創造的數據將不會是互聯網時代數據所能比擬的,物聯網時代一輛汽車甚至一個冰箱都有一個獨立的ip地址,都能依照自己係數的改變生成數據。物聯網的發展離不開大數據,依靠大數據可以提供足夠有利的資源;同時,大數據也推動了物聯網的發展。新時代的發展提出更高的要求,這是一種智慧化的新形態,其外在表現就是物聯網,而其內涵就表現為大數據。簡單來說,物聯網的應用,其內在本質就利用了大數據。大數據是物聯網的血液,大數據代表了物聯網的信息層(數據海洋),是智慧和意識產生的基礎。

物聯網是互聯網的應用拓展,與其說物聯網是網絡,不如說物聯網是業務和應用。因此,應用創新是物聯網發展的核心,以用戶體驗為核心的創新是物聯網發展的靈魂。

以下圖為例,物聯網大致分為以下幾個層級:感知層,網絡層,應用層。

時間序列數據庫為何會突然成為寵兒?

感知層相當於人的感官和神經末梢,用來感知和採集應用環境中的各種數據。包括溫度、溼度、速度、位置、震動、壓力、流量、氣體等各種各樣的傳感器。在萬物互聯的場景下,每天都會有大量的傳感器終端在進行數據回傳。

物聯網的大數據與一般的大數據有以下不同的的特點:

1.物聯網中的數據量更大

物聯網的最主要特徵之一是節點的海量性,除了人和服務器之外,物品、設備等都是物聯網的組成節點,其數量規模遠大於互聯網;同時,物聯網節點的數據生成頻率遠高於互聯網,如傳感節點多數處於全時工作狀態,數據流源源不斷。

2.物聯網中的數據速率更高

一方面,物聯網中數據海量性必然要求骨幹網匯聚更多的數據,數據的傳輸速率要求更高;另一方面,由於物聯網與真實物理世界直接關聯,很多情況下需要實時訪問、控制相應的節點和設備,因此需要高數據傳輸速率來支持相應的實時性。

3.物聯網中的數據更加多樣化

物聯網涉及的應用範圍廣泛,不同領域、不同行業,需要面對不同類型、不同格式的應用數據,因此物聯網中數據多樣性更為突出。

4物聯網對數據真實性的要求更高

物聯網是真實物理世界與虛擬信息世界的結合,其對數據的處理以及基於此進行的決策將直接影響物理世界,物聯網中數據的真實性顯得尤為重要。

而大數據是物聯網大數據中必須的關鍵技術,二者的結合能夠為物聯網系統和應用的發展帶來更好的技術基礎。為了更好地將大數據技術應用於物聯網應用中,通過大數據挖掘分析為物聯網和移動互聯網提供有用的分析,獲取價值。

大數據的存儲模型經歷了多個發展階段。其中,關係型數據庫在計算機數據管理的發展史上是一個重要的里程碑。數據結構化、最低冗餘度、較高的程序與數據獨立性、易於擴充、易於編制應用程序等優點,使其一直長期被廣泛應用於數據的存儲、處理及分析,但隨著網絡技術和軟件技術的飛速發展,人們發現關係型數據庫系統雖然技術很成熟,但其侷限性也是顯而易見:它能很好地處理所謂的“表格型數據”,卻對越來越多複雜類型的數據無能為力。然而,在物聯網時代,傳統的關係型數據庫對於物聯網大數據已然有諸多不適。由於物聯設備時刻不間斷的回傳數據,人們對於數據的及時性需求越來也旺盛,物聯網時代的數據及時性價值 對大數據存儲及處理數據的及時性提出了更高的要求。

針對對物聯網時間序列數據的存儲時間序列數據——是在不同時間點上收集的數據,反映事物隨時間變化而變化的過程。某個鍋爐過去24小時內每分鐘的溫度就是典型的時間序列數據,它的特點是每一個時間戳對應一個數值(這個數值就是溫度)。在不同的應用場景中,這個數值可以是電流、電壓、轉速、濃度、分貝、頻率,無論是哪種度量,每一個數值都對應一個具體的採集時間戳。

物聯網大數據對存儲設施的要求區別於傳統的關係型數據庫,新的數據存儲設施需要針對物聯網時間序列數據的存儲、查詢和展現進行了專門的優化,從而獲得極高的數據壓縮能力、極優的查詢性能,特別契合需要處理海量時間序列數據的物聯網應用場景,在工業製造、環境、能源、水務、物流等領域有著巨大的需求。


分享到:


相關文章: