首页/数据/NoSQL 速查/1.x 保留策略(retention policy)

1.x 保留策略(retention policy)

1.x 用数据库 + 保留策略管理生命周期:CREATE RETENTION POLICY 指定 DURATION 与 REPLICATION,DEFAULT 策略决定未显式指定 RP 时数据写入位置。

NoSQL 速查数据更新于 2026-10-13

保留策略管什么

InfluxDB 1.x 用「数据库 + 保留策略」组织数据生命周期:保留策略(RP)定义数据保存多久(DURATION)、副本数(REPLICATION)以及分片组时长(SHARD DURATION),并决定未显式指定时写入落到哪里。数据的自动过期就是按 RP 的时长执行,因此分层保留在 1.x 里是靠多个 RP 配合连续查询实现的。

基本信息

创建CREATE RETENTION POLICY "rp_30d" ON "mydb" DURATION 30d REPLICATION 1
默认策略CREATE RETENTION POLICY "rp_7d" ON "mydb" DURATION 7d REPLICATION 1 DEFAULT
查看SHOW RETENTION POLICIES ON "mydb"
删除DROP RETENTION POLICY "rp_30d" ON "mydb"(同时删除其数据)
写入指定INSERT INTO "mydb"."rp_90d"."cpu" …,查询跨 RP 也要写全路径
常见默认值新建库自带的 autogen 策略通常为无限保留、单副本

典型使用场景

  • 分层保留:短期 RP 存原始精度数据,长期 RP 存降采样结果,靠连续查询自动搬运
  • 按业务分级:核心指标保留数年、调试类指标只保留数天
  • 写入路由:不同精度或不同来源的数据写进不同 RP,避免混杂后无法分层清理
  • 容量规划:按 RP 时长与每日写入量估算磁盘规模
  • 变更默认策略前评估影响:DEFAULT 变化会影响所有未显式指定 RP 的写入与查询

示例

示例
-- 建库时就带上默认保留时长
CREATE DATABASE "metrics" WITH DURATION 7d REPLICATION 1;

-- 长期保留策略:接收连续查询产出的降采样数据
CREATE RETENTION POLICY "rp_90d" ON "metrics" DURATION 90d REPLICATION 1;

-- 查看全部策略(含默认标记与分片组时长)
SHOW RETENTION POLICIES ON "metrics";

-- 把默认策略切到 30 天(影响未显式指定 RP 的写入)
-- ALTER RETENTION POLICY "rp_30d" ON "metrics" DURATION 30d DEFAULT;

-- 写入指定策略时要用全路径
-- INSERT INTO "metrics"."rp_90d"."cpu",host=web-1 usage=0.73

参数读法

参数含义注意点
DURATION数据保留时长最小为 1h;0 表示无限保留
REPLICATION副本因子单机版本只能为 1,集群版才有多副本
SHARD DURATION分片组时长决定过期数据的删除粒度,通常随 DURATION 自动推导
DEFAULT是否为默认策略同一库内变更默认会影响未指定的写入与查询
name策略名查询与写入引用时需与库名一起写全路径
分层保留需要三件东西配合:短期 RP、长期 RP 与把数据从前者搬向后者的连续查询。只建 RP 而不配搬运任务,长期策略里不会有任何数据。
删除保留策略会连带删除该策略下的全部数据,这是不可逆操作;改动 DURATION 也会让超期数据在后续过期周期中被清理。

易错点

  • 把保留策略当作备份手段:到期数据会被自动删除,长期留存必须靠独立的长期 RP 加搬运任务
  • DURATION 与分片组时长不匹配:分片组过长会让过期数据迟迟不释放,过短又会产生大量小分片拖慢查询
  • 变更 DEFAULT 前未评估:未显式指定 RP 的写入与查询全部改道,可能出现「数据写进新策略、报表仍读旧策略」的错位
  • 删除策略时只想着清理配置:DROP 会连同数据一起删除,执行前确认该策略内数据是否还有业务依赖

数据来源与参考

  • InfluxData Docs: Retention policies (1.x)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌