Pregunta

Mi aplicación crea piezas de datos que, en xml, sería el siguiente:

<resource url="someurl">
   <term>
      <name>somename</name>
      <frequency>somenumber</frequency>
   </term>    
   ...
   ...
   ...
</resource>

Esta es la forma en que estoy almacenando estos "recursos" ahora. Un recurso por archivo XML. Como muchos "expresión" por "recurso", según sea necesario. El problema es que voy a tener que generar alrededor de 2 millones de estos recursos. He generado casi 500.000 y mi Mac no está muy feliz por ello. Así que mi pregunta es: ¿cómo debo almacenar estos datos

  • Una base de datos? eso sería difícil, debido a que la estructura de los datos no es fijo ...
  • Puede fusionar algunos recursos en archivos XML grandes?
  • ...?

No es necesario cambiar los datos una vez que se ha creado. En este momento estoy accediendo a un recurso específico con el nombre de archivo de ese recurso.

Cualquier sugerencia son muy apreciadas!

¿Fue útil?

Solución

No todas las bases de datos son relacionales. Echar un vistazo a, por ejemplo, mongodb . Almacena los datos como objetos JSON-como, de forma similar a sus recursos.

Un ejemplo usando el shell:

$ mongo
> db.resources.save({url: "someurl", 
                     terms: [{name: "name1", frequency: 17.0},
                             {name: "name2", frequency: 42.0}]})
> db.resources.find()
{"_id" :  ObjectId( "4b00884b3a77b8b2fa3a8f77"), 
 "url" : "someurl" , 
 "terms" : [{"name" : "name1" , "frequency" : 17},
            {"name" : "name2" , "frequency" : 42}]}

Otros consejos

Si tu no se puede predecir cómo va a ser organizado sus datos, tal vez http: //couchdb.apache. org / puede ser interesante para usted. Es una base de datos sin esquema.

De todas formas, XML no es tal vez la mejor opción para la gran cantidad que de los datos.

Tal vez tratando JSON o YAML funciona mejor? Se necesita menos espacio y son más fáciles de analizar (sin embargo no tengo experiencia en el uso de los formatos de mayor escala. Tal vez me equivoque).

Usted debe tener varios deffinetely resourses por archivo XML, pero sólo si se espera que tenga todos los recursos JUNTOS al mismo tiempo. Si necesita enviar sólo un puñado de resourses a nadie, a continuación, seguir haciendo el XML individual.

Incluso en esa situación, usted podría guardar el archivo XML grande, y generar en la demanda a los más pequeños de la base de datos original.

El uso de una base de datos SQLite3 como le permitirá tener más rápidos tiempos de búsqueda y fácil manipulación de los datos, utilizando la sintaxis SQL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top