influxdb基础(四)——influxdb保留策略(retention policy)自动清理过期数据(1)

可 on 指定查看哪个数据库的保留策略

show retention policies on databaseName

show rp

一个数据库新建都会分配一个默认的保留策略:

  • name,保留策略的名称。

  • duration,数据保留的持续时长,最小为1hretention policy duration must be at least 1h0m0s)。如果设置为0,数据永久保存(官方默认RP),否则过期清理。

  • shardGroupDuration,数据存储在shardGroup的时间跨度。shardGroupinfluxdb的一个逻辑存储结构,其下包含多个shard

  • replicaN,全称replication,复制因子,它决定在集群中存储多少个数据副本。inflxudb集群中跨N个数据节点复制数据,其中N就是复制因子。复制因子对单个节点实例不起作用,所以单机版直接设置为1即可。

  • default,true为默认保留策略。

shardGroupDuration是根据retention policyduration计算得来,不过也可以在创建retention policy指定。如下是retention policy's durationshardGroupDuration的计算关系:

| retention policy’s duration | shardGroupDuration |

| — | — |

| < 2 days | 1 h |

| >= 2 days and <= 6 months | 1 day |

| > 6 months | 7 days |

retention policy管理

=====================================================================================

创建retention policy


基本语法:

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

  • retention_policy_name: 策略名。

  • database_name: 数据库名(db必须存在)。

  • duration: 数据保留时长。

  • REPLICATION: 复制因子,单机版设置为1即可。

  • SHARD DURATION:设置shardGroupDuration时长,表示每个shard group时间跨度时长。可不填,默认根据RP的duration计算。

  • default: true为设置该RP为默认RP。

示例:

为monitor库创建一个数据保留时长30天的rp,同时设置shard duration为1d,副本为1,并设置为默认rp

create retention policy rp_30_days on monitor duration 30d replication 1 shard duration 1d default

为monitor库创建一个数据保留时长一个星期的rp,副本为1

create retention policy rp_one_week on monitor duration 1w replication 1

create rp

修改retention policy


基本语法:

ALTER RETENTION POLICY <retention_policy_name> ON <database_name> DURATION REPLICATION [SHARD DURATION ] [DEFAULT]

ALTER可修改的部分有duration、replication、shard duration、default,修改时无需每个属性都写上,可修改哪个写哪个。

示例:

修改rp_1_week 保留数据时长为15days

alter retention policy rp_1_week on monitor duration 15d replication 1 default

设置rp_30_days为默认rp

alter retention policy rp_30_days on monitor default

设置某个RP为默认RP时,旧默认RP会自动改为非默认RP

retention policy不能修改RP名称,如果自主命名的RP名称和修改后的duration不匹配,还不如把旧RP删除,新建一个RP。

删除retention policy


基本语法:

DROP RETENTION POLICY <retention_policy_name> ON <database_name>

示例:

删除名为rp_1_week的rp

drop retention policy rp_1_week on monitor

注:durationshard duration取值,1h(1小时)、1d(1天)、1w(1周)。

写数据指定retention policy

========================================================================================

当一个数据库有多个retention policy,写数据时,如不想默认RP,可指定其他RP。如,monitor库有两个RP,一个是默认RP保留数据30天,一个保留数据3天,现写入数据指定RP为3天那个。

在没有use 哪个db的时候需要指定db,选择monitor数据库,指定rp为rp_3_days写入数据到service_qps

insert into monitor.rp_3_days service_qps,svrName=TaskSvr,hostName=dev4 qps=12.9

切换选择monitor

use monitor

并指定rp为rp_3_days写入数据到service_qps

insert into rp_3_days service_qps,svrName=TaskSvr,hostName=dev4 qps=12.9

写数据指定数据库或者RP时,需要使用insert into。默认db和默认RP写数据使用insert

查数据指定retention policy

========================================================================================

既然写数据时指定了非默认RP,查数据时也必须指定RP。

默认指定默认RP

select * from service_qps

指定RP查询

select * from rp_3_days.service_qps

指定RP查询需要注意:因为select语法是select * from RP.MEASUREMENT,所以千万不要使用如下语句写数据:

完全错误的写法

insert rp_3_days.service_qps,svrName=TaskSvr,hostName=dev4 qps=12.9

使用insert写数据时,以为指定了RP,实则是写数据到名为rp_3_days.service_qpsmeasurement中,当想查measurement名为rp_3_days.service_qps数据时会和RP为rp_3_daysmeasurementservice_qps产生语法冲突。

series=measurement +tags set+retention policy

================================================================================================================

seriesmeasurement +tags set + retention policy 组成的数据集合。同个 database中,retention policymeasurementtags set完全相同的数据同属于一个 series,同个series的数据在物理上会按照时间顺序排列存储在一起。serieskeymeasurement + 所有 tags组成的字符串。

show series

show series无法区分查看到不同RP,相同measurementtag setseries。经测试 show series from 后无法区分RP,即使加了RP也没用(RP.MEASUREMENT)。

所以并没有办法显而易见知道一个measurement到底指定了哪些retention policy

总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值