ubuntuusers.de

DBASE-Dateien performant auslesen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

oliver1804

Anmeldungsdatum:
27. März 2006

Beiträge: 279

Wohnort: Elmshorn

Hallo Gemeinde,

ich benutze (unter Windoofs) das Kommandozeilentool odbc (www.spinellis.gr/sw/outwit/), um dbf-files auszulesen; ist auch soweit ganz zuverlässig, aber eben auch grottenlangsam, da ich >10.000 von diesen Dateien hab.

Ich hab ebenfalls mal dbfdump.bat (gehört zu einem Modul, das ich unter Perl verwende) benutzt, aber die Geschwindigkeit ist leider ebenfalls nicht berauschend.

Hat jemand einen Tipp für ein heißes Tool? GNU(Win) hat leider bezüglich dbf nix zu bieten. Wäre wichtig, daß das auch auf meinem Win-PC läuft.

Oliver

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17596

Wohnort: Berlin

Vielleicht ist das was für Dich: http://freshmeat.net/projects/jdbfview/
Allerdings nicht für memo-Felder geeignet (was immer das sein mag).

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Ich verstehe das Problem nicht. Lass die Kiste doch einfach eine Weile rödeln, wen stört's?

oliver1804

(Themenstarter)

Anmeldungsdatum:
27. März 2006

Beiträge: 279

Wohnort: Elmshorn

@ user unknown
ich suche ein Konsolenprogramm, das ich in mein awk-Skript einbinden kann - jdbfview ist aber ein GUI-Programm soweit ich das sehe
BTW: ich meine, diverse Male gelesen zu haben, daß es mit der Geschwindigkeit von Java-Applikationen nicht so dolle ist

@ Hello World
1. Da ich öfters (auch viele) dbf-Dateien zu Auswertungszwecken heranziehen muß, interessieren mich Verbesserungen zur bisherigen Vorgehensweise schon

2. Ungeduld

Ich hab mich auch mal mit http://dbf.berlios.de/ beschäftigt - das Teil ist wirklich rattenschnell, aber erfordert einige Nacharbeit des Ergebnisses, denn bei Ausgabe über STDOUT gibt es bspw. immer eine nervige Meldung, Character-Felder werden immer mit " ausgegeben und ich hab irgendwie ein flaues Gefühl was die Zuverlässigkeit des Ergebnisses angeht (nur ein unbestimmtes nicht näher begründbares Gefühl).

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

oliver1804 hat geschrieben:

BTW: ich meine, diverse Male gelesen zu haben, daß es mit der Geschwindigkeit von Java-Applikationen nicht so dolle ist

Das bischen Performanceeinbruch merkst du nicht. Java ist nicht langsam. Nein. Es ist vieles, aber nicht langsam 😀

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

oliver1804 hat geschrieben:

Ich hab mich auch mal mit http://dbf.berlios.de/ beschäftigt - das Teil ist wirklich rattenschnell, aber erfordert einige Nacharbeit des Ergebnisses, denn bei Ausgabe über STDOUT gibt es bspw. immer eine nervige Meldung, Character-Felder werden immer mit " ausgegeben und ich hab irgendwie ein flaues Gefühl was die Zuverlässigkeit des Ergebnisses angeht (nur ein unbestimmtes nicht näher begründbares Gefühl).

Das genannte Program generiert dir eine CSV Datei. Diese kannst du dann nutzen und weiter verarbeiten. In OpenOffice oder in eine Datenbank einfügen.

Vor allem die Option es in eine Datenbank einzufügen (z.B. SQLite) könnte die Bearbeitung schneller machen. Allerdiengs stellt sich eher die Frage ob sich der Aufwand lohnt und ob das umkopvertieren + in die DB einlesen und dann den Report erstelllen immer noch schneller ist, als es ganz einfach so zu belassen wie du es bisher schon getan hast.

oliver1804

(Themenstarter)

Anmeldungsdatum:
27. März 2006

Beiträge: 279

Wohnort: Elmshorn

@ Sid Burn
Die Daten werde ich tatsächlich in SQLite importieren, da sich die von mir mal auf 25 - 30 Mio geschätzte Satzanzahl so am besten bewältigen lassen dürfte - dann gibt's da natürlich noch ein paar weitere Tabellen, die dann entsprechend der gewünschten Ausgabe auf dem jeweiligen Aggregationsniveau verknüpft werden.

Ich gehe davon aus, daß auch Kreuztabellen, bei denen EXCEL bisher in die Knie gegangen ist so erstellbar sind - hab da 'nen ganz brauchbaren Artikel (http://rpbouman.blogspot.com/2005/10/creating-crosstabs-in-mysql.html) gefunden, der den Weg auch für SQLite aufzeigt, da dieses ebenfalls die Funktion group_concat() unterstützt.

BTW: hast Du (oder sonst jemand) 'ne Ahnung, wie ich den Import in SQLite per AWK-Skript bewältige? Hab bisher immer den speziellen Befehl des SQLite-Konsolenprogramms (.import "C:\\verzober\\verzunter\\datei.txt" table) verwendet.

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

Ganz einfach: Machs nicht in Awk!

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17596

Wohnort: Berlin

oliver1804 hat geschrieben:

@ user unknown
ich suche ein Konsolenprogramm, das ich in mein awk-Skript einbinden kann - jdbfview ist aber ein GUI-Programm soweit ich das sehe
BTW: ich meine, diverse Male gelesen zu haben, daß es mit der Geschwindigkeit von Java-Applikationen nicht so dolle ist

a) Ja müßtest Du umschreiben. Ob es sich lohnt, und die Geschwindigkeit gut oder nicht gut ist, kannst Du vielleicht vorab abschätzen.
b) Ich habe auch schon so manches gelesen.

Antworten |