異なる時間間隔でさまざまなソースから入ってくる時系列データを保存して提供するために、何かを構築したいと考えています。これには、生データと計算データの両方が含まれます。たとえば、30秒ごとの温度の読み取り値と5分ごとに別々に計算する気温予測値を記録するとします。高周波データを提供するための設計アイデア
データをすばやく検索できるようにする必要があります。リレーショナルデータベースが大きくなりすぎても、うまく機能しないことがわかりました。だから私はある種のメモリ内のものを作ることを考えていましたが、ある時点でクラッシュすると思いますので、データをディスクに保存する必要があります。だから私は、一般的に要求されるデータのための何らかのキャッシュを使って、ディスク全体をディスクベースにするだけでは不思議に思っていました。
しかし、私はこれについてどうやって行くのか分かりません。私は、データソースが更新データセットをサーバーに定期的に送り、何らかの文字列キー/記号を使用してデータが何であるかを特定することを想像しています。サーバーはデータを取得し、次に何を取得するのですか?何らかのバイナリファイルに書きますか?シンボルごとに1つのファイルに書き込むことはできますか? (100kシンボル以上と仮定)
私が望むものは、GoogleのBigTableに似ていますが、はるかに小規模です。基本的には、分散型ハッシュテーブルであり、非常に高速な検索と時系列で範囲クエリを取り出すことができるように、関連するデータの時系列に文字列キーをマッピングします。多次元データのための余分なポイントが含まれています。
ああ、これは(理想的には)C#/ windowsプロジェクトで、である必要はありません。高性能です。
データベースのパーティション化? – CookieOfFortune