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

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以通过create retention policy的命令来创建一个新的retention policy

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

 
 
  • 1

然后再查看一下retention policy

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

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

需要注意的是,如果切换数据库的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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

更新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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值