概要:InfluxDB 技术提示 - 分片组持续时间建议
作者:Regan Kuchan / 开发者
2016年10月20日
导航至
在本周的帖子中,我们回顾了上周您可能错过的来自 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 年及以上的分片组持续时间是可以接受的配置。
我们建议将分片组持续时间配置为
保留策略和 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。