Vorbereitung großer Datensätze für die Analyse

449
hatmatrix

Ich habe ein Fortran-Programm, das viele ASCII-Textdateien ausgibt. Dies ist ziemlich groß, um die Gesamtheit einer einzelnen Datei in gängige Datenanalyseprogramme (Matlab, R, SciPy) zu laden.

Ich denke, in der Scientific Computing Community ist es üblich, einen Teil dieser Daten mithilfe von Fortran, C, Perl oder Python zu extrahieren und diese in einer separaten flachen Textdatei oder netCDF (und in letzter Zeit auch HDF5) zur Verwendung zu speichern von einem anderen Programm. Programme wie R eignen sich jedoch sehr gut zum Abrufen von Daten aus einer SQL-Datenbank. In diesem Fall scheint Ausgabe -> SQLDB -> R eine gute Lösung zu sein (und wahrscheinlich auch SciPy).

Hat jemand eine Meinung dazu? Zunächst einmal ist das Erstellen einer separaten Zwischendatei unideal (scheint eine redundante Verwendung von Speicherplatz zu sein), aber unvermeidlich. Ich habe auch nicht gesehen, dass SQL-Datenbanken in der Scientific-Computing-Community häufig verwendet wurden, aber SQLite scheint für die Übertragung von Daten zwischen Programmen genauso geeignet zu sein wie HDF5, oder gibt es Nachteile? Danke für deine Kommentare.

0

1 Antwort auf die Frage

1
Spacedman

Kommt drauf an, wie Sie Ihre Big Data aufteilen werden. Wenn es sich bei Ihren Daten um eine N-dimensionale Tabelle handelt, ist netCDF eine gute Idee (insbesondere wenn es sich um 3D-Daten handelt), wenn Sie Scheiben in Ihren drei Dimensionen aufnehmen. Es ist nicht so gut für Abfragen, wie z. B. alle Werte von Z1 abrufen, bei denen Z2 größer als Z3 ist. Dann möchten Sie wahrscheinlich eine relationale Datenbank und sicherstellen, dass Sie einige Indizes richtig definieren. SQLite ist ein guter tragbarer Weg, dies zu tun, und es gibt Schnittstellen zu mindestens R und Python.