InfluxDB-Retention Policy

备份数据的策略,主要包括数据保留时间和备份个数两个信息。官网中retention policy的两个作用

“A retention policy describes how long InfluxDB keeps data (DURATION) and how many copies of those data are stored in the cluster (REPLICATION)”

但是,备份个数只针对于集群机器,对于单点模式不起作用,需要设置为1。

Replication factors do not serve a purpose with single node instances.

Shard和ShardGroup


(1) ShardGroup

influxdb假设保留1个月数据,ShardGroup作用就是按某一个时间间隔来归档这些数据,比如按日归档,就是1号数据是一个ShardGroup1,2号数据是ShardGroup2。

(2) Shard

Shard是真正存储数据的。对于ShardGroup还需要按照series来划分,每一个Shard负责存储一些Series的信息,比如ShardGroup1下面有个Shard1,负责存储seriesA和seriesB的数据,那么此时Shard1里面数据就是seriesA和seriesB在1号的数据。

ShardGroup是如何设置时间区间的


默认情况下都是由保存策略来设置的。存在如下对应关系

RP DurationShard Group Duration
<2days1 hour

>=2days and <= 6 months

1 day

>6 months

7 days

基本操作


新增

Retention 是基于数据库的。如果没有自定义,那么都有一个默认的值,如下:

> SHOW RETENTION POLICIES ON db_metric

name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

如果想要新增一个,可以通过如下命令模式进行新增一个retention策略,如下:

CREATE RETENTION POLICY <retention_policy_name> ON <database> DURATION <duration>  REPLICATION <n> [DEFAULT]

(1) retention_policy_name,表示策略名称
(2) datbase,表示数据库名称。  retention策略是基于数据库的。此属性为必填项,所以Retention policy只针对某一个数据库进行创建的,不支持对全量的配置(对所有数据库都生效)。
(3) duration,表示的是时间长度。

  • m表示分钟
  • h表示小时
  • d表示天数
  • w表示周

(4) n,表示的是备份的份数。
(5) DEFAULT,用来把当前策略设置为默认策略。

举例如下,保存20天数据和备份1份:

CREATE RETENTION POLICY "20_days" ON "db_metric" DURATION 20d REPLICATION 1

查询

查询db_metric数据库上面的retension policy

> SHOW RETENTION POLICIES ON db_metric

name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true
20_days 480h0m0s 24h0m0s            1        false

修改

ALTER RETENTION POLICY <retention_policy_name> ON <database> DURATION <duration> REPLICATION <n> [DEFAULT]

对于上面新建的20_day2策略执行如下更新操作

(1) 只更新是否为默认策略,将策略20_days作为库db_metric默认策略

alter retention policy "20_days" on "db_metric" DEFAULT

(2) 只更新保存时间

alter retention policy "20_days" on "db_metric" duration 30d

删除

DROP RETENTION POLICY <retention_policy_name> ON <database>
  • retention_policy_name,表示策略名称。
  • datbase,表示数据库名称。  retention策略是基于数据库的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值