1. 程式人生 > >Influxdb時序資料庫 資料儲存策略

Influxdb時序資料庫 資料儲存策略

一. InfluxDB 資料保留策略說明

InfluxDB的資料保留策略(RP)用來定義資料在InfluxDB中存放的時間,或者定義儲存某個期間的資料.

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

二. InfluxDB資料保留策略目的

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

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

三. InfluxDb資料保留策略 操作

  1. 查詢策略

    可以通過如下語句檢視資料庫的現有策略:

    show retention policies on telegraf
    
    namedurationshardGroupDurationreplicaNdefault
    default0168h0m0s1true

    可以看到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
    

    通過上面的語句可以新增策略, 本例在telegraf庫添加了一個2小時的策略, 名字叫做2_hours,duration為2小時, 副本為1, 設定為預設策略.

    因為名為default的策略不再是預設策略, 因此, 在查詢使用default策略的表時要顯示的加上策略名"defalut"

    select * from "default".cpu limit 2
    
  3. 修改策略

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

    ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
    
  4. 刪除策略

    drop retention POLICY "2_HOURS" ON "telegraf"
    

四. 其他說明

策略這個關鍵詞"POLICY"在使用時應該大寫,小寫應該會出錯.

當一個表使用的策略不是預設策略時, 在進行操作時一定要顯示的指定策略名稱, 否則會出現錯誤.