Estoy desarrollando un paquete de software de simulación Monte Carlo que involucra múltiples físicos y simuladores. Necesito hacer análisis en línea, rastrear la dependencia de datos derivados en datos brutos y realizar consultas como "darme las formas de onda para temperatura> 400 y posición cerca (x0, y0)". Entonces, el modelo de datos en memoria es bastante complicado.Persistencia de datos de datos de simulación científica, Mongodb + HDF5?
La aplicación está escrita en Python, con cada resultado de simulación modelado como un objeto de Python. En cada hora produce ~ 100 resultados (objetos). La mayoría de los objetos tienen datos pesados (varios MB de matriz numérica binaria), así como algunos datos de luz (temperatura, posición, etc.). La tasa de generación de datos totales es de varios GB por hora.
Necesito alguna solución de persistencia de datos, y una API de consulta fácil de usar. Ya he decidido almacenar los datos pesados (matriz numérica) en almacenamiento (s) HDF5. Estoy considerando usar MongoDB en cuanto a la persistencia de objetos (solo datos ligeros) y para indexar los datos pesados en HDF5. La persistencia de objetos con MongoDB es sencilla, y la interfaz de consulta parece suficientemente poderosa.
Conozco la opción sqlalchemy + sqlite. Sin embargo, la transmisión de datos pesados a HDF5 no parece ser compatible de forma natural en SqlAlchemy, y un esquema fijo es engorroso.
Conozco esta publicación ( Searching a HDF5 dataset), pero la "tabla de índice" en sí necesita algunos índices en la memoria para consultas rápidas.
Me pregunto si hay alguna solución alternativa que deba tener en cuenta antes de saltar. ¿O hay algún problema que he pasado por alto en mi plan?
TIA.
Muchas gracias por el puntero. Revisé el documento de Vistrails. La impresión que tengo es que VisTrail es perfecto para el post-procesamiento y la creación de gráficos. Supongo que mi aplicación es más específica para un problema y necesita –
para ocultar muchos detalles de análisis del usuario. Estoy leyendo su código fuente y veo cómo se almacenan los datos en VisTrail, espero poder aprender algo de ellos. VisTrail es una impresionante pieza de software, desearía tenerla como estudiante graduado. Gracias. –