華為云數(shù)據(jù)庫GaussDB(for Influx)揭秘:數(shù)據(jù)分級存儲
“只存儲這些數(shù)據(jù)一年就要花費200多萬?”
面對老板的質(zhì)疑,小王又重新講解了一遍評估方案。為了支撐生產(chǎn)分析和系統(tǒng)運維,一個設(shè)備就需要幾十個檢測點數(shù)據(jù),所有設(shè)備24小時不斷采集數(shù)據(jù),一天的數(shù)據(jù)量就會達到TB級,這些數(shù)據(jù)至少存儲2年,再加上高可用的3副本,總的數(shù)據(jù)量會達到PB級。
小王又展示了當(dāng)前云廠商存儲價格和性能對比的調(diào)研結(jié)果:

磁盤類型
SATA
NVME
成本100G/月
9.9
100
?
?

?
IOPS
2200
50000
吞吐量
50M/s
350M/s
訪問時延
5ms~10ms
1ms

不同存儲其性能差異很大。例如NVME盤的吞吐量是SATA盤的7倍,IOPS超過了20倍,當(dāng)然對應(yīng)的成本也高出10倍左右。根據(jù)測試評估,低成本的存儲性能無法滿足大量數(shù)據(jù)的寫入和實時業(yè)務(wù)的監(jiān)控,只得使用性能高的SSD盤,因此導(dǎo)致存儲的成本提高。
成本提高,老板自然不滿意。那如何才能既滿足性能需求,又能控制成本呢?小王想,“實際上,不是所有的數(shù)據(jù)處理都需要很高的性能,如果把價值高的數(shù)據(jù)放在高性能磁盤上滿足業(yè)務(wù)需求,價值低的數(shù)據(jù)放在低成本磁盤上降低成本,這樣不就既能滿足需求,又能降低成本了么?”
不過,想法很美好,現(xiàn)實很殘酷,要實現(xiàn)這個方案,小王面臨著更多的難題:
(1)怎么在一套系統(tǒng)中既能使用高性能存儲,又能使用低成本存儲?
(2)怎么區(qū)分高價值數(shù)據(jù)?
(3)高價值數(shù)據(jù)變成低價值數(shù)據(jù)后怎么自動轉(zhuǎn)儲?
(4)當(dāng)前業(yè)務(wù)改造量要盡量少。
?

1.GaussDB(for Influx)解決方案
企業(yè)的數(shù)字化轉(zhuǎn)型,數(shù)據(jù)是基礎(chǔ)。為了能實時掌握設(shè)備、系統(tǒng)狀態(tài),需要采集大量的數(shù)據(jù)并進行實時處理。這些數(shù)據(jù)都屬于時序數(shù)據(jù),帶有明顯的特點,如時間戳、更新少、數(shù)據(jù)源唯一等。除了數(shù)據(jù)本身的特點,在業(yè)務(wù)應(yīng)用上還具有如下特點:
l?隨著時間的推移,其被查詢和分析的概率越來越低。
l?隨著時間的推移,對數(shù)據(jù)分析的實時性要求越來越低。
l?隨著時間的推移,數(shù)據(jù)的精度要求越來越低。
l?數(shù)據(jù)只保留一段時間,到期后會刪除。
如何結(jié)合時序數(shù)據(jù)的特點,實現(xiàn)小王既滿足業(yè)務(wù)性能,又控制成本的美好愿望呢?華為云GaussDB(for Influx)時序數(shù)據(jù)庫的數(shù)據(jù)分級存儲功能完美解決了困擾小王的問題。
1. 華為云GaussDB(for Influx)依托云原生能力,實現(xiàn)了計算存儲分離的分布式架構(gòu),其中存儲基于華為分布式存儲DFV和對象存儲OBS,解決了在一套系統(tǒng)中既能使用高性能存儲,又能使用低成本存儲的問題,其具體架構(gòu)如下圖:
?
分布式DFV存儲屬于高性能存儲,熱數(shù)據(jù)放在DFV中確保業(yè)務(wù)性能要求;OBS存儲屬于低成本存儲,冷數(shù)據(jù)存儲在OBS中,降低客戶成本。
2. 提供了冷熱數(shù)據(jù)自動分離的方案,用戶在創(chuàng)建保留策略時,可以指定冷熱數(shù)據(jù)的劃分時間,系統(tǒng)根據(jù)用戶的指定,自動將數(shù)據(jù)分為熱數(shù)據(jù)和冷數(shù)據(jù),解決了數(shù)據(jù)如何劃分的問題。
3. 隨著時間的推移,熱數(shù)據(jù)轉(zhuǎn)冷,系統(tǒng)會自動將數(shù)據(jù)轉(zhuǎn)儲到冷存儲上。
4. 上述過程中只有在創(chuàng)建RP時需要指定冷熱數(shù)據(jù)策略。對于業(yè)務(wù)側(cè)是不感知的,避免業(yè)務(wù)的適配和改造。
2.GaussDB(for Influx)冷熱存儲的使用
GaussDB(for Influx)存儲分級功能使用十分方便,在購買冷存儲后,設(shè)置RP策略時指定冷存儲的時間即可,系統(tǒng)會根據(jù)RP策略,自動將冷數(shù)據(jù)轉(zhuǎn)儲到底成本存儲上。業(yè)務(wù)在訪問冷數(shù)據(jù)時,系統(tǒng)會自動去冷存儲上讀取,整個過程業(yè)務(wù)是不感知的,對業(yè)務(wù)無影響。
2.1購買冷存儲
GaussDB(for Influx)支持一鍵購買冷存儲空間,可以在購買實例時選擇是否夠買冷存儲,選擇“是”,可以根據(jù)業(yè)務(wù)需求選擇冷存儲的大小,具體如下圖:
?
也可以在購買實例后,獨立購買冷存儲。進入實例詳情頁面,點擊創(chuàng)建冷存儲空間,如下圖:
?
跳轉(zhuǎn)到如下頁面,按照業(yè)務(wù)需求進行存儲空間大小選擇:
?
冷存儲空也支持在線擴容,擴容過程中不影響業(yè)務(wù)。
2.2設(shè)置冷數(shù)據(jù)規(guī)則
在購買了冷存儲空間后,就可以按照業(yè)務(wù)需求設(shè)置冷數(shù)據(jù)的規(guī)則,系統(tǒng)會根據(jù)規(guī)則,自動劃分冷熱數(shù)據(jù),并將冷數(shù)據(jù)存儲在冷存儲空間上??梢酝ㄟ^創(chuàng)建RP來指定冷熱數(shù)據(jù)規(guī)則,具體示例如下:
//在db名為mydb上創(chuàng)建名為myrp的RP,顯示指定WARM DURATION為6d,表示6天前的數(shù)據(jù)是冷數(shù)據(jù)。
create retention policy myrp on mydb duration 30d replication 1 warm duration 6d shard duration 3d
//在db名為mydb上創(chuàng)建名為myrp的RP,沒有指定WARM DURATION,表示沒有冷數(shù)據(jù)。
create retention policy myrp on mydb duration 30d replication 1 shard duration 3d
//創(chuàng)建名為mydb的db,并帶有名為myrp的RP,顯示指定WARM DURATION為3d,表示3天前的數(shù)據(jù)是冷數(shù)據(jù)。
create database mydb with duration 6d warm duration 3d name myrp
//修改WARM DURATION為7d,表示7天前的數(shù)據(jù)是冷數(shù)據(jù)。
alter retention policy myrp on mydb warm duration 7d
規(guī)則設(shè)置完成后,系統(tǒng)會根據(jù)指定的規(guī)則,自動判斷哪些數(shù)據(jù)屬于冷數(shù)據(jù),并自動將數(shù)據(jù)轉(zhuǎn)儲到冷存儲上。
2.3使用效果驗證
冷數(shù)據(jù)規(guī)則設(shè)置好,插入數(shù)據(jù)一段時間后,系統(tǒng)會自動判斷數(shù)據(jù)是否轉(zhuǎn)為冷數(shù)據(jù),如果已經(jīng)成為冷數(shù)據(jù),系統(tǒng)會自動將數(shù)據(jù)轉(zhuǎn)儲到冷存儲上??梢酝ㄟ^show?shards命令來查看數(shù)據(jù)的狀態(tài),如下圖所示:
> show shards
name: hsdb
id database retention_policy shard_group start_time ??????????end_time ????????????expiry_time ?????????owners tier
-- -------- ---------------- ----------- ---------- ??????????-------- ????????????----------- ?????????------ ----
5 ?hsdb ????myrp ????????????2 ??????????2019-08-12T00:00:00Z 2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 4 ?????cold
6 ?hsdb ????myrp ????????????2 ??????????2019-08-12T00:00:00Z 2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 5 ?????moving
7 ?hsdb ????myrp ????????????2 ??????????2019-08-12T00:00:00Z 2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 6 ?????warm
8 ?hsdb ????myrp ????????????2 ??????????2019-08-12T00:00:00Z 2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 7 ?????cold
cold:表示數(shù)據(jù)為冷數(shù)據(jù),已存儲在冷存儲中;
moving:表示數(shù)據(jù)為冷數(shù)據(jù),該數(shù)據(jù)正在轉(zhuǎn)儲到冷存儲中;
warm:表示數(shù)據(jù)為熱數(shù)據(jù)。
3.總結(jié)
在應(yīng)用了GaussDB(for Influx)的冷熱分級存儲方案后,存儲100T的數(shù)據(jù)量一年,按照1個月內(nèi)的數(shù)據(jù)是熱數(shù)據(jù),其余是冷數(shù)據(jù),其總體的存儲成本從250萬降至37.5萬,可節(jié)省85%的存儲成本。
GaussDB(for Influx)除了冷熱分級存儲功能外,在集群化、讀寫性能、壓縮率、高可用方面也做了深度優(yōu)化,能更好地滿足時序應(yīng)用的各種場景。