Influxdb时序数据库 数据保存策略

一. 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
    

    通过上面的语句可以添加策略, 本例在telegraf库添加了一个2小时的策略, 名字叫做2_hours,duration为2小时, 副本为1, 设置为默认策略.

    因为名为default的策略不再是默认策略, 因此, 在查询使用default策略的表时要显示的加上策略名"defalut"

    select * from "default".cpu limit 2
    
  3. 修改策略

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

    ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
    
  4. 删除策略

    drop retention POLICY "2_HOURS" ON "telegraf"
    

四. 其他说明

策略这个关键词"POLICY"在使用时应该大写,小写应该会出错.

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

猜你喜欢

转载自blog.csdn.net/u013276888/article/details/80553116