@Alex-Zhao
2018-05-02T14:04:08.000000Z
字数 1060
阅读 122
数据库
InfluxDB每秒可以处理千万条数据,要将这些数据全部保存下来会占用大量存储空间,有时历史数据我们可能就不需要了,所以InfluxDB有数据保留(Retention Policies)策略可以通过它来自定义数据保留时间。
操作
> SHOW RETENTION POLICIES ON telegraf
name duration shardGroupDuration replicaN default
default 0 168h0m0s 1 true
字段含义:
name--名称
duration--数据持续时间,0代表无限制
shardGroupDuration--shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。
replicaN--全称是REPLICATION,副本个数
default--是否是默认策略
> CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
> SHOW RETENTION POLICIES ON telegraf
name duration shardGroupDuration replicaN default
default 0 168h0m0s 1 false
2_hours 2h0m0s 1h0m0s 1 true
因为名为default的策略不再是默认策略,因此,在查询使用default策略的表时要显式的加上策略名 “default”。
> select * from "default".cpu limit 2
修改策略
ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
删除策略
drop retention POLICY "2_hours" ON "telegraf"
其他说明
策略这个关键词“POLICY”在使用是应该大写,小写应该会出粗。
当一个表使用的策略不是默认策略时,在进行操作时一定要显式的指定策略名称,否则会出现错误。