TL;DR InfluxDB 技术提示 - Kapacitor 执行查询
作者:Regan Kuchan / 开发者
2016 年 6 月 30 日
导航至
在这篇文章中,我们回顾了本周最有趣的 InfluxDB 和 TICK-stack 相关问题、Kapacitor 执行查询的解决方法、操作指南以及来自 GitHub、IRC 和 InfluxDB Google Group 的问答,您可能错过了这些内容。
使用 Kapacitor 自动化连续聚合
问:我想每分钟自动执行一个查询,该查询聚合过去 24 小时的数据,并且还将查询的 24 小时时间范围递增一分钟。我尝试使用连续查询,但我不认为它可以做到我想要的 - CQ 每分钟执行一次,但它总是查询相同的 24 小时时间段。我想要做的事情可以用 CQ 实现吗?还有其他方法可以做到这一点吗?
以下是我想要自动化的一些示例查询
SELECT mean(water_pressure) INTO mean_pressures FROM sea WHERE time >= '2016-06-29T00:00:00Z' AND time <= '2016-06-30T00:00:00Z'
SELECT mean(water_pressure) INTO mean_pressures FROM sea WHERE time >= '2016-06-29T00:01:00Z' AND time <= '2016-06-30T00:01:00Z'
答:您是对的,连续查询目前无法做到您想要它们做的事情。我们建议使用 Kapacitor 自动执行查询并将结果写回 InfluxDB。示例 TICKscript
batch
|query('SELECT mean(water_pressure) FROM science."autogen".sea')
.period(1d)
.every(1m)
.align()
|influxDBOut()
.database('science')
.retentionPolicy('autogen')
.measurement('mean_pressures')
.precision('s')
将整数写入 InfluxDB
问:我正在将我认为是整数的数据写入数据库,但 SHOW FIELD KEYS
查询说它们是浮点数。我该如何将整数写入数据库?
> INSERT cheese gouda=1
> SHOW FIELD KEYS
name: cheese
------------
fieldKey fieldType
gouda float
答:默认情况下,InfluxDB 假定所有数值字段值都是浮点数。要将整数写入数据库,请在您的 Line Protocol 中,在字段值后附加一个 i
> INSERT cheese gouda=1i
> SHOW FIELD KEYS
name: cheese
------------
fieldKey fieldType
gouda integer
使用双引号写入与查询标识符
问:我可以成功地将数据写入 InfluxDB,但我的查询返回空结果。我哪里做错了?
> INSERT "roses" "crepuscule"=8
> SHOW MEASUREMENTS
name: measurements
------------------
name
"roses"
> SELECT crepuscule FROM roses
> SELECT "crepuscule" FROM "roses"
>
答:如果您在 标识符 中用双引号引起来 Line Protocol,InfluxDB 会假定这些引号是标识符名称的一部分。要查询名称中带有双引号的标识符,您必须同时转义其双引号并用双引号引起来名称:以下查询应该更快
> SELECT "\"crepuscule\"" FROM "\"roses\""
name: "roses"
-------------
Time "crepuscule"
2016-06-29T20:54:46.926056779Z 8
一般来说,我们建议您不要在 Line Protocol 中使用双引号标识符。
有关更多 InfluxDB 提示,请查看我们的 常见问题解答页面,并随时在 InfluxDB 用户组中发布您的问题。
下一步是什么?
- 正在您的基础设施上寻找 InfluxDB 集群?开始使用 InfluxDB Enterprise Beta 版,现已可用于评估。
- 下载 并 开始使用 InfluxDB 1.0 Beta 2
- 安排与解决方案架构师的 免费 20 分钟咨询,以审查您的 InfluxDB 项目
- 参加我们的免费 虚拟培训研讨会之一。