InfluxDB 2.0 中存储桶、测量和保留策略之间的逻辑联系是什么?

问题描述 投票:0回答:1

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

文档称数据库和保留策略已被存储桶取代。桶是根据定义:

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

据我了解

一个bucket包含shard groups => Shard groups将一定区间的数据存储在特定的文件夹中;例如:一个分片组总是可以在一个文件夹中保存四个小时间隔的数据。

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

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

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

如果我的理解是正确的,这是否意味着只有当所有测量都具有相同的保留策略时,您才能将测量包含在同一个存储桶中?因为如果同一存储桶中有两个具有不同保留策略的测量,则一个保留策略可能会删除另一测量中的数据。如果我在这里混淆了事情,请纠正我。

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

Influx 表示系列数量影响硬件要求。

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

例如,在一个桶中存储 60,000 个系列是否有区别 VS 将 20,000 个系列存储在 A 桶中,另外 20,000 个系列存储在 B 桶中,最后 20,000 个系列存储在 C 桶中。

期待您的反馈!

influxdb influxdb-2
1个回答
2
投票

阿尔瓦罗-

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

对于 InfluxDB,“时间序列”由其“序列键”定义,即测量、标签集和字段键集。所以一个桶可以包含很多不同的时间序列。您可以将许多测量值放入一个存储桶中。您似乎熟悉 InfluxDB 1.x,所以我认为您已经了解测量、标签和字段。

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

这篇博文对这些概念进行了很好的概述。 InfluxDB 的数据布局和架构设计最佳实践 如果您有后续问题,请询问他们。如果您想询问那里的专门社区,还有一个 InfluxDB 社区闲聊。

© www.soinside.com 2019 - 2024. All rights reserved.