2
センサーアレイから大量のデータを保存する
私は、巨大なセンサーアレイからのデータサンプルを保存するソリューション(appおよびdb)を実装することを任されました。アレイは現在約20,000個のセンサーで構成されていますが、まもなく100,000個のセンサーに拡大します。各センサーは10秒ごとにデータサンプルを送信し、各サンプルのサイズは28バイトです。 したがって、合計を行うと、次のようになります。 1日あたりセンサーあたり8640サンプル 1日あたりセンサーあたり242kBのデータ 1日あたり864百万サンプル 今、データを保存/取得する最善の方法は何だろうと思っていますか?ソフトウェアが既に指定された後、私はこのプロジェクトに「参加」したので、SQL Serverを使用してWindowsプラットフォームに実装する必要があります。 私の頭の中の現在の解決策は、データサンプルを格納する2つのテーブルを持つDBを作成することです。1つ目は2つ目のインデックスの一種として機能し、センサーごとに1日あたりのバイナリフィールドに照合サンプルを格納します。 Table 1: RecordID - BigInt - Identity SensorID - BigInt - Primary Key Date - DateTime - Primary Key (yyyy-mm-dd) Table 2: RecordID - BigInt - Primary Key (from an insert into Table 1) Data - Binary 基本的に、すべてのセンサーのサンプルを一時ファイル(センサーごとに1つ)に書き込みます。毎日の終わりに、表1のエントリを作成し、生成されたRecordIDを使用して、ファイルを表2のデータフィールドにダンプします。 この方法では、8億4400万エントリではなく、1日あたり100,000エントリしかテーブルに登録されません。データはLANまたは高速WANで利用可能である必要があります。そのため、1日単位でセンサーデータを取得できます。 すべてのデータを保存する必要がありますが、ほとんどのデータはおそらく読み込まれません。そのため、テーブルの読み取りの量は書き込みよりも大きくなることはありません。 データファイルへのパスを保存するだけで、ファイルシステムを使用して何かを実装できることは知っていますが、バイナリフィールドが256kB未満の場合、SQL ServerはNTFSよりも優れていることを読みました。(256 …