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 度量dogscats 字段 的差值。接下来,InfluxDB 计算这些差值的平均值。

注意,在 InfluxDB 的早期版本中,此计算需要执行两个单独的查询。

CLI 支持使用保留策略

在 InfluxDB 的早期版本中,查询非 DEFAULT 保留策略 的唯一方法是完全限定 度量 名称在 FROM 子句中。从版本 1.2 开始,CLI 支持使用 USE 命令指定备用保留策略,语法为:USE <database_name>.<retention_policy_name>。一旦使用 USE 命令指定了备用保留策略,就无需在每个 FROM 子句中都包含该保留策略!

以下示例告诉 CLI 使用 life 数据库和 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>) 忽略了具有 字段 的字符串值。SAMPLE(*,<N>) 的这种行为在版本 1.2 中已修复;现在,SAMPLE(*,<N>) 为度量中的 每个 字段返回 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 下载已激活。
  • 在云上部署:使用完全托管的集群、Kapacitor 和 Grafana 享受 InfluxDB Cloud 的免费试用。
  • 在您的服务器上部署:想要在您的服务器上运行 InfluxDB 集群?尝试 InfluxDB Enterprise 的免费 14 天试用,它具有直观的界面,用于部署、监控和平衡集群,以及管理备份和恢复。
  • 讲述你的故事: 超过300家公司 分享了他们如何通过InfluxDB取得成功的故事。提交你的评价,并获得限量版卫衣作为感谢。