Frage

Meine Anwendung erstellt Stücke von Daten, die in xml, würde wie folgt aussehen:

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

Das ist, wie ich diese „Ressourcen“ bin Speicherung jetzt. Eine Ressource pro XML-Datei. Wie viele „Begriff“ pro „Ressource“ nach Bedarf. Das Problem ist, ich werde etwa 2 Millionen dieser Ressourcen generieren müssen. Ich habe fast 500.000 und mein Mac ist erzeugt nicht sehr glücklich darüber. Also meine Frage ist: Wie soll ich speichern diese Daten

?
  • Eine Datenbank? das würde schwierig sein, weil die Struktur der Daten nicht ...
  • festgelegt ist
  • Vielleicht einige Ressourcen in größere XML-Dateien zusammenführen?
  • ...

Ich brauche nicht die Daten zu ändern, sobald sie erstellt wird. Im Moment bin ich eine bestimmte Ressource mit dem Namen der Ressource der Datei zugreifen.

sind Anregungen sehr dankbar!

War es hilfreich?

Lösung

Nicht alle Datenbanken sind relational. Werfen Sie einen Blick auf zum Beispiel mongodb . Es speichert Ihre Daten als Json ähnlicher Objekte, ähnlich wie Ihre Ressourcen.

Ein Beispiel mit der 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}]}

Andere Tipps

Wenn Ihr nicht vorhersagen können, wie Sie Ihre Daten organisiert werden wird, vielleicht http: //couchdb.apache. org / für Sie interessant sein. Es ist ein Schema-weniger-Datenbank.

Wie auch immer, XML ist vielleicht nicht die beste Wahl für große amout von Daten.

Vielleicht versuchen, JSON oder YAML funktioniert besser aus? Sie benötigen weniger Platz und sind leichter zu parsen (ich habe aber keine Erfahrung auf der Verwendung dieser Formate in größerem Maßstab. Vielleicht bin ich falsch).

Sie sollten deffinetely mehrere resourses haben per XML-Datei, aber nur, wenn Sie alle Ressourcen zu erwarten ist toguether zugleich. Wenn Sie nur eine Handvoll von resourses niemandem schicken, dann halten Sie die einzelne XML zu machen.

Auch in dieser Situation Sie die große XML-Datei halten konnten, und erzeugen auf Wunsch die kleineren von der ursprünglichen Datenmenge.

eine Datenbank wie SQLite3 Mit Ihnen erlauben würde, schneller haben Suchzeiten und einfache Manipulation der Daten, SQL-Syntax.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top