時序數據庫用途是什麼?

  • 2019 年 10 月 6 日
  • 筆記

在公有雲的數據庫產品清單里,近年出現了一個新的名詞「時序數據庫」。感覺數據庫的產品已經不少了,時序數據庫的用途是什麼?為什麼會誕生該產品?我們今天一起來看一下!

一、什麼是時序數據庫?

相比於傳統的關係數據庫SQL、非關係型數據庫NOSQL,時序數據庫是較新的技術,沒有行業標準,有很多方面還有待完善。

時序數據庫的定義很簡單,也就是在時間上分佈的一串數字。

例如:某個酒店在晚上8:00有200個房間被入住,那個8:00時間點上存儲的200的數字就是時序數據。

而晚上8:00,某個房間被入住,這個數據只是一個日誌。

再例如,通過物聯網數據採集設備,採集的一串溫度數據、壓力數據等,也適用於時序數據的範圍。

二、時序數據庫有一些特別操作。

1、插值。時間序列分佈會在一些時間線上,且序列會隨着時間的增長往後發展。本質上是在一個固定的時間點記錄數據。如果需要根據這些時間點畫圖,那麼涉及到線性插值的問題,一般是將兩個時間軸的平均值作為中間數據。

2、降精度。如果我們按分鐘記錄了溫度,如果需要查看一年的數據走向圖,則需要下降時間的精度為天計算。這時,我們將涉及到如何選擇這一天溫度的問題,我們可以選擇最大值、最小值或當天的平均值。

這兩個問題在傳統數據庫中是沒有的場景。

三、時序數據庫有顯著的特別

1、數據量大。如果某物聯網設備一秒采一次溫度,那麼一天將產生86400條數據。如果全市有上萬個同類的數據,那這個數據量是驚人的。

2、數據量平穩。物聯網設備將隔固定的周期採集數據,除非改變採集策略,這個數據量一般不存在波峰或波谷,不需要進行數據高峰期的特殊優化。

3、數據存在時效性。離現在越久的數據,越不會被訪問到。例如,我們的手環數據,我們重點將關注近期的數據分析結果。

四、傳序數據庫不適合干時序數據庫的事

講到這裡,大家一定覺得傳統的數據庫也能做這些場景下的事,但事實是不適合。

1、降精度的場景不合適。例如需要快速選擇出當天的溫度平均數據作為當天的溫度,實際在傳統數據庫中又是複雜的計算過程。

2、數據量大的場景不合適。剛才講到一秒鐘存一次溫度,那一天將存儲上8萬次數據,而這些大數據量將極大的佔用存儲空間。如果採用時序數據庫,將通過壓縮機制極大降低數據的存儲量。