TL;DR InfluxDB 技术提示 - 查询非默认保留策略中的数据、检查字段类型以及查询与写入布尔值

导航至

在这篇文章中,我们回顾了您可能在过去一周左右错过的一些新材料。请在下周查看来自 GitHub、IRC 和 InfluxData 社区的最有趣的 TICK 堆栈相关问题、解决方法、操作指南和问答。

查询非默认保留策略中的数据

问: 我创建了一个名为 secret_garden 的新保留策略。我开始将数据写入该保留策略,日志显示写入成功,但是当我查询数据时,我得到了一个空响应。我哪里做错了?

SHOW RETENTION POLICIES 查询的结果

> SHOW RETENTION POLICIES ON "lands"
name	       duration	  shardGroupDuration   replicaN   DEFAULT
autogen	       0          168h0m0s             1          true
secret_garden  24h0m0s	  1h0m0s               1          false

SELECT 查询的结果

> SELECT * FROM "foliage"
>

答: 保留策略 secret_garden 不是您数据库的 DEFAULT 保留策略(请参阅 SHOW RETENTION POLICIES 输出中的第五列)。

如果您要查询非 DEFAULT 保留策略中的数据,则需要完全限定 foliage measurement。通过在 FROM 子句中指定数据库和保留策略来完全限定 measurement:<"database">.<"retention_policy">.<"measurement">

示例

> SELECT * FROM "lands"."secret_garden"."foliage"
name: foliage
-------------
time                             roses
2016-05-31T17:09:04.697144667Z   3
2016-05-31T17:09:07.096708707Z   5

检查字段类型

问: 有什么方法可以查看数据类型字段

答: 从 InfluxDB 1.0 版本开始,SHOW FIELD KEYS 查询也返回字段的数据类型。

示例

> SHOW FIELD KEYS FROM all_the_types
name: all_the_types
-------------------
fieldKey  fieldType
blue      string
green     boolean
orange    integer
yellow    float

查询与写入布尔值

问: 我能够成功地将布尔值写入我的数据库,但似乎无法在查询的 WHERE 子句中使用它们。

> INSERT hamlet tobe=t
> INSERT hamlet tobe=f
> SELECT * FROM "hamlet" WHERE "tobe"=t
>

答: 写入和查询可接受的布尔语法有所不同。

在您的情况下,InfluxDB 理解 t 在您写入数据时表示 true,但不理解 t 在您查询数据时表示 true。您需要在查询中使用 trueTrueTRUE 来引用该布尔值。

示例

> SELECT * FROM "hamlet" WHERE "tobe"=true
name: hamlet
------------
time                             tobe
2016-05-31T18:07:32.93151244Z    true

下一步是什么

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