InfluxDB 2.0中存储桶,度量和保留策略之间的逻辑联系是什么? 以我的理解

问题描述

我目前正在研究InfluxDB 2.0的文档;但是,我还不完全了解存储分区,度量和保留策略之间的逻辑。

文档说,数据库和保留策略已替换为存储桶。每个定义都包含一个存储区:

“时间序列数据存储在InfluxDB 2.0中的命名位置”

以我的理解

存储桶包含分片组 =>分片组将特定时间间隔的数据存储在特定文件夹中;例如:分片组始终可以将四个小时间隔的数据保存在一个文件夹中。

分片组包含分片 =>分片是时间序列表的单个行/点。

此外,Influx在文档中写道,一个存储桶有一项保留策略。

这意味着“存储桶”仅存储一个时间序列,而不存储多个时间序列;否则,一个存储桶可能有几个保留策略。

如果我的理解是正确的,这是否意味着只有当所有度量标准都具有相同的保留策略时,才可以将其包含在同一存储桶中?因为如果在同一存储桶中有两个具有不同保留策略的度量,则一个保留策略可能会从另一个度量中删除数据。如果我在这里感到困惑,请纠正我。

但是,如果我对的话,这会如何影响硬件要求?

Influx说系列的数目会影响硬件要求。

这实际上意味着,每一个存储桶/保留策略都会增加系列数量,并增加硬件要求?

例如,将6万个系列存储在一个存储桶中会有所不同 VS 在存储区A中存储20,000个系列,在存储区B中存储另外20,000个系列,在存储区C中存储最后的20,000个系列。

期待您的反馈!

解决方法

Alvaro-

bucket的最重要特征是为其中的所有数据定义retention policy。一个存储桶只有一个保留策略。如果您的数据需要两个不同的时间范围,则将需要两个存储桶。通常,这会由于下采样而降低。例如,我将高保真度1 / s数据保留一周,然后将较低分辨率的1 / min版数据保留一个月。我在这里用两个水桶。

对于InfluxDB,“时间序列”由其“序列键”定义,即测量,标签集和字段键集。因此,存储桶可以包含许多不同的时间序列。您可以将多个测量结果放入一个存储桶中。看来您熟悉InfluxDB 1.x,所以我想您已经了解测量,标签和字段。

“系列基数”是您总共拥有的时间序列数。不同存储桶中的相同系列密钥被视为单独的系列。因此,对于一个人为的示例,如果您将数据重复写入两个不同的存储桶中,但在其他方面相同,则您的基数增加了一倍。在这种情况下,对硬件的要求会更高,这很有道理-您将管理的数据增加了一倍。

此博客文章对这些概念进行了很好的概述。 Data Layout and Schema Design Best Practices for InfluxDB如果您有后续问题,请询问他们。如果您想在那里询问专门的社区,那么还会有一个InfluxDB社区闲聊。