TL;DR InfluxDB 技术提示 - InfluxQL 子查询支持、CLI 使用保留策略支持及更多

导航至

在这篇文章中,我们预览了 InfluxDB 1.2 版本中将发布的一些新功能。下周请继续关注更多关于 InfluxDB 和 TICK-stack 相关问题的精彩内容、解决方法、操作指南以及来自 GitHub、IRC 和 InfluxDB Google Group 的问答。

InfluxQL 子查询支持

从 1.2 版本开始,InfluxQL 的 SELECT 语句 支持子查询。子查询是嵌套在另一个查询的 FROM 子句 中的查询。您可以使用子查询将一个查询应用为外层查询的条件。

以下带子查询的查询计算了狗和猫数量之间的平均差值

> SELECT MEAN("difference") FROM (SELECT "dogs" - "cats" AS "difference" FROM "pet_daycare")

name: pet_daycare
time mean
---- ----
1970-01-01T00:00:00Z 9

InfluxDB 首先执行子查询,计算 pet_daycare measurementdogscats 字段 之间的差值。接下来,InfluxDB 计算这些差值的平均值。

请注意,在以前版本的 InfluxDB 中,该计算需要您执行 两个单独的查询

CLI 使用保留策略支持

在以前版本的 InfluxDB 命令行界面 (CLI) 中,查询非 DEFAULT 保留策略 的唯一方法是在 FROM 子句中完全限定 measurement 名称。从 1.2 版本开始,CLI 支持在 USE 命令中使用以下语法指定备用保留策略:USE <database_name>.<retention_policy_name>。一旦您使用 USE 命令输入备用保留策略,就无需在每个 FROM 子句中包含该保留策略!

以下示例告诉 CLI 使用 life 数据库和非 DEFAULT lemons 保留策略

> USE "life"."lemons"

Using database life
Using retention policy lemons

> SELECT * FROM "glasses" LIMIT 1

name: glasses
time                             lemonade    peach_lemonade    raspberry_lemonade
----                             --------    --------------    ------------------
2017-01-17T04:41:21.874459122Z   1           8                 5

InfluxQL 修复 SAMPLE(*) 问题

在以前版本的 InfluxDB 中,SAMPLE(*,<N>) 忽略了具有 字符串值字段。该行为已在 1.2 版本中修复;现在 SAMPLE(*,<N>) 为 measurement 中的每个字段返回 N 个点的随机样本

> SELECT SAMPLE(*,2) FROM "all_kinds"

name: all_kinds
time                            sample_bool  sample_i_feel_heard  sample_num
----                            -----------  -------------------  ----------
2017-01-17T05:17:34.843212275Z  true         yes                  456
2017-01-17T05:18:14.298348463Z  false        me too!              4

下一步是什么

  • 下载 TICK-stack 可以在我们的“下载”页面上找到。
  • 云端部署:开始免费试用 InfluxDB Cloud ,它具有完全托管的集群、Kapacitor 和 Grafana。
  • 在您的服务器上部署:想在您的服务器上运行 InfluxDB 集群?免费试用 14 天 InfluxDB Enterprise ,它具有直观的 UI,用于部署、监控和重新平衡集群,以及管理备份和还原。
  • 讲述您的故事: 超过 300 家公司 分享了 InfluxDB 如何帮助他们取得成功的故事。提交您的客户评价,即可获得限量版连帽衫作为感谢。