最常见问题解答:针对过度热切的 InfluxDB 新用户的指南
作者:Anais Dotis-Georgiou / 产品,用例,开发者
2018年6月28日
导航到
你是否随意开始了一个 InfluxDB 项目?你创建了一个数据库,但仍然不理解分片组持续时间与保留策略之间的关系?你是否开始意识到,在尝试操作技术之前,你几乎还没有消化完文档?没有?好吧,也许只是我难以控制自己不去按键。
作为新的 InfluxDB 用户,我想避免其他人遇到的常见障碍。本文包含最常见的问题和一些答案,引导我们走上正确的道路。请警告:这些问题中的许多都是开放式的。因此,预计会找到一系列考虑因素、资源以及可能激发(比如我)去仔细阅读文档的问题。
在我们开始之前,请记住,InfluxData 的好人已经试图帮助我们了。您可以在这里找到所有常见问题。我还强烈推荐查看这些 TL;DR InfluxDB 技术提示
- InfluxQL 查询示例
- 查询与写入布尔值 & 检查字段类型
- 相同的字段键 & 标签键、Chronograf 中的现有 Kapacitor TICKscripts 以及更多
- 在 SELECT 子句、字段键和选择函数中的 InfluxQL 查询解决方案
- 写入历史数据、设置 InfluxDB 中的时间戳精度以及查找您的日志文件
- 不想要的系列、保留策略、绑定参数
- 分片组持续时间推荐
- 使用 InfluxDB 的 CLI 将时间戳转换为可读格式
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如何处理写/查询负载?
- 以至于CERN使用了开源版本来帮助他们寻找狗粒子?我不知道,听起来是对的。
在阅读本文后,我希望您对执行时间序列项目感到更有准备。通过在推特上@InfluxDB联系我们,告诉我们进展情况。祝您好运!