您好,歡迎來到易龍商務(wù)網(wǎng)!
全國咨詢熱線:13965168811

陜西時(shí)間序列化數(shù)據(jù)庫解決方案歡迎來電「多圖」

【廣告】

發(fā)布時(shí)間:2021-10-26 08:44  
企業(yè)視頻展播,請點(diǎn)擊播放
視頻作者:北京美信時(shí)代科技有限公司









BlueSky高性能時(shí)序數(shù)據(jù)庫分片方法:

哈希分片: 均衡性較好,但集群不易擴(kuò)展執(zhí)行哈希:均衡性好,集群擴(kuò)展易,但實(shí)現(xiàn)復(fù)雜范圍劃分:復(fù)雜度在于合并和分裂,全局有序分片設(shè)計(jì)

分片的會直接影響到寫入的性能,結(jié)合時(shí)序數(shù)據(jù)庫的特點(diǎn),根據(jù) metric tags 分片是比較好的方式,查詢大都是按照一個(gè)時(shí)間范圍進(jìn)行的,這樣形同的 metric tags 數(shù)據(jù)會被分配到一臺機(jī)器上連續(xù)存放,順序的磁盤讀取是很快的。

在時(shí)間范圍很長的情況下,可以根據(jù)時(shí)間訪問再進(jìn)行分段,分別存儲到不同的機(jī)器上,這樣大范圍的數(shù)據(jù)就可以支持并發(fā)查詢,優(yōu)化查詢速度。

如下圖,行和第三行都是同樣的tag(sensor=95D8-7913;city=上海),所以分配到同樣的分片,而第五行雖然也是同樣的tag,但是根據(jù)時(shí)間范圍再分段,被分到了不同的分片。第二、四、六行屬于同樣的tag(sensor=F3CC-20F3;city=北京)也是一樣的道理。




BlueSky時(shí)間序列化數(shù)據(jù)庫如何聯(lián)合索引查詢?

所以給定查詢過濾條件 age=18 的過程就是先從 term index 找到 18 在 term dictionary 的大概位置,然后再從 term dictionary 里地找到 18 這個(gè) term,然后得到一個(gè) ting list 或者一個(gè)指向 ting list 位置的指針。然后再查詢 gender= 女 的過程也是類似的。得出 age=18 AND gender= 女 就是把兩個(gè) ting list 做一個(gè)“與”的合并。

這個(gè)理論上的“與”合并的操作可不容易。對于 mysql 來說,如果你給 age 和 gender 兩個(gè)字段都建立了索引,查詢的時(shí)候只會選擇其中 selective 的來用,然后另外一個(gè)條件是在遍歷行的過程中在內(nèi)存中計(jì)算之后過濾掉。那么要如何才能聯(lián)合使用兩個(gè)索引呢?有兩種辦法:使用 skip list 數(shù)據(jù)結(jié)構(gòu)。同時(shí)遍歷 gender 和 age 的 ting list,互相 skip;使用 bitset 數(shù)據(jù)結(jié)構(gòu),對 gender 和 age 兩個(gè) filter 分別求出 bitset,對兩個(gè) bitset 做 AN 操作。




BlueSky高性能時(shí)序數(shù)據(jù)庫

非關(guān)系型數(shù)據(jù)庫會超過關(guān)系型數(shù)據(jù)庫,NoSQL會超過SQL。因?yàn)閺纳鐣?gòu)建的方式、交付的語言表述體系、視頻采集的方式、工業(yè)生產(chǎn)IoT時(shí)序性數(shù)據(jù)大量產(chǎn)生等多個(gè)角度看,大部分新生成的數(shù)據(jù)都將是非關(guān)系型數(shù)據(jù)。而據(jù)IDC預(yù)測,到2023年,產(chǎn)生的非關(guān)系型數(shù)據(jù)的量會超過關(guān)系型數(shù)據(jù)。




BlueSky時(shí)序數(shù)據(jù)庫怎么分


關(guān)系型數(shù)據(jù)庫本身比較容易成為系統(tǒng)瓶頸,單機(jī)存儲容量、連接數(shù)、處理能力都有限。當(dāng)單表的數(shù)據(jù)量達(dá)到1000W或100G以后,由于查詢維度較多,即使添加從庫、優(yōu)化索引,做很多操作時(shí)性能仍下降嚴(yán)重。此時(shí)就要考慮對其進(jìn)行切分了,切分的目的就在于減少數(shù)據(jù)庫的負(fù)擔(dān),縮短查詢時(shí)間。

數(shù)據(jù)庫分布式內(nèi)容無非就是數(shù)據(jù)切分(Sharding),以及切分后對數(shù)據(jù)的定位、整合。數(shù)據(jù)切分就是將數(shù)據(jù)分散存儲到多個(gè)數(shù)據(jù)庫中,使得單一數(shù)據(jù)庫中的數(shù)據(jù)量變小,通過擴(kuò)充主機(jī)的數(shù)量緩解單一數(shù)據(jù)庫的性能問題,從而達(dá)到提升數(shù)據(jù)庫操作性能的目的。

數(shù)據(jù)切分根據(jù)其切分類型,可以分為兩種方式:垂直(縱向)切分和水平(橫向)切分





行業(yè)推薦