Hallo zusammen,
Ich bin neu in diesem Forum und habe vor einiger Zeit angefangen mich intensiv mit Java zu beschäftigen.
ich habe nun folgendes Problem...
ich muss eine große Datenmenge (ca. 80mb und ca. 400000 Zeilen mit 30 Feldern) aus einer CSV-Datei Analysieren. Dabei ist es wichtig die Daten vorher zu sortieren.
Um das zu realisieren wollte ich die Daten in einer eingebetteten Datenbank (HSQLDB Standalone Modus) übertragen.
Bei etwa 30% (ca. 150000 Zeilen und 30mb) wird das Programm extrem langsam und hangelt sich von einem Prozent zum anderen im Minutentakt.
(auch ein schließen und erneutes öffnen der Datenbank nach allen 10% half mir da nicht weiter...)
Wenn ich das Programm abbreche sind die Daten noch in der Datenbank gespeichert.
Versuche ich nun die Daten weiter drauf zuspielen (die nächsten 30% meinetwegen) , geht es von anfang an genauso langsam weiter.
Von daher denke ich, dass es an der Größe der Datenbank liegt, da er die Datei hsqldb.script in den speicher lädt und dieser nun schon voll ist.
(verbessert mich bitte falls ich da falsch liege)
Gibt es vielleicht eine Möglichkeit den Speicher zu leeren ohne die Datei schließen zu müssen und die Dateien einfach hinten ranzuhängen?
Und würde es dann auch mit dem sortieren noch funktionieren?
Oder kennt jemand eine elegantere Lösung für mein Problem!
Vielleicht ein anderes Embedded System?
Eine Möglichkeit dachte ich mir wäre noch XML mit Stax oder Sax aber würde da das Auswerten der Datengruppen (die ich bilden muss) nicht zu Zeitintensiv bei den Datenmengen?
Als letzten Ausweg könnte ich mir höchstens ein externes Datenbanksystem a la MySQL vorstellen, würde aber eigentlich lieber ein im Programm integriertes System haben wollen...
Ich bin wirklich für jede Hilfe dankbar....
Viele Grüße
Plopp
Ich bin neu in diesem Forum und habe vor einiger Zeit angefangen mich intensiv mit Java zu beschäftigen.
ich habe nun folgendes Problem...
ich muss eine große Datenmenge (ca. 80mb und ca. 400000 Zeilen mit 30 Feldern) aus einer CSV-Datei Analysieren. Dabei ist es wichtig die Daten vorher zu sortieren.
Um das zu realisieren wollte ich die Daten in einer eingebetteten Datenbank (HSQLDB Standalone Modus) übertragen.
Bei etwa 30% (ca. 150000 Zeilen und 30mb) wird das Programm extrem langsam und hangelt sich von einem Prozent zum anderen im Minutentakt.
(auch ein schließen und erneutes öffnen der Datenbank nach allen 10% half mir da nicht weiter...)
Wenn ich das Programm abbreche sind die Daten noch in der Datenbank gespeichert.
Versuche ich nun die Daten weiter drauf zuspielen (die nächsten 30% meinetwegen) , geht es von anfang an genauso langsam weiter.
Von daher denke ich, dass es an der Größe der Datenbank liegt, da er die Datei hsqldb.script in den speicher lädt und dieser nun schon voll ist.
(verbessert mich bitte falls ich da falsch liege)
Gibt es vielleicht eine Möglichkeit den Speicher zu leeren ohne die Datei schließen zu müssen und die Dateien einfach hinten ranzuhängen?
Und würde es dann auch mit dem sortieren noch funktionieren?
Oder kennt jemand eine elegantere Lösung für mein Problem!
Vielleicht ein anderes Embedded System?
Eine Möglichkeit dachte ich mir wäre noch XML mit Stax oder Sax aber würde da das Auswerten der Datengruppen (die ich bilden muss) nicht zu Zeitintensiv bei den Datenmengen?
Als letzten Ausweg könnte ich mir höchstens ein externes Datenbanksystem a la MySQL vorstellen, würde aber eigentlich lieber ein im Programm integriertes System haben wollen...
Ich bin wirklich für jede Hilfe dankbar....
Viele Grüße
Plopp