TL;DR InfluxDB技术提示 - Kapacitor执行查询
作者:Regan Kuchan / 开发者
2016年6月30日
导航至
在这篇文章中,我们回顾了本周最有趣的InfluxDB和TICK-stack相关问题、解决方案、Kapacitor执行查询的教程和问答,以及您可能错过的来自GitHub、IRC和InfluxDB Google Group的内容。
使用Kapacitor自动化连续聚合
问题:我想每分钟自动执行一个查询,该查询对过去24小时的数据进行聚合,并增加查询的24小时时间范围一分钟。我尝试使用连续查询,但我觉得它无法完成我的需求——连续查询每分钟执行一次,但它总是查询相同的时间段。我想要的操作可以通过连续查询完成吗?还有其他方法可以实现吗?
以下是我想要自动化的几个示例查询
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假定所有数值字段值都是浮点数。要将整数写入数据库,请在您的行协议中,在字段值后添加一个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"
>
答案:如果在您的行协议中双引号一个标识符,InfluxDB假定这些引号是标识符名称的一部分。要查询名称中包含双引号的标识符,您必须同时转义其双引号并双引号名称:以下查询应该更快
> SELECT "\"crepuscule\"" FROM "\"roses\""
name: "roses"
-------------
Time "crepuscule"
2016-06-29T20:54:46.926056779Z 8
通常,我们建议您在行协议中不要使用双引号标识符。
有关更多InfluxDB技巧,请参阅我们的常见问题解答页面,并在InfluxDB用户组中自由提问。
接下来是什么?
- 在您的基础设施上寻找InfluxDB集群?现在即可开始使用InfluxDB Enterprise Beta,现在可供评估。
- 下载并开始使用InfluxDB 1.0 Beta 2。
- 安排一次与解决方案架构师进行的免费20分钟咨询,以审查您的InfluxDB项目。
- 参加我们免费的虚拟培训研讨会。