歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> InfluxDB學習之InfluxDB數據保留策略(Retention Policies),influxdbretention

InfluxDB學習之InfluxDB數據保留策略(Retention Policies),influxdbretention

日期:2017/3/3 18:06:50   编辑:學習Linux

InfluxDB學習之InfluxDB數據保留策略(Retention Policies),influxdbretention

InfluxDB學習之InfluxDB數據保留策略(Retention Policies),influxdbretention


InfluxDB每秒可以處理成千上萬條數據,要將這些數據全部保存下來會占用大量的存儲空間,有時我們可能並不需要將所有歷史數據進行存儲,因此,InfluxDB推出了數據保留策略(Retention Policies),用來讓我們自定義數據的保留時間。更多InfluxDB詳細教程請看:InfluxDB系列學習教程目錄

InfluxDB技術交流群:580487672(點擊加入)

數據保留策略

一、InfluxDB 數據保留策略 說明

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

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

二、InfluxDB 數據保留策略 目的

InfluxDB本身不提供數據的刪除操作,因此用來控制數據量的方式就是定義數據保留策略。

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

三、InfluxDB 數據保留策略 操作

1)查詢策略

可以通過如下語句查看數據庫的現有策略:

> 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--是否是默認策略

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

四、其他說明

策略這個關鍵詞“POLICY”在使用是應該大寫,小寫應該會出粗。

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

好了,有關 InfluxDB數據保留策略(Retention Policies) 的相關內容就先為大家介紹到這裡,有問題歡迎大家留言討論。

更多InfluxDB詳細教程請看:InfluxDB系列學習教程目錄

InfluxDB技術交流群:580487672(點擊加入)

http://xxxxxx/Linuxjc/1173649.html TechArticle

Copyright © Linux教程網 All Rights Reserved