【廣告】
BlueSky高性能時序數據庫技術/問題
趨勢方面了解完之后,我們細致地看看現在的時序數據庫有哪些特點、如何分類、有哪些技術。首先,我們從存儲架構角度,看看時序數據庫的分類情況。類就是是基于關系數據庫的時序數據庫,比如timescale。第二類就是基于KV的時序數據庫,比如OpenTSDB。第三類就是專門面向時序數據場景的原生時序數據庫,比如InfluxDB,Io和Tengine等。
BlueSky高性能時序數據庫的數字模型
上面介紹了時序數據的基本概念,也說明了分析時序數據的意義。那么時序數據該怎樣存儲呢?數據的存儲要考慮其數學模型和特點,時序數據當然也不例外。所以這里先介紹時序數據的數學模型和特點。
下圖為一段時序數據,記錄了一段時間內的某個集群里各機器上各端口的出入流量,每半小時記錄一個觀測值。這里以圖中的數據為例,介紹下時序數據的數學模型(不同的時序數據庫中,基本概念的稱謂有可能不同,這里以騰訊CTSDB為準):
measurement: 度量的數據集,類似于關系型數據庫中的 table;point: 一個數據點,類似于關系型數據庫中的 row;timestamp: 時間戳,表征采集到數據的時間點;tag: 維度列,代表數據的歸屬、屬性,表明是哪個設備/模塊產生的,一般不隨著時間變化,供查詢使用;field: 指標列,代表數據的測量值,隨時間平滑波動,不需要查詢。
時序數據怎么不一樣?
關系數據庫(OLTP)的出現是為了解決交易事務問題,比如電商訂單,支付等場景,也就是數據表的事務更新,比如轉賬交易,用戶從一個賬號轉出,而在另外一個賬戶入賬;這對應數據庫兩行甚至兩個字段的更新;由于任何兩個賬號之間都可能發(fā)生轉賬,因此這些記錄在磁盤上隨機分布;再讓我們看看時序數據的場景