InfluxDB 中的保留策略用于定义时间序列数据在数据库中的保留期限。保留策略决定了数据在 InfluxDB 中的存储持续时间和精度。以下是 InfluxDB 的保留策略类型以及如何设置和查看它们的详细说明:

保留策略类型:

  1. 默认保留策略(Default Retention Policy):每个数据库都有一个默认的保留策略,用于存储未指定保留策略的数据。默认保留策略名称为 autogen
  2. 用户定义的保留策略(User-defined Retention Policy):用户可以自定义保留策略,并为特定的测量表指定不同的保留策略名称。用户定义的保留策略可以有任意名称。

设置保留策略:

  1.创建保留策略:

  使用以下语法创建用户定义的保留策略:

CREATE RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]
  • <policy_name>: 保留策略的名称。
  • <database_name>: 要应用保留策略的数据库名称。
  • <duration>: 数据的保留期限,例如 1d 表示一天。
  • <replication_factor>: 数据的复制因子,指定数据在集群中的副本数量。
  • <shard_duration>(可选): 如果要自定义分片持续时间,则可以指定分片的持续时间。

  2.修改保留策略:

    使用以下语法修改保留策略的参数:

ALTER RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]:

3.删除保留策略:

  使用以下语法删除保留策略:

DROP RETENTION POLICY "<policy_name>" ON "<database_name>"

查看保留策略:

  使用以下语法查看数据库中的所有保留策略和其详细信息:

SHOW RETENTION POLICIES ON "<database_name>"

示例:

mydbtemperatureone_week 的保留策略,保留期限为一周,复制因子为 1。以下是相关的 InfluxQL 查询示例:

-- 创建保留策略
CREATE RETENTION POLICY "one_week" ON "mydb" DURATION 7d REPLICATION 1

-- 修改保留策略
ALTER RETENTION POLICY "one_week" ON "mydb" DURATION 8d REPLICATION 1

-- 查看保留策略
SHOW RETENTION POLICIES ON "mydb"

-- 删除保留策略
DROP RETENTION POLICY "one_week" ON "mydb"

  保留策略确定了数据在 InfluxDB 中的保存周期和数据的复制副本数量,可以根据需求进行灵活调整。