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