我对 influxdb 0.8.8 中的连续查询有点麻烦。我正在尝试创建一个连续查询,但似乎忽略了 where 子句。我知道这里提到的限制:http: //influxdb.com/docs/v0.8/api/continuous_queries.html但我不认为这里会出现这种情况。
时间序列中的一行将包含如下数据:
{"hex":"06a0b6", "squawk":"3421", "flight":"QTR028 ", "lat":99.867630, "lon":66.447365, "validposition":1, "altitude":39000, "vert_rate":-64,"track":125, "validtrack":1,"speed":482, "messages":201, "seen":219}
我正在运行和工作的查询如下:
select * from flight_series where time > now() - 30m and flight !~ /^$/ and validtrack = 1 and validposition = 1;
通过它,我试图从当前时间开始最后 30 分钟,检查飞行字段是否没有空格,并且轨道/位置是否有效。查询成功返回,但是当我添加
into filtered_log
部分'where'子句被忽略。
如何创建考虑到上述条件的连续查询?至少,我如何才能通过一个连续查询仅提取有效轨道/标题设置为 1 且航班不是空白/空字符串的行?我可以从查询中消除并转化为分片保留/持续时间的时间限制。
另外,我是否可以在连续查询中指定将数据保存到位于另一个数据库中的时间序列(具有更宽松的保留/持续时间策略)?
谢谢!
后期编辑:
通过使用以下cq,我设法做一些更接近我需要的事情:
"select time, sequence_number, altitude, vert_rate, messages, squawk, lon, lat, speed, hex, seen from current_flights where ((flight !~ /^$/) AND (validtrack = 1)) AND (validposition = 1) into flight.[flight]"
这会为每个“航班”创建一个系列,即使对于那些在“航班”字段中有空格的人 - 航班。系列已建成。
如何为上面的 cq 生成的系列指定保留/持续时间策略?我可以做类似的事情:
"spaces": [
{
"name": "flight",
"retentionPolicy": "1h",
"shardDuration": "30m",
"regex": "/.*/",
"replicationFactor": 1,
"split": 1
},
...
这会给我 1 小时的保留时间和 30 米的分片持续时间?
我有点困惑这些系列的存储位置,哪个分片空间?
谢谢!
PS:我的最终目标如下:所有航班的“窗口”最多为 15-30 分钟,处理其中的一些数据,在此期间结束后丢弃数据,但同时将其移动/复制到另一个可用于历史目的的长期数据库/系列。