TL;DR InfluxDB技术技巧 - 在非默认保留策略中查询数据,检查字段类型,以及查询与写入布尔值
由 Regan Kuchan / 产品, 开发者
2017年4月27日
导航至
在这篇文章中,我们回顾了一些你可能在一周或更长时间内错过的新材料。下周我们将为您带来最有趣的TICK堆栈相关的问题、解决方案、操作指南和来自GitHub、IRC和InfluxData社区的问答。
在非默认保留策略中查询数据
问:我创建了一个名为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"
>
A: 保留策略 secret_garden
不是一个数据库的 DEFAULT
保留策略(请参阅 SHOW RETENTION POLICIES
输出的第五列)。
如果您正在查询不是 DEFAULT
保留策略的保留策略中的数据,则需要 完全限定 foliage
测量。通过在 FROM
子句中指定数据库和保留策略来完全限定一个测量: <"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
检查字段类型
Q: 有没有查看 数据类型 的方法?
A: 从 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
查询与写入布尔值
Q: 我能够成功将 布尔值 写入数据库,但似乎无法在查询的 WHERE
子句中使用它们。
> INSERT hamlet tobe=t
> INSERT hamlet tobe=f
> SELECT * FROM "hamlet" WHERE "tobe"=t
>
A: 写入和查询中可接受的布尔语法不同。
在您的示例中,InfluxDB 在写入数据时理解 t
代表 true,但在查询数据时它不会理解 t
代表 true。您需要使用 true
、True
或 TRUE
来在查询中引用该布尔值。
示例
> SELECT * FROM "hamlet" WHERE "tobe"=true
name: hamlet
------------
time tobe
2016-05-31T18:07:32.93151244Z true
下一步是什么
- 下载 页面上有 TICK-stack 的下载。
- 云上部署:开始使用 InfluxDB Cloud 的免费试用版,包括完全托管的集群、Kapacitor 和 Grafana。
- 服务器上部署:想要在您的服务器上运行 InfluxDB 集群?尝试 InfluxDB Enterprise 的免费 14 天试用版,它具有直观的用户界面,用于部署、监控和平衡集群,以及管理备份和恢复。
- 分享您的故事: 300 多家公司 分享了他们如何利用 InfluxDB 取得成功的故事。提交您的评价,并获得一件限量版卫衣作为感谢。