• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[VB.NET] große XML-Datei auslesen (10gb)

janm

Mitglied
Hallo,

ich habe eine 10gb XML-Datei, die ich heruntergeladen (ca 2gb)und dann auf das 5-fache entpackt habe. Nun wollte ich diese Datei mit System.Xml.XmlTextReader einlesen und den Inhalt (ca. 1mio mal Inhalt von bestimmten Tag) in jeweils einzelne Dateien schreiben.

Soweit, sogut. Nur hängt sich das Programm auf, wenn ich das starte und dann kommt nach 60 sek der abbruch. Och denke ein Ram von 3gb reicht da wohl nicht aus (Ich kauf mir KEINEN Ram dazu!).Gibt es andere Möglichkeiten, soetwas zu realisieren?

Ich weiß nur, dass der Tag <page> ist, und, dass alles was dazwischen ist in die neuen Dateien (einmal etwas zwischen <page> und </page> ^= 1 neue Datei) muss.

Ich hoffe, dass ihr mir helfen könnt!

PS: Ich kenne die Leerzeilenverteilung nicht, sie soll aber beibehalten werden.
 
Werbung:
Hallo,

ich kenne mich mit VB nicht aus und werde dir vermutlich nicht helfen können, aber ich bin mir relativ sicher, dass wir dir besser helfen können, wenn du uns deinen bisherigen Quelltext zeigst.

Gruß
 
Wobei das Problem darin bestehen dürfte, dass die 10 GB einfach eine Nummer zu heftig sind. Das hängt auch von der Implementierung des Parsers ab.

Um zu verdeutlichen, was ich meine, hier aus einem Thread für PHP:

There's only two php APIs that's really suited for processing such large files. The first is the old expat api, and the second is the newer XMLreader functions. These apis read continous streams rather than loading the entire tree into memory (which is what simplexml and DOM does).

- Parsing Huge XML Files in PHP - Stack Overflow

Dein Suchbegriff wäre analog: „vb.net parse large xml“
 
Werbung:
Erstmal würde ich das in eine Datenabnk importieren, denn eine 10GB große Datei ist für einen kleinen PC die hölle.... dann da auch noch zu Parsen.
Eine Datenbank macht sowas eher mit.
 
Werbung:
Warum den Algorithmus dann nicht gleich in .NET schreiben? Irgendwie sehe ich nicht, wo bei deinem Vorschlag der konkrete Gewinn ist.
 
Scripte haben den vorteil, das die schneller laufen können als Programme die über eine Runtimie laufen.
Somit belastest du den Server für 1 Stunde....

Bei einem Programm muss er noch nebenbei noch die Runtime laufen was Performace zieht.
Du kannst das auch mit einem PHP Script in die DB speichern, ist würde es jedoch mit einer Scriptsprache machen und nicht mit einer Compilersprache die eine Runtime benötigt.
Bots werden ja auch in Scriptsprachen geschrieben ;).
 
Werbung:
wenn du es sagst.....

Dann gebe ich dir einfach mal den Tipp dich damit zu beschäftigen, was der unterschied zwischen Scriptsprachen und Hochsprachen sind.... und deren Vor- und Nachteile.
 
Zuletzt bearbeitet:
Lies mal bitte, was du schreibst. Das ergibt schlicht keinen Sinn (PHP ist zum Beispiel eine Scriptsprache). War ja vielleicht unabsichtlich. Ich will dich nicht ärgern, aber was soll ich sagen?
 
Lies mal bitte, was du schreibst. Das ergibt schlicht keinen Sinn (PHP ist zum Beispiel eine Scriptsprache). War ja vielleicht unabsichtlich. Ich will dich nicht ärgern, aber was soll ich sagen?

Der unterschied zwischen Scriptsprachen sind, dass Script Sprachen wie (PHP,Perl,Bash,Batch,Phyton usw.) keinen Compiler benötigen.
Scriptsprachen werden vom Prozesser angestoßen und sind somit perfekt um z.B importe durchzuführen.

Der Compiler frisst Pesourcen die bei einem simplen Import nicht nötig sind, und muss auch unnötige Bibliotheken laden...
Wieso sollen mit PHP keine Imports geschrieben werden? PHP ist nicht nur für HTML gedacht... PHP wird auch in anderen Bereichen eingesetzt.
Zum Beispiel baue ich BOT's mit PHP und kleine Plugins für Teamspeak ect. ....

Auch wenn du googlest wirst du sehen, das überwiegend Importe in Scriptsprachen geschrieben sind....
 
Werbung:
Was du schreibst, ist zu pauschal (und in dieser Pauschalität einfach nicht richtig). Außerdem verdrehst du irgendwie ständig Wörter oder implizierst Dinge, die nie gesagt wurden.

Sorry, aber ich habe auf die Weise keine Lust, da großartig inhaltlich zu argumentieren. Ich muss nur empfehlen, das, was du hier schreibst, nicht unbedingt für bare Münze zu nehmen.
 
Zuletzt bearbeitet:
Was du schreibst, ist zu pauschal (und in dieser Pauschalität einfach nicht richtig). Außerdem verdrehst du irgendwie ständig Wörter oder implizierst Dinge, die nie gesagt wurden.

Sorry, aber ich habe auf die Weise keine Lust, da großartig inhaltlich zu argumentieren. Ich muss nur empfehlen, das, was du hier schreibst, nicht unbedingt für bare Münze zu nehmen.

Mach was du willst.... aber insteresant wie du argumentierst, da du zB nicht erwähnt hast warum man keine Scripte nutzen soll. Da ich hier gesagt habe warum, das so ist ect. und von dir nur kommt das ist falsch, jedoch hier keine argumentation statt findet warum es falsch ist sondern nur "es ist falsch" geschrieben wird, scheint deine "argumentation (wie du das nennst)" keinen festen bestand hat und sich auf keine festen iditzien stützt. Somit scheint es mir, dass du es einfach nicht besser weißt.

Aber es ist sehr Interessant wie hier erklärt wird, dass man falsches Zeug erklärt, jedoch nicht wiederlegt wird, warum es falsch ist. Man muss in diesem Forum wohl alles hinnehmen wenn jemand sagt ist falsch? Da es hier keine Disscusion ist sondern bei dir eine tatsache scheint, die keine Beweise, Erklärung oder ähnliches erbringt, ist es in meinen Augen sinnlos sich mit dir zu unterhalten bzw. zu schreiben.
 
Zurück
Oben