TL;DR InfluxDB 技术技巧 - InfluxQL 中的高级条件、Chronograf 中的非 SELECT 查询以及跨度量的查询
由 Regan Kuchan / 产品,开发者
2017年3月30日
导航到
在这周的文章中,我们回顾了上周 InfluxDB 和 TICK-stack 相关的一些有趣的问题、解决方案、教程和问答,这些问题、解决方案、教程和问答来自 GitHub、IRC 和 InfluxData 社区,您可能在上周或之前错过了。
InfluxQL 中的高级条件
问: 我想计算不同时间间隔的最小值,并且只显示最小值大于 0
的结果。InfluxQL 有没有实现这个功能的方法?
我的基本 GROUP BY time()
查询
> SELECT MIN("new-customers") FROM "coffee"
WHERE time >= '2017-03-29T14:00:00Z' AND time < '2017-03-29T17:00:00Z'
GROUP BY time(1h),"location"
name: coffee
tags: location=a
time min
---- ---
2017-03-29T14:00:00Z 0 <--- I'd love to suppress that result
2017-03-29T15:00:00Z 1
2017-03-29T16:00:00Z 1
name: coffee
tags: location=b
time min
---- ---
2017-03-29T14:00:00Z 14
2017-03-29T15:00:00Z 15
2017-03-29T16:00:00Z 4
这是一个无效的语法,但这是我想要实现的核心
> SELECT MIN("new-customers") FROM "coffee"
WHERE time >= '2017-03-29T14:00:00Z' AND time < '2017-03-29T17:00:00Z'
AND MIN("new-customers") > 0
GROUP BY time(1h),"location"
ERR: invalid expression: min("new-customers"::float) > 0
答:是的!InfluxQL 的 子查询 提供了这种功能
> SELECT "min" FROM
(SELECT MIN("new-customers") FROM "coffee"
WHERE time >= '2017-03-29T14:00:00Z' AND time < '2017-03-29T17:00:00Z'
GROUP BY time(1h),"location")
WHERE "min" > 0 GROUP BY "location"
name: coffee
tags: location=a
time min
---- ---
2017-03-29T15:00:00Z 1 <--- No more 0! ????
2017-03-29T16:00:00Z 1
name: coffee
tags: location=b
time min
---- ---
2017-03-29T14:00:00Z 14
2017-03-29T15:00:00Z 15
2017-03-29T16:00:00Z 4
子查询(在主查询的 FROM
子句 中加粗显示的查询)是您的原始查询。主查询在该子查询的结果上添加了额外的条件。请查看 数据探索页面 了解有关子查询及其用例的更多信息。
Chronograf 中的非 SELECT 查询和用户管理
问: 我一直在使用 Web 管理控制台 来运行对我的数据的 SHOW
查询 并管理 InfluxDB 中的 用户。我注意到 Web 管理控制台已被弃用,并预计将在未来的版本中删除。是否有替代方案?如果可能的话,我宁愿不使用 HTTP API 或 命令行界面。
A: Chronograf,InfluxData 的用户界面,用于查询、可视化和监控数据,支持 SHOW
查询和用户管理。查看安装指南,了解如何开始使用 Chronograf。
在 Chronograf 中运行 SHOW
查询的示例
Chronograf 中的用户管理
Chronograf 目前处于测试阶段,并不支持网络管理界面中所有功能(暂时不支持)。如果您有任何问题或建议,请随时提交问题。我们非常乐意听取您的反馈!
跨度量查询
Q: 我知道我可以查询具有相同名称的 字段键,这些键存在于 度量 中;如果查询只出现在某些度量中的字段键会发生什么?查询是否会返回错误?
A: 您的查询不会返回错误。如果字段键在该度量中不存在,InfluxDB 不会返回该度量的结果。在下面的示例中,除了 winter
之外,每个度量都有 flower-index
字段键。请注意,即使该度量出现在 FROM
子句中,查询也不会为 winter
返回任何结果。
> SELECT MEAN("flower-index") FROM "summer","fall","winter","spring"
name: fall
time mean
---- ----
1970-01-01T00:00:00Z 4
name: spring
time mean
---- ----
1970-01-01T00:00:00Z 10
name: summer
time mean
---- ----
1970-01-01T00:00:00Z 8
接下来是什么
- 下载页面上有 TICK-stack 的下载。
- 在云端部署:免费试用InfluxDB Cloud,包含完全管理的集群、Kapacitor 和 Grafana。
- 在您的服务器上部署:想在您的服务器上运行 InfluxDB 集群?免费试用 14 天的 InfluxDB Enterprise,包括直观的 UI 用于部署、监控和平衡集群,以及管理备份和恢复。
- 分享你的故事: 300 多家公司分享了他们如何利用 InfluxDB 取得成功的故事。提交你的评价,作为感谢,你将获得一件限量版卫衣。