【廣告】
時序數(shù)據(jù)庫發(fā)展簡史
代時序數(shù)據(jù)存儲系統(tǒng)
雖然通用關(guān)系數(shù)據(jù)庫可以存儲時序數(shù)據(jù),但是由于缺乏針對時間的特殊優(yōu)化,比如按時間間隔存儲和檢索數(shù)據(jù)等等,因此在處理這些數(shù)據(jù)時效率相對不高。
代時序數(shù)據(jù)典型來源于監(jiān)控領(lǐng)域,直接基于平板文件的簡單存儲工具成為這類數(shù)據(jù)的首先存儲方式。
以RRDTool,Wishper為代表,通常這類系統(tǒng)處理的數(shù)據(jù)模型比較單一,單機(jī)容量受限,并且內(nèi)嵌于監(jiān)控告案。
BlueSky高性能時序數(shù)據(jù)庫的數(shù)字模型
上面介紹了時序數(shù)據(jù)的基本概念,也說明了分析時序數(shù)據(jù)的意義。那么時序數(shù)據(jù)該怎樣存儲呢?數(shù)據(jù)的存儲要考慮其數(shù)學(xué)模型和特點(diǎn),時序數(shù)據(jù)當(dāng)然也不例外。所以這里先介紹時序數(shù)據(jù)的數(shù)學(xué)模型和特點(diǎn)。
下圖為一段時序數(shù)據(jù),記錄了一段時間內(nèi)的某個集群里各機(jī)器上各端口的出入流量,每半小時記錄一個觀測值。這里以圖中的數(shù)據(jù)為例,介紹下時序數(shù)據(jù)的數(shù)學(xué)模型(不同的時序數(shù)據(jù)庫中,基本概念的稱謂有可能不同,這里以騰訊CTSDB為準(zhǔn)):
measurement: 度量的數(shù)據(jù)集,類似于關(guān)系型數(shù)據(jù)庫中的 table;point: 一個數(shù)據(jù)點(diǎn),類似于關(guān)系型數(shù)據(jù)庫中的 row;timestamp: 時間戳,表征采集到數(shù)據(jù)的時間點(diǎn);tag: 維度列,代表數(shù)據(jù)的歸屬、屬性,表明是哪個設(shè)備/模塊產(chǎn)生的,一般不隨著時間變化,供查詢使用;field: 指標(biāo)列,代表數(shù)據(jù)的測量值,隨時間平滑波動,不需要查詢。
BlueSky時序數(shù)據(jù)庫怎么分
關(guān)系型數(shù)據(jù)庫本身比較容易成為系統(tǒng)瓶頸,單機(jī)存儲容量、連接數(shù)、處理能力都有限。當(dāng)單表的數(shù)據(jù)量達(dá)到1000W或100G以后,由于查詢維度較多,即使添加從庫、優(yōu)化索引,做很多操作時性能仍下降嚴(yán)重。此時就要考慮對其進(jìn)行切分了,切分的目的就在于減少數(shù)據(jù)庫的負(fù)擔(dān),縮短查詢時間。
數(shù)據(jù)庫分布式內(nèi)容無非就是數(shù)據(jù)切分(Sharding),以及切分后對數(shù)據(jù)的定位、整合。數(shù)據(jù)切分就是將數(shù)據(jù)分散存儲到多個數(shù)據(jù)庫中,使得單一數(shù)據(jù)庫中的數(shù)據(jù)量變小,通過擴(kuò)充主機(jī)的數(shù)量緩解單一數(shù)據(jù)庫的性能問題,從而達(dá)到提升數(shù)據(jù)庫操作性能的目的。
數(shù)據(jù)切分根據(jù)其切分類型,可以分為兩種方式:垂直(縱向)切分和水平(橫向)切分