0

influxdb 0.8.8 での継続的なクエリに少し問題があります。連続クエリを作成しようとしていますが、where 句が無視されているようです。ここで言及されている制限については承知しています: http://influxdb.com/docs/v0.8/api/continuous_queries.htmlですが、これがここに当てはまるとは思いません。

時系列の 1 つの行には、次のようなデータが含まれます。

{"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に設定され、フライトが空白/空の文字列ではない行のみを1つの連続クエリで抽出するにはどうすればよいですか? クエリから排除し、シャードの保持/期間に変換できる時間の制約。

また、継続的なクエリで to を指定して、別のデータベース (より緩和された保持/期間ポリシーを持つ) にある時系列にデータを保存できますか?

ありがとうございました!

後で編集:

次の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 分の「ウィンドウ」を持ち、それらからのデータを処理し、その期間が過ぎたらデータを破棄しますが、同時に移動/コピーします。歴史的な目的で使用できる別の長期的なデータベース/シリーズ。

4

1 に答える 1