Question

Mon application crée des morceaux de données qui, en XML, ressemblera à ceci:

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

Voici comment je le stockage de ces « ressources » maintenant. Une ressource par fichier XML. Comme beaucoup « terme » par « ressource » au besoin. Le problème est, je vais avoir besoin de générer environ 2 millions de ces ressources. J'ai reçu près de 500,000 et mon mac est pas très heureux. Donc, ma question est: comment dois-je stocker ces données

  • Une base de données? ce serait difficile, parce que la structure des données est pas fixe ...
  • Peut-être que la fusion des ressources dans des fichiers XML plus importants?
  • ...

Je ne ai pas besoin de changer les données une fois qu'il est créé. En ce moment je suis accès à une ressource spécifique par le nom du fichier de cette ressource.

Toutes les suggestions sont grandement appréciés!

Était-ce utile?

La solution

Pas toutes les bases de données relationnelles sont. Jetez un oeil à par exemple mongodb . Il stocke vos données sous forme d'objets JSON comme, semblables à vos ressources.

Un exemple en utilisant la coque:

$ 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}]}

Autres conseils

Si votre ne peut pas prédire comment vos données va être organisée, peut-être http: //couchdb.apache. org / peut être intéressant pour vous. Il est une base de données de schéma moins.

Enfin bref, XML est peut-être pas le meilleur choix pour les grandes amout de données.

Peut-être essayer JSON ou YAML fonctionne à mieux? Ils ont besoin de moins d'espace et sont plus faciles à analyser (je cependant pas d'expérience sur l'utilisation de ces formats à plus grande échelle. Peut-être que je me trompe).

Vous devriez avoir plusieurs deffinetely resourses par fichier XML, mais seulement si vous êtes censé avoir toutes les ressources toguether en même temps. Si vous avez besoin d'envoyer seulement une poignée de resourses à tout le monde, puis continuer à faire le XML individuel.

Même dans cette situation, vous pouvez garder le gros fichier XML et générer à la demande les plus petits de l'ensemble de données d'origine.

En utilisant une base de données comme SQLite3 vous permettra d'avoir plus rapidement les temps de recherche et une manipulation plus aisée des données, en utilisant la syntaxe SQL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top