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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2020-02-24 MySQL 常用SQL 汇总