Hallo
Ich komm nicht weiter und brauch ein paar Denkanstöße 😉
Ich muss quasi eine Datenbank importieren
- Die Bereitstellung der Daten erfolgt als
xml-Dateien.
- Am Aufbau kann ich nix ändern 😉
- Insgesamt sind es ca. 150 Tabellen
- Es gibt eine XSD Dateien, die alle infos enthält
- Vierteljährlich werden die Grunddaten bereitgestellt, hierbei ist jede Tabelle eine
xml Datei
- Größe ist unterschiedlich, die
xml reichen von ein paar kb bis zur größten von 1,7GB (ja, kein Schreibfehler GB)
- Täglich werden updates bereitgestellt, diese Dateien enthalten alle Datensätze/Tabellen
- Datenstruktur ist recht flach
<root>
<paar allgemeine InfoDaten>
<Daten-knoten>
<Tabellenname>
<einzelne Felder und Daten…>
im Falle der Grunddaten ist halt immer nur ein Tabelle drin.
Per
xml-Datenanbindung hatte ich mir die Klassen erzeugt, für die normalen Dateigrößen und auch die updates klappt das super. Die großen Dateien sind ein problem. Das Einladen dauert Stunden/Tage bevor ich überhaupt zum Parsen komme.
Momentan splitte ich die großen Dateien in mehre kleine Dateien auf und fummele an den Dateien rum, dass sie jeweils gültige
xml sind und lade die kleineren Dateien.
Frage ist: ob ich das mit Boardmitteln überghaupt hinbekomme die Dateien als Stück ohne Fummelei zu laden . Ich verrenn mich aber grade, weil ich mir nicht sicher bin, was ich mir gezielt anschauen kann/soll und das auch zum Erfolg führt. Ich würde aber gern beim Standard ohne Fremdkompos bleiben.
Die updates sind nicht so groß, die Einlese-Geschwindigkeit passt. Die Grunddaten vierteljährlich: auch nicht so zeitkritisch, ob das nun 60 oder 70minuten braucht ist, egal, aber es sollte nicht den halben Tag dauern.
-
SAX wäre was, aber das geht nicht mit boardmitteln, oder? Der Teil der omnixml der bei delphi mit dabei ist, kann das ja nicht?
- Macht es Sinn sind die großen Dateien als Text sequenziell als Text zu lesen und die Daten zu Fuß auszulesen
- Oder bin ich mit meiner „Fummelei“ gar nicht so verkehrt?
- Himxml hatte ich probiert, ich bekomme aber auch hier mit dem Tree-Demo die große 1,7GB Datei nicht eingelesen --> out of memory
Danke & Gruß Frank