0

Web ベースのデータ ロギングおよび視覚化サービスの構築を考えています。基本的な考え方は、一定の間隔で何か (センサーなど) が値 (温度など) をサーバーに報告するというものです。サーバーはこの値をデータベースに記録します。このデータを時間ベースのグラフで表示できる Web ベースの UI があるでしょう。理想的には、このグラフにはさまざまな解像度があります (過去 30 秒、先週、昨年など)。超理想的な世界では、任意の時点のデータを拡大できます。

問題は、センサーが膨大な量のデータを生成することです。たとえば、5 秒ごとに値を報告するセンサーは、1 日に約 18,000 の値を生成します。何千ものセンサーを持つシステムを想像しています。時間の経過とともに、これは大量のデータになります。

単純な解決策は、このデータをリレーショナル データベースに投入し、必要なさまざまな方法で取得することですが、これでは拡張できません。

簡単な解決策は、データの定期的なロールアップを実行してデータの量を減らすことです。新しいデータは、5 秒ごとにデータ ポイントを持つテーブルに入る可能性があります。1 時間ごとに、一部のシステムがこのデータを、1 分ごとにデータ ポイントを持つ別のテーブルに送り込み、元のデータが削除されます。これが数レベル繰り返されます。これの欠点は、時間をさかのぼるほど、データの詳細度が低くなることです。それはおそらく大丈夫です。この種のロールアップを備えたシステムと比較して、データの完全な解像度を常にサポートするには、膨大な量のハードウェアが必要になると想像できます。

これを行うより良い方法はありますか?既存のソリューションはありますか? これはかなり一般的な問題であると想像する必要があります。

4

1 に答える 1

1

RRDToolのような固定サイズのデータ​​ベースが必要になる可能性があります:http://oss.oetiker.ch/rrdtool/

また、Graphiteは、同様のデータストア実装の上に構築されています:http: //graphite.wikidot.com/

于 2013-02-20T19:11:46.190 に答える