简而言之:InfluxDB 技术提示 - InfluxQL 中的高级条件语句、Chronograf 中的非 SELECT 查询以及跨测量查询

导航至

在这篇每周文章中,我们回顾了您可能在过去一周左右错过的来自 GitHub、IRC 和 InfluxData 社区 的最有趣的 InfluxDB 和 TICK 技术栈相关问题、解决方法、操作指南和问答。

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 管理控制台已被弃用,预计将在未来的版本中移除。有没有任何可以替代 web 管理控制台的方案?如果可能的话,我更希望不使用 HTTP API命令行界面

答:Chronograf,InfluxData 的用户界面,用于查询、可视化和监控您的数据,它同时支持 SHOW 查询和用户管理。请查看安装指南,了解如何启动并运行 Chronograf。

在 Chronograf 中运行 SHOW 查询的示例

Chronograf 中的用户管理

Chronograf 目前处于 beta 测试阶段,并且不支持 web 管理界面中的所有功能(尚未!)。如果您有任何问题或请求,请随时提出 issue。我们很乐意收到您的反馈!

跨测量查询

问: 我知道我可以跨字段键查询具有相同名称的测量;如果我查询仅出现在FROM 子句中某些测量中的字段键会发生什么? 查询会返回错误吗?

答: 您的查询不会返回错误。如果字段键在该测量中不存在,InfluxDB 不会返回该测量的结果。在下面的示例中,除了 winter 之外的每个测量都具有 flower-index 字段键。请注意,即使 winter 测量出现在 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 技术栈的下载已在我们的“下载”页面上线。
  • 在云端部署: 开始免费试用 InfluxDB Cloud ,其中包含完全托管的集群、Kapacitor 和 Grafana。
  • 在您的服务器上部署: 想在您的服务器上运行 InfluxDB 集群?免费试用 14 天的 InfluxDB 企业版 ,它具有直观的 UI,用于部署、监控和重新平衡集群,以及管理备份和恢复。 
  • 分享您的故事: 超过 300 家公司 分享了 InfluxDB 如何帮助他们取得成功的故事。提交您的客户评价,即可获得限量版连帽衫作为感谢。