私は、複数の物理学とシミュレータを含むモンテカルロシミュレーションソフトウェアパッケージを開発しています。私はオンライン分析を行い、派生データの生データへの依存性を追跡し、 "温度> 400の位置と(x0、y0)の近くの位置に波形を与える"のようなクエリを実行する必要があります。したがって、メモリ内のデータモデルはかなり複雑です。科学シミュレーションデータ、Mongodb + HDF5のデータ持続性?
アプリケーションはPythonで書かれ、各シミュレーション結果はPythonオブジェクトとしてモデル化されています。 1時間ごとに〜100個の結果(オブジェクト)が生成されます。ほとんどのオブジェクトは、重いデータ(バイナリ数値配列の数MB)だけでなく、いくつかの軽いデータ(温度、位置など)を持っています。総データ生成レートは1時間あたり数GBです。
私はデータ永続性ソリューションと使いやすいクエリAPIが必要です。 私は既に重いデータ(数値配列)をHDF5ストレージに保存することを決めました。 私はオブジェクトの永続性(軽いデータのみ)としてMongoDBを使用し、HDF5で重いデータを索引付けすることを検討しています。 MongoDBによるオブジェクトの永続性は簡単で、クエリインタフェースは十分に強力です。
私はsqlalchemy + sqliteオプションについて認識しています。ただし、重いデータをHDF5にストリーミングすることはSqlAlchemyでは当然サポートされていないようで、固定スキーマは煩雑です。
私はこのポスト( Searching a HDF5 dataset)を知っていますが、 "インデックステーブル"自体には高速クエリのためのメモリ内インデックスが必要です。
私がジャンプする前に見なければならない代替ソリューションがあるのだろうかと思いますか?それとも、私の計画で見落とした問題はありますか?
TIA。
ポインタがありがとうございました。私はVistrailsのドキュメントを読み飛ばした。 VisTrailは後処理やグラフ作成に最適です。私のアプリケーションは1つの問題に特化していると思うし、多くの分析の詳細をユーザーから隠すには –
が必要です。私はそのソースコードを読んで、データがVisTrailにどのように格納されているかを見ています。 VisTrailは印象的なソフトウェアですが、私は大学院生として欲しいと思います。ありがとうございました。 –