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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值