Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi xml für große datenansammlungen geeignet (https://www.delphipraxis.net/146209-xml-fuer-grosse-datenansammlungen-geeignet.html)

vsilverlord 15. Jan 2010 16:00


xml für große datenansammlungen geeignet
 
Halloo, ich würde gerne viele datensätze abspeichern (viele Objekte mit eigenschaften). Ist dafür Xml das richtige?= es sollen immer einzelne Datensätze abspeicherbar sein und auch einzelne in den Arbeitspeicher geladen werden können. Ich befürchte nämlich, dass der Arbeitsspeicher für alle Datensätze auf einmal nicht ausreicht. außerdem glaube ich, dass es nciht so sinnvoll wäre, datenbanksysteme dazu zu verwenden.
gruß

himitsu 15. Jan 2010 16:05

Re: xml für große datenansammlungen geeignet
 
Theoretisch könnte man auch XML dafür verwenden?

PS: Was ist denn für dich "groß"?

Wenn nicht das ganze XML-Dokument gleichzeitig in den "RAM" geladen werden soll:
DOM - alles im Speicher
SAX - Datei wird sequentiell verarbeitet und nur Teilweise im Speicher.

HiWieGehts 15. Jan 2010 20:14

Re: xml für große datenansammlungen geeignet
 
Hallo,
die Frage ist wirklich, was ist groß?
Ich habe mit dem ClientDataSet für einfache Datenmengen mit 50000 Datensätzen ganz gute Erfahrung gemacht.

vsilverlord 15. Jan 2010 20:53

Re: xml für große datenansammlungen geeignet
 
ein datensatz besteht aus ca. 100000 objekten, datensätze auch ca. 10000. Zugreifen will ich aber nur auf einen auf einmal im Arbeitsspeicher.
Das ganze dient dazu, zuerst etwas vorzuberechnen, und später daraus eine Szene zu rendern (mit open gl falls jemand erfahrung damit hat).
Pro Objekt ca. 100 bit speicherbedarf. Also eigentlich würde auch eine Datenform in Tabellenform, da die Daten des Objekts nur Zahlen sind. Ich bin nunmal auf XML gestossen, da es sich anbietet, einfach abspeichern zu können, falls ihr aber eine bessere Form kennt könnt ihr sie mir ja sagen.
ty

Alien426 15. Jan 2010 21:15

Re: xml für große datenansammlungen geeignet
 
Also ich würde nicht XML nehmen. Schon alleine, weil die Datei auf dem Datenträger viel größer wird als bei anderen Methoden. Wenn es denn nur Zahlen sind, warum dann nicht CSV, im eigenen Format (typisiert) oder in eine SQLite-Datenbank?

Siehe auch Tutorial zur Datenspeicherung.

Namenloser 15. Jan 2010 21:38

Re: xml für große datenansammlungen geeignet
 
Ich würde auch eine richtige Datenbank dafür nehmen. MySQL, SQLite, Firebird... da gibt es ja viele zur Auswahl.

HiWieGehts 16. Jan 2010 07:04

Re: xml für große datenansammlungen geeignet
 
Hallo,
wenn ich richtig gerechnet habe, ergibt das eine Nettodatemnmenge von ca. 12,5GB. Dazu kommen noch - je nach Aufbau - die XML-Tags. Damit wird sich die Datenmenge mind. verdoppeln, u. U. verzehnfachen. Wenn du diese Datenmenge über XML bearbeiten willst, wird es mit "einfach" speichern kaum was werden. Es sei den du brauchst nie einen Datensatz löschen oder einfügen - nur anhängen wird gehen. Aber wie findest du den gewünschten Datensatz? Also aus meiner Sicht fällt XML auf jeden Fall aus oder du erfindest eine "Datenbank", welche die Daten im XML-Format speichert. Das kann aber das ClientDataSet (cds) automatisch.

Und gibt es eine Datenbank, welche Datensätze mit 100000 Datenfeldern unterstützt? Ich glaube nicht. Muss aber zugeben, damit habe ich mich noch nie auseinandergesetzt. Ich weiß nur, dass es einmal (15/20 Jahre) bei MS-SQL die Einschränkung gab, dass ein Datensatz nur 8kB haben durfte.

Das erste, was du aus meiner Sicht machen musst, ist zu klären, wie groß können Datensätze in der Datenbank XY sein. Wie groß kann die DB XY sein - es gibt DB die zb. nur 4 GB speichern können.
Der nächste Schritt ist, dir ein (relationales) Datenmodell zu überlegen, mit dem du die Datenmenge vernünftig speichern kannst. Wenn das erledigt ist, beginnt die Umsetzung.

LG

Deep-Sea 15. Mär 2010 08:41

Re: xml für große datenansammlungen geeignet
 
Nur mal was allgemeines zum Thema "Größe von XML-Dateien": Die kompletten Kartendaten von OpenStreetMap werden in einer einzigen XML-Datei angeboten und diese ist aktuell - Tendenz steigend - laut http://wiki.openstreetmap.org/wiki/Planet.osm über 160 GB groß :wink:
Also machbar ist das auf alle Fälle - wie es mit der Performance und Handhabung aussieht ist etwas anderes ...

mjustin 15. Mär 2010 19:39

Re: xml für große datenansammlungen geeignet
 
Zitat:

Zitat von vsilverlord
ein datensatz besteht aus ca. 100000 objekten, datensätze auch ca. 10000. Zugreifen will ich aber nur auf einen auf einmal im Arbeitsspeicher.
Das ganze dient dazu, zuerst etwas vorzuberechnen, und später daraus eine Szene zu rendern (mit open gl falls jemand erfahrung damit hat).
Pro Objekt ca. 100 bit speicherbedarf. Also eigentlich würde auch eine Datenform in Tabellenform, da die Daten des Objekts nur Zahlen sind. Ich bin nunmal auf XML gestossen, da es sich anbietet, einfach abspeichern zu können, falls ihr aber eine bessere Form kennt könnt ihr sie mir ja sagen.
ty

Alternative Formate sind z.B. JSOn (http://json.org) und Google ProtocolBuffers: http://de.wikipedia.org/wiki/Protocol_Buffers, das sehr auf Leistungsfähigkeit optimiert ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz