科学模拟数据的数据持久性,Mongodb + HDF5?

She*_*hen 8 python orm scientific-computing hdf5 mongodb

我正在开发一个涉及多个物理和模拟器的蒙特卡罗模拟软件包.我需要进行在线分析,跟踪衍生数据对原始数据的依赖性,并执行诸如"给我温度> 400的波形和靠近(x0,y0)的位置"的查询.因此,内存数据模型相当复杂.

该应用程序是用Python编写的,每个模拟结果都被建模为Python对象.在每小时它产生约100个结果(对象).大多数对象都有大量数据(几MB的二进制数值数组),以及一些轻量数据(温度,位置等).总数据生成速率为每小时几GB.

我需要一些数据持久性解决方案和一个易于使用的查询API.我已经决定将重数据(数字数组)存储在HDF5存储中.我正在考虑使用MongoDB作为对象持久性(仅限轻量数据),以及用于索引HDF5中的大量数据.MongoDB的对象持久性很简单,查询界面看起来足够强大.

我知道sqlalchemy + sqlite选项.但是,在SqlAlchemy中似乎并不支持将大量数据流式传输到HDF5,并且固定架构很麻烦.

我知道这篇文章( 搜索HDF5数据集),但"索引表"本身需要一些内存中的索引来快速查询.

我想知道在我跳入之前是否还有其他解决方案?或者我的计划中是否有任何问题被忽略了?

TIA.

ev-*_*-br 0

你看过Vistrails吗?