一. InfluxDB 数据保留策略说明
InfluxDB的数据保留策略(RP)用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据.
一个数据库可以有多个保留策略, 但每个策略必须是独一无二的.
二. InfluxDB数据保留策略目的
InfluxDB本身不提供数据的删除操作, 因此用来控制数据量的方式就是定义数据保留策略.
因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据, 从而更高效的处理数据.
三. InfluxDb数据保留策略 操作
-
查询策略
可以通过如下语句查看数据库的现有策略:
show retention policies on telegraf
name duration shardGroupDuration replicaN default default 0 168h0m0s 1 true 可以看到telegraf只有一个策略, 个字段的含义如下:
- name 名称, 此示例名称为default
- duration 持续时间, 0代表无限制
- shardGroupDuration shardGroup的存储时间, shardGroup是InfluxDB的一个基本存储结构, 应该大于这个时间的数据在查询效率上应该有所降低.
- replicaN 全称是REPLICATION, 副本个数
- default 是否是默认策略
-
新建策略
CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
通过上面的语句可以添加策略, 本例在telegraf库添加了一个2小时的策略, 名字叫做2_hours,duration为2小时, 副本为1, 设置为默认策略.
因为名为default的策略不再是默认策略, 因此, 在查询使用default策略的表时要显示的加上策略名"defalut"
select * from "default".cpu limit 2
-
修改策略
修改策略使用如下语句修改
ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
-
删除策略
drop retention POLICY "2_HOURS" ON "telegraf"
四. 其他说明
策略这个关键词"POLICY"在使用时应该大写,小写应该会出错.
当一个表使用的策略不是默认策略时, 在进行操作时一定要显示的指定策略名称, 否则会出现错误.