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

InfluxDB技术交流群:580487672(点击加入)

一、InfluxDB 数据保留策略 说明

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

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

二、InfluxDB 数据保留策略 目的

InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。

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

三、InfluxDB 数据保留策略 操作

1)查询策略

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

> 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--是否是默认策略

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的策略已经被删除了。

四、其他说明

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

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

好了,有关 InfluxDB数据保留策略Retention Policies) 的相关内容就先为大家介绍到这里,有问题欢迎大家留言讨论。

更多InfluxDB详细教程请看:InfluxDB系列学习教程目录

InfluxDB技术交流群:580487672(点击加入)

InfluxDB学习之InfluxDB数据保留策略(Retention Policies)的更多相关文章

  1. Influxdb修改数据保留策略

    retention policy: 存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据. ...

  2. InfluxDB学习之InfluxDB连续查询(Continuous Queries)

    在上一篇:InfluxDB学习之InfluxDB数据保留策略(Retention Policies) 中,我们介绍了 InfluxDB的数据保留策略,数据超过保存策略里指定的时间之后,就会被删除. 但 ...

  3. InfluxDB学习之InfluxDB的安装和简介

    最近用到了 InfluxDB,在此记录下学习过程,同时也希望能够帮助到其他学习的同学. 本文主要介绍InfluxDB的功能特点以及influxDB的安装过程.更多InfluxDB详细教程请看:Infl ...

  4. InfluxDB学习之InfluxDB的基本操作| Linux大学

    来源地址:https://www.linuxdaxue.com/influxdb-study-series-manual.html 本文属于<InfluxDB系列教程>文章系列,该系列共包 ...

  5. InfluxDB学习之InfluxDB的HTTP API查询操作

    在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...

  6. InfluxDB学习之InfluxDB的HTTP API写入操作

    HTTP API也有两种操作:写入和查询,本文就先给大家介绍一下 InfluxDB的HTTP API的写入操作方式.     在InfluxDB学习的上一篇文章:InfluxDB学习之InfluxDB ...

  7. Rman备份的保留策略(retention policy)

    什么是备份的保留策略(retention policy) 保留策略就是指某份备份是否要保留以及保留多久.可以使用configure retention policy命令来创建一个一致的.自动的备份保留 ...

  8. InfluxDB学习之InfluxDB的基本操作

    InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手.本文就为大家介绍一下InfluxDB的基本操作.     InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手. 本文 ...

  9. InfluxDB学习之InfluxDB的基本概念

    InfluxDB与传统数据库在概念上有许多的不同,本文就给大家介绍下InfluxDB中的一些基本概念,更多InfluxDB详细教程请看:InfluxDB系列学习教程目录 InfluxDB技术交流群:5 ...

随机推荐

  1. 让你的网站免费支持 HTTPS 及 Nginx 平滑升级

    为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层,在传输层对网络连接进行加密.简单点说在 ...

  2. 使用Executor管理线程

    上一篇博客(第一个并发程序:定义任务和驱动任务)中,我们使用Thread对象启动线程,而java.util.concurrent包的Executor执行器提供了更好的管理Thread对象的方法,从而简 ...

  3. WinForm 代码实现以管理员身份运行

    [STAThread] static void Main(string[] Args) { //获得当前登录的Windows用户标示 System.Security.Principal.Windows ...

  4. urlMappings与URL映射

    此配置节的作用就是往Web程序中添加URL的映射,从而达到用户访问映射后的URL(如/Page/AAA)也能访问到源URL(如/Page/PageAAA.aspx)的效果.这也是URL映射本来的作用. ...

  5. jQuery模拟打字逐字输出代码

    效果查看:http://hovertree.com/texiao/jquery/70/ jQuery键盘打出逐字逐句显示特效,逐字逐句显示文字 还可以设置每个文字随机颜色: http://hovert ...

  6. div的显示和隐藏以及点击图标的更改

  7. nginx root和alias指令的区别

    # alias location /js/{ alias /static/;}#上述配置,访问/js/目录的时候,nginx自动会去找/static/下面的文件 # rootlocation /js/ ...

  8. 自定义JsonResult解决 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用

    接上篇的问题,给出我自己的解决方案. 同时推荐要学习MVC的可以参考下<ASP.NET MVC4 框架揭秘>. 首先,要自定义JSonResult,就要明白MVC中 JsonResult的 ...

  9. CSS笔记之伪类与伪元素

    伪类分为两种:UI伪类 与 结构化伪类 UI伪类:a:link{}    a:hover{}   a:active{}  a:visited{} input[type='text']:focus{} ...

  10. hexo博客进阶-相册和独立域名

    之前我已经写了一篇文章详细的讲述了如何使用hexo搭建github博客.如果还没有看的可以去看看,hexo搭建博客 其实,根据这篇文章的过程我们就能够搭建一个专属于自己,并且非常美观的博客了.但是如果 ...