概要:InfluxDB 技术提示 - 分片组持续时间建议

导航至

在本周的帖子中,我们回顾了上周您可能错过的来自 GitHub、IRC 和 InfluxDB Google Group 中最有趣的分片组持续时间建议以及与 TICK 堆栈相关的问题、解决方法、操作指南和问答。

具有延迟的连续查询

问: 我有一个系统每分钟向 InfluxDB 发送数据。由于其设置方式,数据实际上最终进入数据库之前可能会有一分钟的延迟。我正在创建一个连续查询,以 30 秒的间隔计算我的一个字段的总和。我担心由于延迟,CQ 将无法捕获所有数据。

我尝试在 CQ 中使用偏移间隔,但似乎没有达到我想要的效果。关于在可能存在延迟的数据上使用 CQ 有什么建议吗?

答: 您需要在连续查询中包含一个 FOR 子句。FOR 子句告诉 CQ 重新计算先前的间隔,并拾取这些间隔中任何新写入的点。

CREATE CONTINUOUS QUERY latent_love
RESAMPLE EVERY 30S FOR 2m              <--- ?Resamples the previous 2 minutes worth of data?
BEGIN
  SELECT [...]
END

请注意,您提到的偏移间隔只是移动了 CQ 的时间桶的开始时间;延迟查询只是一个副作用。查看 CQ 文档 以获取有关 FOR 间隔的更多信息!

分片组持续时间建议

问: 我阅读了关于保留策略的文档,并且正在考虑配置我的分片组持续时间。当我开始这段旅程时,有什么是我应该避免或需要注意的吗?

答:  一般来说,较短的分片组持续时间允许系统有效地删除数据。当 InfluxDB 执行保留策略 (RP) 时,它会删除整个分片组,而不是单个数据点。例如,如果您的 RP 的持续时间为一天,那么将分片组持续时间设置为一小时是有意义的;InfluxDB 将每小时删除一小时的数据。

如果您的 RP 的持续时间超过六个月,则无需设置较短的分片组持续时间。实际上,将分片组持续时间增加到超出默认的七天值可以提高压缩率、提高写入速度并减少每个分片组的固定迭代器开销。例如,50 年及以上的分片组持续时间是可以接受的配置。

我们建议将分片组持续时间配置为

  • 它是您最长的典型查询时间范围的两倍
  • 每个分片组至少有 100,000 个
  • 每个分片组每个 序列 至少有 1,000 个点

保留策略和 HTTP API

问: 我正在尝试使用 HTTP API 查询非 DEFAULT 保留策略中的数据。目前,我正在使用 rp 查询字符串参数;还有其他方法可以做到这一点吗?

答: 是的!您可以在查询的 FROM 子句中完全限定 measurement。通过以以下格式指定其数据库和保留策略来完全限定 measurement

<database_name>.<retention_policy_name>.<measurement_name>

在下面的请求中,查询指定了 spooky 数据库中 one_day 保留策略中的 geist measurement

curl -GET 'http://localhost:8086/query' --data-urlencode 'q=SELECT value  FROM spooky.one_day.geist'

有关更多 InfluxDB 技巧,请参阅我们的 常见问题解答 页面,并随时在 InfluxDB 用户组 中发布您的问题!

下一步是什么?

  • 下载 并 开始使用 InfluxDB!
  • 安排与解决方案架构师的 免费 20 分钟咨询 ,以审查您的 InfluxDB 项目。
  • 参加我们的免费 虚拟培训研讨会
  • 有问题需要 InfluxData 支持团队立即解答?无限次事件的支持订阅每月仅需 399 美元起。在此处查看所有支持选项 here