InfluxDB 是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。(数据库过期策略至少一个小时),默认保存策略为永久保存。数据保存策略的应用范围整个数据库
查看保存策略
# 查看某个库的策略 show retention policies on "数据库名称" # 查看当前库下的策略,需要先用 use database 命令指定库名 show retention policies
- name:策略名称
- duration:数据保存时间,超过这个时间自动删除,0 表示永久保存
- shardGroupDuration:shardGroup 的存储时间,shardGroup 是 InfluxDB 的一个基本储存结构,在这个时间内插入的数据查询较快,数据存放大于 168 小时查询速度降低
- replicaN:全称是 REPLICATION,副本个数
- default:是否默认策略
一个数据库的保存策略可以有多个,但是生效的只有一个
创建保留策略
# 创建策略 - CREATE RETENTION POLICY "保留策略名称" ON "数据库名称" DURATION "该保留策略对应的数据过期时间" REPLICATION "复制因子,开源的 InfluxDB 单机环境永远为 1" SHARD DURATION "分片组的默认时长" DEFAULT; - CREATE RETENTION POLICY "ai_room" ON logs DURATION 2w REPLICATION 1 SHARD DURATION 168h DEFAULT;
时间单位:h(小时),d(天),w(星期)
注意:duration 过期时间必须大于等于 shardGroupDuration 时间
修改保存策略
ALTER RETENTION POLICY "保留策略名称" ON "数据库名称" DURATION 1d;
生效保存策略
ALTER RETENTION POLICY "保留策略名称" ON "数据库名称" DEFAULT;
删除保存策略
DROP RETENTION POLICY "保留策略名称" ON "数据库名称"