Estoy comenzando un nuevo proyecto científico que tiene una gran cantidad de datos (millones de entradas) Me gustaría almacenar en un formato de fácil y rápido acceso. Me he encontrado con varias opciones posibles diferentes, pero no estoy seguro de cómo elegir entre ellas. Mis datos probablemente solo puedan almacenarse como un diccionario, o potencialmente un diccionario de diccionarios. Algunas consideraciones potenciales:Comparando soluciones de almacenamiento persistentes en python
- Velocidad. No puedo cargar todos los datos del disco cada vez que comienzo un nuevo script, y me gustaría tener acceso rápido a entradas aleatorias como sea posible.
- Facilidad de uso. Esto es pitón. El almacenamiento debe sentirse como python.
- Estabilidad/madurez. Me gustaría algo que sea compatible actualmente, aunque algo que funciona bien pero aún está en desarrollo estaría bien.
- Facilidad de instalación. Mi administrador de sistemas debería poder ejecutar esto en nuestro clúster.
Realmente no me importa mucho sobre el tamaño del almacenamiento, pero podría ser una consideración si una opción es realmente terrible en este frente. Además, si es importante, lo más probable es que esté creando la base de datos una vez y, a partir de ahí, solo pueda leerla.
Algunas opciones posibles que he empezado a analizar (ver this post):
¿Alguna sugerencia sobre cuál de estos podría ser mejor para mis propósitos? Alguna mejor idea? Algunos de estos tienen un back-end; ¿Alguna sugerencia sobre qué back-end de sistema de archivos sería mejor?
Gracias por su respuesta. Estoy buscando la opción sqlalchemy más a fondo después de ver las diversas opciones que se han mencionado. – Noah
Para cualquiera que mire esto en el futuro, he decidido usar los enlaces pytc para la tienda de valores-clave de Tokyo Cabinet, ya que esto proporciona el acceso más rápido a los datos brutos. Para datos procesados, puedo usar SQLAlchemy, pero no puede tocar las tiendas de valores clave como pytc y pymongo en términos de velocidad. – Noah
shove los gobierna a todos, tiene backends para casi todos, en mis pruebas rápidas obtengo mejores resultados con leveldb – sherpya