Web ベースのデータ ロギングおよび視覚化サービスの構築を考えています。基本的な考え方は、一定の間隔で何か (センサーなど) が値 (温度など) をサーバーに報告するというものです。サーバーはこの値をデータベースに記録します。このデータを時間ベースのグラフで表示できる Web ベースの UI があるでしょう。理想的には、このグラフにはさまざまな解像度があります (過去 30 秒、先週、昨年など)。超理想的な世界では、任意の時点のデータを拡大できます。
問題は、センサーが膨大な量のデータを生成することです。たとえば、5 秒ごとに値を報告するセンサーは、1 日に約 18,000 の値を生成します。何千ものセンサーを持つシステムを想像しています。時間の経過とともに、これは大量のデータになります。
単純な解決策は、このデータをリレーショナル データベースに投入し、必要なさまざまな方法で取得することですが、これでは拡張できません。
簡単な解決策は、データの定期的なロールアップを実行してデータの量を減らすことです。新しいデータは、5 秒ごとにデータ ポイントを持つテーブルに入る可能性があります。1 時間ごとに、一部のシステムがこのデータを、1 分ごとにデータ ポイントを持つ別のテーブルに送り込み、元のデータが削除されます。これが数レベル繰り返されます。これの欠点は、時間をさかのぼるほど、データの詳細度が低くなることです。それはおそらく大丈夫です。この種のロールアップを備えたシステムと比較して、データの完全な解像度を常にサポートするには、膨大な量のハードウェアが必要になると想像できます。
これを行うより良い方法はありますか?既存のソリューションはありますか? これはかなり一般的な問題であると想像する必要があります。