GeminiDB Influx在同一數據保留策略(Retention Policy,簡稱RP,包含數據保留時長,備份個數等信息)里實現了冷熱數據分離,系統會根據RP中用戶設置的冷熱數據分界線自動將符合轉冷條件的熱數據歸檔到冷存儲中。
背景
在海量大數據場景下,時序數據冷熱分明,即隨著時間推移歷史的時序數據被查詢和分析的概率越低,同時因為這些數據占用量比較大,降低這部分冷數據的存儲容量將會極大的節省企業的成本。GeminiDB Influx提供了冷熱分離功能,使用低成本的介質存儲冷數據,并通過極簡配置就能極大的降低存儲成本。
GeminiDB Influx對數據的冷熱分離是基于RP的,用戶首先需要在RP中設置冷熱數據分界線,系統會自動根據此冷熱設置將相應的冷數據歸檔到冷存儲中。冷數據訪問和普通訪問沒有任何差異,對用戶而言是完全透明的,在查詢的過程中,系統會根據查詢條件中的時間范圍(TimeRange)自動地從熱數據區或冷數據區查詢數據。
原理簡介
用戶在RP中配置熱數據的保存時長。數據在寫入時先保存在熱存儲上,GeminiDB Influx根據數據中的時間戳判斷數據的冷熱,如果數據的時間戳在熱數據保存時長之內,則是熱數據,如果是保存時長之前的數據,則是冷數據,系統自動歸檔到冷存儲上。
圖1 原理圖

基本使用
- 設置冷熱時間分界線
GeminiDB Influx冷熱數據時間分界線設置就是設置RP中的WARM DURATION,在WARM DURATION之前的數據屬于冷數據。
設置WARM DURATION的具體操作方法如下:
//在db名為mydb上創建名為myrp的RP,顯示指定WARM DURATION為6d,表示6天前的數據是冷數據。
create retention policy myrp on mydb duration 30d replication 1 warm duration 6d shard duration 3d
//在db名為mydb上創建名為myrp的RP,沒有指定WARM DURATION,表示沒有冷數據。
create retention policy myrp on mydb duration 30d replication 1 shard duration 3d
//創建名為mydb的db,并帶有名為myrp的RP,顯示指定WARM DURATION為3d,表示3天前的數據是冷數據。
create database mydb with duration 6d warm duration 3d name myrp
//修改WARM DURATION為7d,表示7天前的數據是冷數據。
alter retention policy myrp on mydb warm duration 7d
- 數據寫入
冷熱數據的寫入方式完全一致,數據在寫入時會先保存在熱存儲中。隨著時間推移,如果熱存儲中的數據時間戳超過了設置的WARM DURATION,系統會自動將這部分數據歸檔到冷存儲中。此過程完全對用戶透明。
- 數據查詢
冷熱數據的查詢方式完全一致。數據在查詢時,系統會根據查詢語句中的TimeRange條件自動查詢熱存儲或冷存儲。此過程完全對用戶透明。查詢冷存儲數據的響應會比查詢熱存儲數據的響應有所延遲。
- 查看冷熱數據狀態
> show shards
name: _internal
id database retention_policy shard_group start_time end_time expiry_time owners tier
-- -------- ---------------- ----------- ---------- -------- ----------- ------ ----
1 _internal monitor 1 2021-06-29T00:00:00Z 2021-06-30T00:00:00Z 2021-07-07T00:00:00Z 4 warm
2 _internal monitor 1 2021-06-29T00:00:00Z 2021-06-30T00:00:00Z 2021-07-07T00:00:00Z 5 warm
3 _internal monitor 1 2021-06-29T00:00:00Z 2021-06-30T00:00:00Z 2021-07-07T00:00:00Z 7 warm
4 _internal monitor 1 2021-06-29T00:00:00Z 2021-06-30T00:00:00Z 2021-07-07T00:00:00Z 6 warm
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
如果tier是cold,表示當前shard是冷數據。
如果tier是warm,表示當前shard是熱數據。
如果tier是moving,表示當前shard正在熱數據變成冷數據的過程中。
熱數據變成冷數據的過程只涉及shard中的TSM文件從熱存儲轉移到冷存儲,shard的其他文件不涉及移動,仍然保存在熱存儲中。