retention policy这个东西相比较于传统的关系型数据库(比如mysql)而言,是一个比较新的东西,在将表之前,有必要来看一下保存策略有什么用,以及可以怎么用

I. 基本操作

1. 创建retention policy

retention policy依托于database存在,也就是说保存策略创建时,需要指定具体的数据库,语法如下

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

创建语句中,有几个地方需要额外注意一下

  • retention_policy_name: 策略名(自定义的)
  • database_name: 一个必须存在的数据库名
  • duration: 定义的数据保存时间,最低为1h,如果设置为0,表示数据持久不失效(默认的策略就是这样的)
  • REPLICATION: 定义每个point保存的副本数,默认为1
  • default: 表示将这个创建的保存策略设置为默认的

下面是一个实际的case,创建一个数据保存一年的策略

create retention policy "1Y" on test duration 366d replication 1

2. 策略查看

上面演示的case中,已经有如何查看一个数据库的保存策略了

show retention policies on <database name>

3. 修改保存策略

修改一个已经存在的保存策略,语法如下

ALTER RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> SHARD DURATION <duration> DEFAULT

上面的定义和前面创建基本一致,下面给出一个case

4. 删除保存策略

DROP RETENTION POLICY <retention_policy_name> ON <database_name>

当如下面的case,删除了默认的策略之后,会发现居然没有了默认的保存策略了,这个时候可能需要注意下,手动指定一个

II. 进阶说明

前面虽然介绍了保存策略的增删改查,但是这个东西究竟有什么用,又可以怎么用呢?

看一下前面查看保存策略的图

从前面的查看,可以看到保存策略主要有三个关键信息,数据保存时间,数据分片时间,副本数

1. 保存时间

duration 这一列,表示的就是这个策略定义的数据保存时间

因为我们知道每条记录都有一个time表明这条记录的时间戳,如果当前时间与这条记录的time之间差值,大于duration,那么这条数据就会被删除掉

注意

默认的保存策略autogen中的duraiton=0,这里表示这条数据不会被删除

2. 分片时间

简单理解为每个分片的时间跨度,比如上面的1_d这个策略中,数据保存最近24小时的,每个小时一个分组

我们在创建数据策略的时候,大多时候都没有指定这个值,系统给出的方案如下

Retention Policy’s DURATION Shard Group Duration
< 2 days 1 hour
>= 2 days and <= 6 months 1 day
> 6 months 7 days

3. 副本

副本这个指定了数据有多少个独立的备份存在

4. 场景说明

了解上面的几个参数之后,可以预见保存策略有个好的地方在于删除过期数据,比如使用influx来存日志,我只希望查看最近一个月的数据,这个时候指定一个duration时间为30天的保存策略,然后添加数据时,指定这个保存策略,就不需要自己来关心日志删除的问题了

II. 其他

0. 系列博文

参考博文

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

Influx Sql系列教程二:retention policy 保存策略的更多相关文章

  1. Influx Sql系列教程九:query数据查询基本篇二

    前面一篇介绍了influxdb中基本的查询操作,在结尾处提到了如果我们希望对查询的结果进行分组,排序,分页时,应该怎么操作,接下来我们看一下上面几个场景的支持 在开始本文之前,建议先阅读上篇博文: 1 ...

  2. Influx Sql系列教程八:query数据查询基本篇

    前面几篇介绍了InfluxDB的添加,删除修改数据,接下来进入查询篇,掌握一定的SQL知识对于理解本篇博文有更好的帮助,下面在介绍查询的基础操作的同时,也会给出InfluxSql与SQL之间的一些差别 ...

  3. Influx Sql系列教程七:delete 删除数据

    前面介绍了使用insert实现新增和修改记录的使用姿势,接下来我们看一下另外一个简单的使用方式,如何删除数据 1. delete 语句 delete的官方语法如下 DELETE FROM <me ...

  4. Influx Sql系列教程六:insert 修改数据

    在influxdb中没有专门的修改数据的update语句,对于influxdb而言,如果想修改数据,还是得使用我们前面的说到的insert来实现,那么怎么判断一条insert语句是插入还是修改呢? 1 ...

  5. Influx Sql系列教程五:insert 添加数据

    接下来开始进入influxdb的curd篇,首先我们看一下如何添加数据,也就是insert的使用姿势 在进入本篇之前,对于不了解什么是retention policy, tag, field的同学,有 ...

  6. Influx Sql系列教程四:series/point/tag/field

    influxdb中的一条记录point,主要可以分为三类,必须存在的time(时间),string类型的tag,以及其他成员field:而series则是一个measurement中保存策略和tag集 ...

  7. Influx Sql系列教程三:measurement 表

    在influxdb中measurement相当于mysql中的表,可以理解为一条一条记录都是存与measurent中的,一个数据库中可以有多个measurement,一个measurement中可以存 ...

  8. Influx Sql系列教程零:安装及influx-cli使用姿势介绍

    influxdb 时序数据库,因为实际业务中使用到了,然而并没有发现有特别好的文章,完整的介绍influx sql的使用姿势,因此记录下实际开发中学习的体会,主要参考来自于官方文档 Influx Qu ...

  9. CRL快速开发框架系列教程二(基于Lambda表达式查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

随机推荐

  1. Spark 缓存机制

    Spark中的缓存机制:避免spark每次都重算RDD以及它的所有依赖,cache().persist(). checkpoint(). 1.cache():会被重复使用,但是不能太大的RDD,将其c ...

  2. php Web 项目的文件/文件夹上传下载

    PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...

  3. .NET Core入门程序及命令行练习

    用命令行一步一步新建项目.添加Package.Restore.Build.Run 执行的实现方式,更让容易让我们了解.NET Core的运行机制. 准备工作 安装.NET Core 运行环境,下载地址 ...

  4. circus && web comsole docker-compose 独立部署

    问题的根本原因是web console 的bug(实际上还是python 对于依赖版本出来不明确) circus 进程docker 镜像 dockerfile FROM python:slim-str ...

  5. 通过HttpServletRequest重写+filter 添加header

    问题说明 需要做的事情比较简单,就是通过filter 重写httpservletrequest ,同时给予request 添加header 主要是通过HttpServletRequestWrapper ...

  6. [RN] React Native 下实现底部标签(不支持滑动切换)

    底部标签是现在App的基本菜单实现 下面分别用 createBottomTabNavigator 和 createMaterialBottomTabNavigator 两种方法分别实现底部菜单 但此两 ...

  7. JavaScript高级程序编程(四)

    2017.7.12  北京 数伏第一天 本日总结: 1.线上服务器时常显示.woff文件丢失解决办法 (IIS服务器) 添加MIME类型 添加三条: 文件扩展名      MIME类型 .svg    ...

  8. linux命令之------快捷键说明

    linux快捷键说明 (1)命令或目录补齐:Tab (2)遍历历史记录:history 上移:ctrl+p,下移:ctrl+n (3)光标移动 左移:ctrl+b:右移:ctrl+f:移到首部:ctr ...

  9. Git基本介绍(三大分区及核心内部构造)

    1. Git三大工作区(工作区.暂存区和版本库) 工作区(WORKING DIRECTORY): 直接编辑文件的地方,肉眼可见直接操作: 暂存区(STAGIN AREA):数据(快照)暂时存放的地方: ...

  10. (一)Cisco DHCP Snooping原理(转载)

    采用DHCP服务的常见问题架设DHCP服务器可以为客户端自动分配IP地址.掩码.默认网关.DNS服务器等网络参数,简化了网络配置,提高了管理效率.但在DHCP服务的管理上存在一些问题,常见的有: ●D ...