Influxdb修改數據保留策略

  • retention policy: 存儲策略,用於設置數據保留的時間,每一個數據庫剛開始會自動建立一個默認的存儲策略 autogen,數據保留時間爲永久,以後用戶能夠本身設置,例如保留最近2小時的數據。插入和查詢數據時若是不指定存儲策略,則使用默認存儲策略,且默認存儲策略能夠修改。InfluxDB 會按期清除過時的數據。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------linux

InfluxDB每秒能夠處理成千上萬條數據,要將這些數據所有保存下來會佔用大量的存儲空間,有時咱們可能並不須要將全部歷史數據進行存儲,所以,InfluxDB推出了數據保留策略(Retention Policies),用來讓咱們自定義數據的保留時間。數據庫

1、InfluxDB 數據保留策略 說明

InfluxDB的數據保留策略(RP) 用來定義數據在InfluxDB中存放的時間,或者定義保存某個期間的數據。spa

一個數據庫能夠有多個保留策略,但每一個策略必須是獨一無二的。code

2、InfluxDB 數據保留策略 目的

InfluxDB自己不提供數據的刪除操做,所以用來控制數據量的方式就是定義數據保留策略。blog

所以定義數據保留策略的目的是讓InfluxDB可以知道能夠丟棄哪些數據,從而更高效的處理數據。flux

3、InfluxDB 數據保留策略 操做

1)查詢策略ci

能夠經過以下語句查看數據庫的現有策略:get

> SHOW RETENTION POLICIES ON telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        true

能夠看到,telegraf只有一個策略,各字段的含義以下:it

name--名稱,此示例名稱爲 defaultio

duration--持續時間,0表明無限制

shardGroupDuration--shardGroup的存儲時間,shardGroup是InfluxDB的一個基本儲存結構,應該大於這個時間的數據在查詢效率上應該有所下降。

replicaN--全稱是REPLICATION,副本個數

default--是不是默認策略

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 庫添加了一個2小時的策略,名字叫作 2_hours, duration爲2小時,副本爲1,設置爲默認策略。

由於名爲default的策略再也不是默認策略,所以,在查詢使用default策略的表時要顯式的加上策略名 「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.3009027081135398
複製代碼

3)修改策略

修改策略使用以下語句修改

> 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

能夠看到,修改後的策略發生了變化。

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的策略已經被刪除了。

4、其餘說明

當一個表使用的策略不是默認策略時,在進行操做時必定要顯式的指定策略名稱,不然會出現錯誤。

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

--查詢策略
show retention policies on yunhedb

--修改策略
alter retention policy "autogen" on "yunhedb" duration 730d replication 1 default;


---------------------------------------------------------------------------------------------------------------------------------------------------------------------

持續時間

持續時間文字指定一段時間。由下面列出的持續時間單位當即跟隨(沒有空格)的整數文字被解釋爲持續時間文字。可使用混合單位指定持續時間。

持續時間單位

單位 含義
NS 納秒(十億分之一秒)
你或μ 微秒(百萬分之一秒)
女士 毫秒(千分之一秒)
小號 第二
分鐘
H 小時
d
w ^
duration_lit        = int_lit duration_unit .
duration_unit       = "ns" | "u" | "µ" | "ms" | "s" | "m" | "h" | "d" | "w" .
相關文章
相關標籤/搜索