influxdb的保留策略不生效解决方法


遇到的一个问题:对influxdb中的库加保留策略后,默认的保留策略对表中数据不生效,无法清理其中超时内容。下面写一下当时的解决办法

(一)shardGroup设置

使用show retention policies查看当前设置的保留策略如下:
在这里插入图片描述
可以看到默认的保留策略是rp_default,时间是30d,注意其中的shardGroupDuration是7d。查看其中数据:
在这里插入图片描述
目前我的时间是02-08,正常情况下,01-03的数据已经达到了30d的清理条件,应该被删除。
查看influxdb的资料后发现,保留策略对超时的数据清理的单位是shardGroupDuration,也就是每次不是单独的清理一条超时数据,而是清理一个shardGroupDuration分区数据,如果为7d,那么是每次选取7d来清理这7d区间中的超时数据。
之后修改了shardGroupDuration的时间为1d,1-03的数据就被正常清理了。在这里插入图片描述

在这里插入图片描述

(二)立即生效问题

还有需要注意的是,设置了保留策略以后,不是当下立即生效。
例子如下:

在库中,设置的默认保留策略是1d。
在这里插入图片描述
在此刻3.12的11:42查询到一条数据,time是3.08的12:27。正常来说。这条数据已经超了一天,应该删除。
在这里插入图片描述
在11:49再次查询,还没有删除。
在这里插入图片描述
仍然没有生效的情况下,查找了一下关于rp不立即生效的原因:有原因说是要等compator组件合并tsm文件的时候删除。关于TSM的讲解可以参考这篇文章:TSM存储引擎解析
但是如果想立即生效,是否会有关于此的配置。找到influx的配置,对其进行查看。

(三)关于rp的conf

[retention]
enabled = true  # 是否启用该模块,默认值 : true
check-interval = "30m"  # 检查时间间隔,默认值 :"30m"

可以看到,retention policy有一个检查时间间隔,默认值是30m。可以理解为30分钟检查一次rp。如果发生改变,将此保留策略约束的数据进行清理。我们如果缩短检查时间间隔,应该会按照检查的时间生效。
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值