2016-07-26 6 views
0

しばらくの間、collectdとInfluxDBで遊んだ後、アップタイムは毎回1つのデータポイントとして毎回保存されることに気付きました。influxdb内の稼働時間のデータベースを効率的にモデリング

1469552552940296000 localhost uptime 426568 
1469552931893217000 localhost uptime 426947 
1469552991889480000 localhost uptime 427007 
1469553051889521000 localhost uptime 427067 
1469553111890071000 localhost uptime 427127 
1469553171889512000 localhost uptime 427187 
1469553231889512000 localhost uptime 427247 

これは冗長であるため、私にとっては非効率的です。最後の測定値を考えれば、私は他のすべてのものを計算することができます。なぜそれらを最初に保管するのですか?私は現在保持ポリシーを検討していますが、ここでそれらを適用する方法はあまりよく分かりません。この種のデータにはどのような戦略が適していますか?

システムの電源が切断されたときに情報を得たいと思うので、基本的に最新のuptime_valueとともに「開始」ポイントを保存します。その間のすべてが冗長です。

答えて

0

ここで正しいことは、継続的なクエリと保持ポリシーを使用することです。最初と最後のポイントだけを保存できることはわかりませんが、間違いなく可能です。

連続クエリは、すべてのデータを1つのポイントにダウンサンプリングするために使用されます。保持ポリシーは、古いデータを削除するために使用されます。

それは、その後、次の連続問合せのようなものを持っているこの

CREATE RETENTION POLICY myrp on mydb DURATION 1d REPLICATION 1 

ようになり

CREATE CONTINUOUS QUERY mycq on mydb BEGIN 
    SELECT max(uptime) FROM mymeasurement GROUP BY time(10m), * 
END 

言われていること、圧縮後に、これらのポイントのそれぞれは、2.5未満のバイトを取り上げますディスク上に。私はおそらく非常に効率的であることについてあまり心配しないでしょう。

関連する問題