influxdb知识总结(2)--- influxdb 中的重要概念

本文深入解析InfluxDB的存储机制,包括RP(RetentionPolicy)、shardgroup、shard和block的概念及其作用。RP用于设定数据过期时间、副本数量及shardgroupduration;shardgroup按时间分区,shard通过hash(series)存储相同series数据,block负责具体存储,采用列式存储提升效率。
部署运行你感兴趣的模型镜像
RP(Retention Policy)

RP是数据库级别,核心作用:
1 指定数据的过期时间
2 指定数据副本数量
3 指定shardgroup duration

shardgroup

每个shardgroup中包含多个shard,每个shardgroup只存储指定时间段的数据。

shardgroup起到的作用是将时序数据按时间分区,便于根据时间纬度选择目标数据分区。

shard

shard是influxdb中存储引擎的实现,具体称之为TSM,TSM的实现类似于LSM。shardgroup根据hash(series),将数据映射到不同的shard,所以相同series的数据肯定会处在同一个shard中。
如下图所示,influxdb中的数据划分形式:先按RP划分,不同存储策略的数据划分到不同的RP下面,在RP下面按照时间range分区形成不同的shardgroup。同一个shardgroup下面的数据按照series进行hash分区。
在这里插入图片描述
influxdb的策略是典型的两层sharding, 上层采用range sharding,下层采用hash sharding。对于时序数据而言,基于时间的range sharding是最合理的,但是这样会存在写入存在热点的问题(最新的数据只会写入最新的shard中),因此在下层采用series进行hash。

block

shard中负责具体存储的结构称为block。每个shard中包含若干个data block(数据文件) 和 index block(索引文件)。存储结构如下所示:
在这里插入图片描述
时序数据在内存中是一个巨大的map:<key, List<TimeStamp/value>,其中key= series + fieldKey , 同一个block内只会存储一种key对应的时序数据。datablock内部采用列式存储,从而提高存储效率。

TSM引擎工作原理:数据读取

读取原理如下所示:
1 首先根据key找到对应的indexblock。
2 利用indexblock里面的索引信息查找到对应datablock在shard(即TSM文件)中的位置
3 对查到的信息加载到内存中进行进一步的过滤。
在这里插入图片描述

参考:初识influxdb

您可能感兴趣的与本文相关的镜像

FLUX.1-dev

FLUX.1-dev

图片生成
FLUX

FLUX.1-dev 是一个由 Black Forest Labs 创立的开源 AI 图像生成模型版本,它以其高质量和类似照片的真实感而闻名,并且比其他模型更有效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值