大量のテレメトリ データを読み取るプロジェクトがあります。テレメトリは「チャネル」で構成されます。チャネルは多くの場合、単一のセンサーからの値です。たとえば、温度センサー。
A: 測定値B
: チャネル ID
C: 測定時刻
テレメトリは、最大 500 Hz (毎秒 500 サンプル) までのかなり高いレートで受信され、チャネルごとに 1 Hz という低いレートで受信されます。同時チャンネル数は通常約 150 です。
各チャネルのレートは正確であるとは期待できず、異なる場合があります。
そのため、データを処理し、後で値を表示するためのコレクション/アルゴリズムを探しています。表示はグラフと数値の読み出しで構成されています。
通常、データは順次受信されますが、より長い期間の停止が発生する可能性があります。また、停止によって失われたデータを後で受け取ることもできます。
簡単に言えば、データを構造化できるコレクションが必要
です。
B: 時間 a から b までの値をシーケンシャルに読み取れる必要があります。
C: 末尾または途中に新しい値を挿入します。
skiplist (http://en.wikipedia.org/wiki/Skiplist) を使用して実装を行いました。すべての要件を満たしているように見えますが、多くのメモリを消費します。私の最初の計算では、測定値の 5 倍から 10 倍の間のどこかが示されました。実際にはそれよりも高くなります。
また、値をデータベースに追加してそこから読み取ることも検討しましたが、遅いようです-SQLサーバーがそれほど多くの値を高速に挿入することはありません。
それで、これを行うことができるコレクション/アルゴリズムについて何か考えはありますか?