• Influx Sql系列教程二:retention policy 保存策略


    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
    

    image

    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

    image

    4. 删除保存策略

    DROP RETENTION POLICY <retention_policy_name> ON <database_name>
    

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

    image

    II. 进阶说明

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

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

    image

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

    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

    image

  • 相关阅读:
    Java通过 Scanner 类来获取用户的输入
    Java中的Calendar 类和SimpleDateFormat 类
    JAVA中字符串常见操作
    JAVA中数组Arrays类的常见用法
    Java中的compareTo()方法,compareToIgnoreCase()方法
    python常见字符串操作
    linux常见配置文件路径
    python的匿名函数
    python列表解析式,字典解析式,集合解析式和生成器
    Django admin
  • 原文地址:https://www.cnblogs.com/yihuihui/p/11386676.html
Copyright © 2020-2023  润新知