InfluxDB学习之InfluxDB数据保留策略(Retention Policies)
?
InfluxDB每秒可以處理成千上萬條數(shù)據(jù),要將這些數(shù)據(jù)全部保存下來會(huì)占用大量的存儲(chǔ)空間,有時(shí)我們可能并不需要將所有歷史數(shù)據(jù)進(jìn)行存儲(chǔ),因此,InfluxDB推出了數(shù)據(jù)保留策略(Retention Policies),用來讓我們自定義數(shù)據(jù)的保留時(shí)間。更多InfluxDB詳細(xì)教程請看:InfluxDB系列學(xué)習(xí)教程目錄
?
?
一、InfluxDB 數(shù)據(jù)保留策略 說明
InfluxDB的數(shù)據(jù)保留策略(RP) 用來定義數(shù)據(jù)在InfluxDB中存放的時(shí)間,或者定義保存某個(gè)期間的數(shù)據(jù)。
一個(gè)數(shù)據(jù)庫可以有多個(gè)保留策略,但每個(gè)策略必須是獨(dú)一無二的。
二、InfluxDB 數(shù)據(jù)保留策略 目的
InfluxDB本身不提供數(shù)據(jù)的刪除操作,因此用來控制數(shù)據(jù)量的方式就是定義數(shù)據(jù)保留策略。
因此定義數(shù)據(jù)保留策略的目的是讓InfluxDB能夠知道可以丟棄哪些數(shù)據(jù),從而更高效的處理數(shù)據(jù)。
三、InfluxDB 數(shù)據(jù)保留策略 操作
1)查詢策略
可以通過如下語句查看數(shù)據(jù)庫的現(xiàn)有策略:
> SHOW RETENTION POLICIES ON telegraf name duration shardGroupDuration replicaN default default 0 168h0m0s 1 true可以看到,telegraf只有一個(gè)策略,各字段的含義如下:
name--名稱,此示例名稱為 default
duration--持續(xù)時(shí)間,0代表無限制
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)策略
2)新建策略
> CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT > SHOW RETENTION POLICIES ON telegraf name duration shardGroupDuration replicaN default default 0 168h0m0s 1 false 2_hours 2h0m0s 1h0m0s 1 true通過上面的語句可以添加策略,本例在 telegraf 庫添加了一個(gè)2小時(shí)的策略,名字叫做 2_hours, duration為2小時(shí),副本為1,設(shè)置為默認(rèn)策略。
因?yàn)槊麨閐efault的策略不再是默認(rèn)策略,因此,在查詢使用default策略的表時(shí)要顯式的加上策略名 “default”。
> select * from "default".cpu limit 2 name: cpu --------- time cpu host host_id usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user 1467884670000000000 cpu-total ResourcePool-0246-billing07 0 0 99.79994164175388 0 0 0.06251823446523729 0 0 0.12920435125646068 0.008335764603451727 1467884670000000000 cpu9 billing07 0 0 97.79338014069532 1.8054162487519367 0 0 0 0 0.10030090272883943 0.30090270811353983)修改策略
修改策略使用如下語句修改
> ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT > show retention POLICIES on telegraf name duration shardGroupDuration replicaN default default 0 168h0m0s 1 false 2_hours 4h0m0s 1h0m0s 1 true可以看到,修改后的策略發(fā)生了變化。
4)刪除策略
InfluxDB中策略的刪除操作如下所示:
> drop retention POLICY "2_hours" ON "telegraf" > show retention POLICIES on telegraf name duration shardGroupDuration replicaN default default 0 168h0m0s 1 false可以看到,名為2_hours的策略已經(jīng)被刪除了。
四、其他說明
策略這個(gè)關(guān)鍵詞“POLICY”在使用是應(yīng)該大寫,小寫應(yīng)該會(huì)出粗。
當(dāng)一個(gè)表使用的策略不是默認(rèn)策略時(shí),在進(jìn)行操作時(shí)一定要顯式的指定策略名稱,否則會(huì)出現(xiàn)錯(cuò)誤。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/gaoguangjun/p/8513032.html
總結(jié)
以上是生活随笔為你收集整理的InfluxDB学习之InfluxDB数据保留策略(Retention Policies)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下通用Makefile写法
- 下一篇: 求交错序列前N项和(15 分)