2018-05-21 InfluxDB 数据保存策略(Retention Policies)

InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Policies),用来让我们自定义数据的保留时间。

一、InfluxDB 数据保留策略 说明

InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。 一个数据库可以有多个保留策略,但每个策略必须是独一无二的。

二、InfluxDB 数据保留策略 目的

InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。 因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。

三、InfluxDB 数据保留策略 操作

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

> show retention policies on test

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

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

duration--持续时间,0代表无限制

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

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

default--是否是默认策略

2)新建策略

> create retention policy "2_hours" on "test" duration 2h replication 1 default

> show retention policies on test

通过上面的语句可以添加策略,本例在 test 库添加了一个2小时的策略,名字叫做 2_hours, duration为2小时,副本为1,设置为默认策略。 因为名为default的策略不再是默认策略,因此,在查询使用default策略的表时要显式的加上策略名 “default”。

> select * from "default".disk_free

> select * from disk_free

使用默认保存策略,则搜索内容为空。(两小时内未输入数据)

3)修改策略

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

> alter retention policy "2_hours" on "test" duration 4h default

> show retention policies on "test"

可以看到,修改后的策略发生了变化。

4)删除策略

InfluxDB中策略的删除操作如下所示:

> drop retention POLICY "2_hours" on "test"

> show retention policies on "test"

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

策略这个关键词“POLICY”在使用是应该大写,小写应该会出粗。 当一个表使用的策略不是默认策略时,在进行操作时一定要显式的指定策略名称,否则会出现错误。

所以,在删除policy之前要先将其变为非默认policy

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近这段时间在使用influxdb,抽空翻译了一下配置文件。有不足的地方请指正。因为简书默认markdown编辑器...
    wangrui927阅读 9,729评论 0 4
  • 什么是InfluxDB? InfluxDB介绍 InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数...
    BilyLuo阅读 8,547评论 0 18
  • 前言 influxdb是目前比较流行的时间序列数据库。 何谓时间序列数据库?什么是时间序列数据库,最简单的定义就是...
    miaoLoveCode阅读 84,256评论 7 50
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,719评论 19 139
  • 滨湖的天真蓝 是天空的蓝 似海水的蔚蓝 我说不好 因为我没有见过海 也好久没有抬头看天了 忘记天该有的样子 但我只...
    得一生二阅读 1,261评论 0 1