日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

influxdb的retention policy

發布時間:2023/12/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 influxdb的retention policy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義

The part of InfluxDB’s data structure that describes for how long InfluxDB keeps data (duration), how many copies of this data is stored in the cluster (replication factor), and the time range covered by shard groups (shard group duration). RPs are unique per database and along with the measurement and tag set define a series.

下面簡單談一下我對這句話的理解。retention policy描述了influxdb中的數據會保留多長時間、數據保留幾個副本(開源版的只能保留一個副本),以及每個shard保存多長時間的數據。每個influxdb數據庫都有一個獨立的retention policy。這里面涉及到幾個基本概念,下面描述一下。

  • DURATION:這個描述了保留策略要保留多久的數據。這個機制對于時序型的數據來講,是非常有用的。
  • SHARD:這個是實際存儲influxdb數據的單元。每個shard保留一個時間片的數據,默認是7天。如果你保存1年的數據,那么influxdb會把連續7天的數據放到一個shard中,使用好多個shard來保存數據。
  • SHARD DURATION:這個描述了每個shard存放多數據的時間片是多大。默認7天。需要注意的是,當數據超出了保留策略后,influxdb并不是按照數據點的時間一點一點刪除的,而是會刪除整個shard group。
  • SHARD GROUP:顧名思義,這個一個shard group包含多個shard。對于開源版的influxdb,這個其實沒有什么區別,可以簡單理解為一個shard group只包含一個shard,但對于企業版的多節點集群模式來講,一個shard group可以包含不同節點上的不同shard,這使得influxdb可以保存更多的數據。
  • SHARD REPLICATION:這個描述了每個shard有幾個副本。對于開源版來講,只支持單副本,對于企業版來講,每個shard可以冗余存儲,這樣可以避免單點故障。

關于SHARD DURATION

influxdb官方建議,如果保留期限低于2天,shard duration設置為1h,如果保留期限位于2天到6個月之間,shard duration設置為1d,如果保留期限大于6個月,shard duration設置為7d,

創建retention policy

當執行create database時,會創建一個名叫autogen的retention policy,它會永久保留數據

> create database testdb > use testdb Using database testdb > show retention policies name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 0s 168h0m0s 1 true

可以通過create retention policy的命令來創建一個新的retention policy

CREATE RETENTION POLICY "one_month" ON "testdb" DURATION 30d REPLICATION 1 DEFAULT

然后再查看一下retention policy

> show retention policies name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 0s 168h0m0s 1 false one_month 720h0m0s 24h0m0s 1 true

需要注意的是,如果切換數據庫的retention policy的話,已有的數據會被全部刪掉。

更新retention policy

如果想修改retention policy的數據保留時間,可以使用alter retention policy語句

> alter retention policy autogen on mydb duration 30d REPLICATION 1 SHARD DURATION 1d default> show retention policies name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 720h0m0s 24h0m0s 1 true

更新retention policy的保留時間的話,數據不會全部丟失。

retention policy最佳實踐

關于retention policy,最好的方式是在創建數據庫時就考慮清楚數據要保留多長時間。簡單來講,可以通過下面的方式創建一個保留30天的數據庫,并且,influxdb還會自動生成一個比較合理的shardGroupDuration,此時是1天。

> create database testdb2 with duration 30d > show retention policies on testdb2 name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 720h0m0s 24h0m0s 1 true

參考資料

https://docs.influxdata.com/influxdb/v1.7/query_language/database_management/

https://stackoverflow.com/questions/41620595/how-to-set-default-retention-policy-and-duration-for-influxdb-via-configuration

https://dzone.com/articles/simplifying-influxdb-shards-and-retention-policies

https://stackoverflow.com/questions/39878027/influxdb-whats-shard-group-duration

總結

以上是生活随笔為你收集整理的influxdb的retention policy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。