问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

10分钟快速掌握InfluxDB核心概念

创作时间:
作者:
@小白创作中心

10分钟快速掌握InfluxDB核心概念

引用
CSDN
1.
https://blog.csdn.net/liwenxiang629/article/details/136350692

InfluxDB作为时序数据库的优秀产品,其核心概念对于初学者来说可能较为复杂。本文将详细解析InfluxDB中的关键概念,帮助读者快速理解并上手使用。

核心概念详解

database

对应传统数据库中的数据库,在 InfluxDB 中可以创建多个数据库,不同数据库中的数据文件是隔离存放的,存放在磁盘上的不同目录。

measurement

对应传统数据库中的表。

retention policy

存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据。插入和查询数据时如果不指定存储策略,则使用默认存储策略,且默认存储策略可以修改。InfluxDB 会定期清除过期的数据。

tag

标签在InfluxDB中是一个非常重要的部分,表名+tag一起作为数据库的索引,是“key-value”的形式。

field

例如上面数据中的 value 就是 fieldName,InfluxDB 中支持一条数据中插入多个 fieldName,这其实是一个语法上的优化,在实际的底层存储中,是当作多条数据来存储。

备注:一个measurement里可以没有tag,但是不能没有feld,因为tag只是索引,并不是用于存储测量值的,而fields就是存储测量值的。

关于tag和filed的使用,我们可以遵循以下原则:

  • 把经常查询的字段作为tag
  • 如果要使用 GROUP BY(),要放在tag中
  • 如果要使用InfluxQL函数,放到field中
  • 如果需要存储的值不是字符串,则需要放到field中,因为tag value只能是字符串

timestamp

每一条数据都需要指定一个时间戳,在 TSM 存储引擎中会特殊对待,以为了优化后续的查询操作。

Point

相当于传统数据库里的一行数据,point=timestamp+field+tag

下图很好的展示了,measurement、fielsds、tags 和point的关系

Series

Series是InfluxDB中最重要的概念,时序数据的时间线就是:一个数据源采集的一个指标随着时间的流逝而源源不断地吐出数据这样形成的一条数据线称之为时间线。Series 相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag set完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。Series由Measurement和Tags组合而成,我们可以简单的理解:

  • Measurement不同,就是不同的时间线
  • Measurement相同,Tags不同也是不同的时间线

shard

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

shard group

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

shard group
使得shard查询性能和批量清理数据变得简单高效。

retention policy 、shard group和shard的关系

在一个retention policy中,如果指定的保留时间为24小时,那么在shard group中定义每个shard的duration为1小时,即每个shard的时间跨度为1小时,那么总共会有24个跨度为1小时的shard,在触发数据的RP后,删除最早时间跨度的shard。下图很好的解释了三者的关系。

bucket

是InfluxDB 2.0中存储时间序列数据的指定位置。在InfluxDB 1.8+中,每个database和retention-policy的组合都表示一个bucket。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号