Influxdb時序資料庫 資料儲存策略
阿新 • • 發佈:2019-02-14
一. InfluxDB 資料保留策略說明
InfluxDB的資料保留策略(RP)用來定義資料在InfluxDB中存放的時間,或者定義儲存某個期間的資料.
一個數據庫可以有多個保留策略, 但每個策略必須是獨一無二的.
二. InfluxDB資料保留策略目的
InfluxDB本身不提供資料的刪除操作, 因此用來控制資料量的方式就是定義資料保留策略.
因此定義資料保留策略的目的是讓InfluxDB能夠知道可以丟棄哪些資料, 從而更高效的處理資料.
三. InfluxDb資料保留策略 操作
查詢策略
可以通過如下語句檢視資料庫的現有策略:
show retention policies on telegraf
name duration shardGroupDuration replicaN default default 0 168h0m0s 1 true 可以看到telegraf只有一個策略, 個欄位的含義如下:
- name 名稱, 此示例名稱為default
- duration 持續時間, 0代表無限制
- shardGroupDuration shardGroup的儲存時間, shardGroup是InfluxDB的一個基本儲存結構, 應該大於這個時間的資料在查詢效率上應該有所降低.
- replicaN 全稱是REPLICATION, 副本個數
- default 是否是預設策略
新建策略
CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
通過上面的語句可以新增策略, 本例在telegraf庫添加了一個2小時的策略, 名字叫做2_hours,duration為2小時, 副本為1, 設定為預設策略.
因為名為default的策略不再是預設策略, 因此, 在查詢使用default策略的表時要顯示的加上策略名"defalut"
select * from "default".cpu limit 2
修改策略
修改策略使用如下語句修改
ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
刪除策略
drop retention POLICY "2_HOURS" ON "telegraf"
四. 其他說明
策略這個關鍵詞"POLICY"在使用時應該大寫,小寫應該會出錯.
當一個表使用的策略不是預設策略時, 在進行操作時一定要顯示的指定策略名稱, 否則會出現錯誤.