一. InfluxDB 數(shù)據(jù)保留策略說(shuō)明
InfluxDB的數(shù)據(jù)保留策略(RP)用來(lái)定義數(shù)據(jù)在InfluxDB中存放的時(shí)間,或者定義保存某個(gè)期間的數(shù)據(jù).
一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)保留策略, 但每個(gè)策略必須是獨(dú)一無(wú)二的.
二. InfluxDB數(shù)據(jù)保留策略目的
InfluxDB本身不提供數(shù)據(jù)的刪除操作, 因此用來(lái)控制數(shù)據(jù)量的方式就是定義數(shù)據(jù)保留策略.
因此定義數(shù)據(jù)保留策略的目的是讓InfluxDB能夠知道可以丟棄哪些數(shù)據(jù), 從而更高效的處理數(shù)據(jù).
三. InfluxDb數(shù)據(jù)保留策略 操作
-
查詢策略
可以通過(guò)如下語(yǔ)句查看數(shù)據(jù)庫(kù)的現(xiàn)有策略:
show retention policies on telegraf
name duration shardGroupDuration replicaN default default 0 168h0m0s 1 true 可以看到telegraf只有一個(gè)策略, 個(gè)字段的含義如下:
- name 名稱, 此示例名稱為default
- duration 持續(xù)時(shí)間, 0代表無(wú)限制
- shardGroupDuration shardGroup的存儲(chǔ)時(shí)間, shardGroup是InfluxDB的一個(gè)基本存儲(chǔ)結(jié)構(gòu), 應(yīng)該大于這個(gè)時(shí)間的數(shù)據(jù)在查詢效率上應(yīng)該有所降低.
- replicaN 全稱是REPLICATION, 副本個(gè)數(shù)
- default 是否是默認(rèn)策略
-
新建策略
CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
通過(guò)上面的語(yǔ)句可以添加策略, 本例在telegraf庫(kù)添加了一個(gè)2小時(shí)的策略, 名字叫做2_hours,duration為2小時(shí), 副本為1, 設(shè)置為默認(rèn)策略.
因?yàn)槊麨閐efault的策略不再是默認(rèn)策略, 因此, 在查詢使用default策略的表時(shí)要顯示的加上策略名"defalut"
select * from "default".cpu limit 2
-
修改策略
修改策略使用如下語(yǔ)句修改
ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
-
刪除策略
drop retention POLICY "2_HOURS" ON "telegraf"
四. 其他說(shuō)明
策略這個(gè)關(guān)鍵詞"POLICY"在使用時(shí)應(yīng)該大寫,小寫應(yīng)該會(huì)出錯(cuò).
當(dāng)一個(gè)表使用的策略不是默認(rèn)策略時(shí), 在進(jìn)行操作時(shí)一定要顯示的指定策略名稱, 否則會(huì)出現(xiàn)錯(cuò)誤.