ここの問題に似た独特の問題があります。
https://news.ycombinator.com/item?id=8368509
約 5 Gbps でキャプチャする高速トラフィック分析ボックスがあり、そこから特定のパケットを取り出して、C++ プログラムで何らかの形式に保存します。毎日、おそらく 1 ~ 3 TB がディスクに書き込まれます。これはネットワーク データであるため、すべてナノ秒レベルまでの時系列ですが、秒またはミリ秒レベルで保存し、後で別のアプリケーションに埋め込まれた高解像度のタイムスタンプを並べ替えても問題ありません。私の問題は、使用する形式を決定することです。私の2つの要件は次のとおりです。
- いくつかの異なるタイムスタンプ付きパラメーターを使用して、約 50 MB/秒で連続してディスクに書き込むことができます。
- このデータのチャンクを MATLAB (HDF5) にエクスポートできます。
- 分析目的で、このデータを 1 日に 1 回または 2 回クエリします。
難しい要件ではないもう1つの優れた点は次のとおりです。
- これらのボックスは 4 つ独立して実行されます。可能であれば、それらすべてに対してクエリを実行し、データを結合するとよいでしょう。これらの 4 つのボックスはすべて物理的に異なる場所にあるため、データを共有する際にオーバーヘッドが発生します。
2 つ目はアプリケーションが古いため変更できませんが、1 つ目のほうが重要だと思います。私が matlab にエクスポートしたいクエリのタイプは、「時間 Y と Z の間にメトリック X をプルする」のようなものなので、最終的には HDF5 形式にする必要があります。必要に応じて matlab ファイルを作成するために使用できる MatIO という外部ライブラリがありますが、変換ステップがなければさらに良いでしょう。上記のスレッド全体を読みましたが、kdb+、Cassandra、PyTables、および OpenTSDB など、際立っているように見える多くのオプションがあります。これらはすべて私が望むことをしているように見えますが、MATLAB HDF5 形式に変換するのがどれほど簡単か、またこれらのいずれかが他のものよりも難しくなるかどうかはわかりません。
誰かが同じようなことをした経験があるなら、それは大きな助けになるでしょう. ありがとう!