InfluxDB数据库retention、shard、shardgroup

一、retention policy(PR)
数据保留策略提供了一个简单高效的方法来清除influxdb数据库中过期数据,一旦数据超过过期时间,数据会自动从influxdb中清除,而过期数据清除的时间单位以"shard group的duration"为单位。

influxdb每个新建的数据库都会有一个对应的数据保留策略(retention policy),该策略用来管理数据库中数据过期时间,如果没有指定策略,数据库会有默认的策略autogen,如下:

> SHOW RETENTION POLICIES ON peers_status
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen       0s 168h0m0s           1        true

新建一个数据库,也会自动创建一个默认的策略"autogen",duration表示该数据的过期时间,0s表示为永久不过期。

创建retention policy的语句如下:

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

参数详解:

<retention_policy_name>:保留策略名称

<database_name>:为哪个数据库创建保留策略

<duration>:该保留策略对应的数据过期时间

<REPLICATION>:复制因子,开源的InfluxDB单机环境永远为1

<SHARD DURATION>:分片组的默认时长

DEFAULT:是否为默认策略,如果是,就代替数据库的默认策略"autogen"

例如,我们创建一个过期时间为24h的保留策略:

> create retention policy store_24h on yoon duration 24h replication 1

此时yoon数据库除了一个默认的保留策略"autogen"外,还有一个我们新建的保留策略,这里需要注意的是,一个数据库的保留策略可以有多个,但是只能有一个是"默认"的。

> show retention policies on yoon
name      duration shardGroupDuration replicaN default
----      -------- ------------------ -------- -------
autogen   0s       168h0m0s           1        true
store_24h 24h0m0s  1h0m0s             1        false

修改一个数据库的默认保留策略,语法格式为:

> ALTER RETENTION POLICY "store_24h" ON "yoon" DURATION 3w SHARD DURATION 2h DEFAULT

二、shard

shard 是influxdb存储引擎的实现,负责数据的编码存储、读写服务等。将infuxdb中时间序列化的数据按照时间的先后顺序存入到shard中,每个shard都负责influxdb中一部分的数据存储工作,并以
tsm文件的表现形式存储在物理磁盘上,每个存放了数据的shard都属于一个shard group。

三、shard group

shard group 可以理解为存放shard的容器,所有的shard逻辑上都属于shard group,每个shard group 中的shard都有一个对应的时间跨度和过期时间,每个shard group都有一个默认的时间跨度
,叫做 shard group duration。

四、retention、shard、shardgroup 三者之间的关系

在一个retention policy(PR)中,如果指定保留时间为24小时,那么每个shard的duration为1小时,即每个shard的时间跨度为1个小时,那么总共有24个时间跨度为1小时的shard,在触发数据的PR
后,删除最早的时间跨度的shard。

那么此时shard group 中对应的就会存在24个shard,每次到达过期时间,就会删除最早的shard,并生成一个新的shard。

posted @ 2022-02-24 16:16  __Yoon  阅读(698)  评论(0编辑  收藏  举报