influxDB-数据保存策略

retention policy: 存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据。插入和查询数据时如果不指定存储策略,则使用默认存储策略,且默认存储策略可以修改。InfluxDB 会定期清除过期的数据。

一、InfluxDB 数据保存策略 说明

InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。

一个数据库可以有多个保留策略,但每个策略必须是独一无二的。

二、InfluxDB 数据保留策略 目的

InfluxDB本身不提供数据的删除操作, 因此用来控制数据量的方式就是定义数据保留策略.

因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据, 从而更高效的处理数据.

三、InfluxDB 数据保留策略 操作

1.查询策略

可以通过如下语句查看数据库的现有策略:

> show retention policies on hyp1
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

可以看到telegraf只有一个策略, 个字段的含义如下:

  • name 名称, 此示例名称为default
  • duration 持续时间, 0代表无限制
  • shardGroupDuration shardGroup的存储时间, shardGroup是InfluxDB的一个基本存储结构, 应该大于这个时间的数据在查询效率上应该有所降低.
  • replicaN 全称是REPLICATION, 副本个数
  • default 是否是默认策略

2.新建策略

1 > CREATE RETENTION POLICY "2_hours" ON "hyp1" DURATION 2h REPLICATION 1 DEFAULT
2 > show retention policies on hyp1
3 name    duration shardGroupDuration replicaN default
4 ----    -------- ------------------ -------- -------
5 autogen 0s       168h0m0s           1        false
6 2_hours 2h0m0s   1h0m0s             1        true

通过上面的语句可以添加策略,本例在 telegraf 库添加了一个2小时的策略,名字叫做 2_hours, duration为2小时,副本为1,设置为默认策略。

因为名为default的策略不再是默认策略,因此,在查询使用default策略的表时要显式的加上策略名 “default”。

select * from "2_hours".weather
#为啥我select后不显示

3.修改策略

> ALTER RETENTION POLICY "2_hours" ON "hyp1"  DURATION 4h DEFAULT

> show retention policies on hyp1
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false
2_hours 4h0m0s   1h0m0s             1        true

4.删除策略

> drop retention POLICY "2_hours" ON "hyp1"
> show retention policies on hyp1
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false
原文地址:https://www.cnblogs.com/Bluebells/p/14122236.html