最常见问题解答:针对过度热切的 InfluxDB 新用户的指南

导航到

你是否随意开始了一个 InfluxDB 项目?你创建了一个数据库,但仍然不理解分片组持续时间与保留策略之间的关系?你是否开始意识到,在尝试操作技术之前,你几乎还没有消化完文档?没有?好吧,也许只是我难以控制自己不去按键。

我,兴奋地开始处理一些时序数据

作为新的 InfluxDB 用户,我想避免其他人遇到的常见障碍。本文包含最常见的问题和一些答案,引导我们走上正确的道路。请警告:这些问题中的许多都是开放式的。因此,预计会找到一系列考虑因素、资源以及可能激发(比如我)去仔细阅读文档的问题。

在我们开始之前,请记住,InfluxData 的好人已经试图帮助我们了。您可以在这里找到所有常见问题。我还强烈推荐查看这些 TL;DR InfluxDB 技术提示

1) 为什么我的保留策略没有删除我的数据?

这个问题表明,缺乏经验的用户可能不了解以下两点之一:1)保留策略究竟是什么以及2)在哪里可以找到默认设置。

如果您发现自己属于第一组,这里有一个可能帮助您回忆的说明。如果您仍然感到困惑,您可能需要复习分片和保留策略

您已经了解了分片和RP。您甚至遵循了分片组建议和最佳实践。您的分片组

  • 持续时间是您最长典型查询时间范围的二倍——这是有道理的。您今天只想查询4天的流量数据,但下周您发现您非常受欢迎。您想知道为什么全世界终于开始注意到您。您很感激您通过将分片组持续时间加倍给自己留出了查询余量。
  • 每个分片组至少有100,000个数据点
  • 每个系列至少有1,000个数据点

尽管您了解这些,但您的数据仍然在徘徊!发生了什么?嗯,也许您没有正确配置数据库。现有的分片组和旧的RP可能会给您带来麻烦。当您更改RP时,它只适用于未来的分片组。在紧张之前,尝试允许旧的RP到期。另外,您不能删除部分分片。如果您更改了分片组持续时间,您可能必须等待旧分片到期才能看到更改生效。在调查这些问题时,请注意InfluxDB 默认设置

2) 为什么InfluxDB使用这么多内存?

让我们看看…你是…

A. 在压缩期间查看内存使用情况?

是。 稍后回来,使用量可能会希望下降。或者,如果您在本地机器上运行InfluxDB,您知道您的磁盘可以产生多少IOPS吗?您的机器可能无法处理您。

B. 执行一个糟糕的查询?

是。 “SELECT * FROM mydb.” 不是探索您模式的好方法,尤其是在处理大量时间序列数据时。尝试以下查询之一。

从不。 您很棒,您甚至运行连续查询降采样您的数据。调整Influx环境很棘手,尤其是在没有企业级支持的情况下。然而,有一些很好的工具可以让您监控和调整Influx环境。你可能从未听说过它们。它们被称为InfluxDB和Telegraf。这里有一个您可以遵循的教程

我不这么认为。 您是对的——您的查询可能不是问题。相反,看看您的模式。您可能有很高的基数(特别是如果您是企业用户)。

InfluxDB可以在正常数据集中处理数十万个唯一的标签。如果您使用的是OSS版本并且具有高基数(数百万个唯一的测量标签集字段键 = 高基数),则您的模式可能设计得不好。

例如,假设您想创建一个包含金融时间序列数据的数据库。良好的模式设计应包括

  • 一个包含标签和字段的测量("financial_TS_data")
  • 其中标签应包括仪器名称("APPL")
  • 并且字段("high"、"open"、"close"和"volume" )包含数据本身。

您遵循了模式设计建议了吗?

3) 如何获取可读的日期时间戳返回给我?

您的精度和纪元配置好吗?您确定InfluxDB返回的时间戳是按照RFC3339格式返回的吗?或者,在将时间戳写入InfluxDB之前,请将其转换为您的首选语言。

4) 如何备份/恢复?

我警告过您这个问题会出现,所以请只阅读这篇文档

5) InfluxDB如何处理写/查询负载?

  • 高性能*
  • 写入优化(约750,000次/秒)
  • 主要是AP,但也包括CP(CAP 定理)。两者都不严格。您困惑吗?请查看Jepsen的出色评论这里
  • 以至于CERN使用了开源版本来帮助他们寻找狗粒子?我不知道,听起来是对的。

在阅读本文后,我希望您对执行时间序列项目感到更有准备。通过在推特上@InfluxDB联系我们,告诉我们进展情况。祝您好运!