InfluxDB学习之InfluxDB数据保留策略(Retention Policies)

 

 

InfluxDB每秒能够处理成千上万条数据,要将这些数据所有保存下来会占用大量的存储空间,有时咱们可能并不须要将全部历史数据进行存储,所以,InfluxDB推出了数据保留策略(Retention Policies),用来让咱们自定义数据的保留时间。更多InfluxDB详细教程请看:InfluxDB系列学习教程目录html

 

 

1、InfluxDB 数据保留策略 说明

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

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

2、InfluxDB 数据保留策略 目的

InfluxDB自己不提供数据的删除操做,所以用来控制数据量的方式就是定义数据保留策略。post

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

3、InfluxDB 数据保留策略 操做

1)查询策略spa

能够经过以下语句查看数据库的现有策略:code

> SHOW RETENTION POLICIES ON telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        true

能够看到,telegraf只有一个策略,各字段的含义以下:htm

name--名称,此示例名称为 defaultblog

duration--持续时间,0表明无限制教程

shardGroupDuration--shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所下降。

replicaN--全称是REPLICATION,副本个数

default--是不是默认策略

2)新建策略

> 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

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

由于名为default的策略再也不是默认策略,所以,在查询使用default策略的表时要显式的加上策略名 “default”。

复制代码
> select * from "default".cpu limit 2
name: cpu
---------
time            cpu        host                host_id    usage_guest    usage_guest_nice    usage_idle   usage_iowait        usage_irq    usage_nice        usage_softirq    usage_steal    usage_system        usage_user
1467884670000000000    cpu-total    ResourcePool-0246-billing07        0        0            99.79994164175388    0            0        0.06251823446523729    0        0        0.12920435125646068    0.008335764603451727
1467884670000000000    cpu9        billing07                0        0            97.79338014069532    1.8054162487519367    0        0            0        0        0.10030090272883943    0.3009027081135398
复制代码

3)修改策略

修改策略使用以下语句修改

> ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
> show retention POLICIES on telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        false
2_hours    4h0m0s        1h0m0s            1        true

能够看到,修改后的策略发生了变化。

4)删除策略

InfluxDB中策略的删除操做以下所示:

> drop retention POLICY "2_hours" ON "telegraf"
> show retention POLICIES on telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        false

能够看到,名为2_hours的策略已经被删除了。

4、其余说明

策略这个关键词“POLICY”在使用是应该大写,小写应该会出粗。

当一个表使用的策略不是默认策略时,在进行操做时必定要显式的指定策略名称,不然会出现错误。

相关文章
相关标签/搜索