複数のマシンのセンサーの読み取りを追跡する測定値があります。最後の値を取得するときのパフォーマンスの問題
マシンごとに50種類の読み取りがあり、最大1000台のマシンがあります。 30秒ごとに1つの読みがあります。
私は読書を保存する方法は、2つのタグmachine_idとanalysis_idと単一の値を持つ単一の測定値です。
私が持っているユースケースの1つは、マシンのリストの各読み込みの現在の値を取得することです。
このデータベースのレコード数が1億件になったり、そのような数字が1日未満の場合は、最後に値を取得することができなくなります。
SELECT *
FROM analysisvalue
WHERE entity_id = '1' or entity_id = '2'
GROUP BY analysis_id, entity_id
ORDER BY time DESC
LIMIT 1
と::
SELECT last(*) AS value,
FROM analysisvalue
WHERE entity_id = '1' or entity_id = '2'
GROUP BY analysis_id, entity_id
両方、その後の完了までにかなり長い時間がかかる
は、私は2つの次の選択肢を試してみました。 1億回で1秒程度の何かです。最新の値を検索するというユースケースは、非常に頻繁です。私は、機械の「現在の」状態をほぼ即座に得ることができる必要があります。 最新の値を別の場所に記録することで、アプリケーションロジックの面でこれを行うことができますが、InfluxDBだけで何ができるのだろうかと思っていました。
どのバージョンのInfluxDBをお使いですか? –
私は最新です、1.2。 – manecosta
InfluxDBリポジトリで[issue](https://github.com/influxdata/influxdb/issues/new)を開いてこれを開くことができますか? –