さまざまなソースからさまざまな時間間隔で取得される時系列データを保存して提供するための何かを構築したいと考えています。これには、生データと計算データの両方が含まれます。たとえば、30秒ごとの温度測定値と、5分ごとに個別に計算している温度予測をログに記録するとします。
データをすばやくクエリできるようにする必要がありますが、リレーショナルデータベースが大きくなりすぎると、まったく機能しなくなることがわかりました。ある種のメモリ内のものを作成することを考えていましたが、ある時点でクラッシュすると確信しているので、データをディスクに保持する必要があります。だから私は、一般的に要求されるデータのためのある種のキャッシュを使って、全体をディスクベースにしないのはなぜだろうと思っていました。
しかし、私はこれについてどうやって行くのか少し無知です。ある種の文字列キー/記号を使用してデータが何であるかを識別するために、データソースが更新データセットをサーバーに定期的にプッシュすることを想像しています。サーバーがデータを取得し、それから何をしますか?ある種のバイナリファイルに書き込みますか?シンボルごとに1つのファイルに書き込むことはできますか?(10万以上のシンボルを想定)
私が欲しいのはグーグルのBigTableに似ていると思いますが、規模ははるかに小さいです。基本的に、分散ハッシュテーブルは、文字列キーを関連データの時系列にマッピングし、非常に高速な取得と時間による範囲クエリの取得機能を備えています。多次元データ用の追加ポイント。
ああ、これは(理想的には)C#/windowsプロジェクトによるものです-それほど高性能である必要はありません。