SQLite oder flache Textdatei?

8

Ich verarbeite viele Texte / Daten, die ich zwischen Python, R und manchmal Matlab tausche.

Mein Einstiegspunkt ist die flache Textdatei, aber ich verwende auch gelegentlich SQLite, um die Daten und den Zugriff von jedem Programm zu speichern (nicht jedoch Matlab). Ich verwende GROUPBY, AVG, etc. in SQL nicht so viel wie ich diese Operationen in R mache, deshalb benötige ich nicht unbedingt die Datenbankoperationen.

Für solche Anwendungen, die den Austausch von Daten zwischen Programmen erfordern, um verfügbare Bibliotheken in jeder Sprache zu verwenden, gibt es eine gute Faustregel, welches Datenaustauschformat / welche Methode zu verwenden ist (selbst XML oder NetCDF oder HDF5)?

Ich weiß zwischen Python - & gt; R gibt es rpy oder rpy2, aber ich habe mich über diese Frage in einem allgemeineren Sinne gefragt - ich benutze viele Computer, die alle nicht rpy2 haben und auch ein paar andere Teile wissenschaftlicher Analysesoftware benutzen, die zu verschiedenen Zeiten Zugriff auf die Daten benötigen (Die Phasen der Verarbeitung und Analyse sind ebenfalls getrennt).

    
hatmatrix 06.03.2010, 09:30
quelle

2 Antworten

15

Wenn alle Sprachen SQLite unterstützen, verwenden Sie sie. Die Leistungsfähigkeit von SQL ist momentan vielleicht nicht nützlich, aber es wird wahrscheinlich irgendwann sein und es erspart Ihnen, Dinge später neu schreiben zu müssen, wenn Sie entscheiden, dass Sie Ihre Daten komplizierter abfragen wollen.

SQLite wird wahrscheinlich auch wesentlich schneller sein, wenn Sie nur auf bestimmte Datenmengen in Ihrem Datenspeicher zugreifen wollen - da dies mit einer flachen Textdatei eine Herausforderung darstellt, ohne die ganze Datei zu lesen (obwohl es nicht unmöglich ist).

    
Dominic Rodger 06.03.2010, 09:35
quelle
5

Eine flache Textdatei (z. B. im CSV-Format) wäre die portabelste Lösung. Fast jedes Programm / jede Bibliothek kann mit diesem Format arbeiten: R und Python haben eine gute CSV-Unterstützung und wenn Ihr Datensatz nicht zu groß ist, können Sie das CSV auch für kleinere Aufgaben in Excel importieren.

Textdateien sind jedoch für größere Datenmengen unhandlich, da Sie sie für fast alle Operationen vollständig lesen müssen (abhängig von der Struktur Ihrer Daten).

SQLite erlaubt Ihnen, die Daten sehr leicht zu filtern (auch ohne viel SQL-Experten) und wie Sie bereits erwähnt einige Berechnungen selbst durchführen können (AVG, SUM, ...). Mit dem Firefox Plug-in SQLiteManager können Sie mit der Datenbank auf jedem Computer ohne Installation / Konfigurationsfehler und somit einfach verwalten Sie Ihre Daten (Import / Export, Filter).

Ich würde daher empfehlen, SQLite für größere Datenmengen zu verwenden, die viel Filterung benötigen, um die benötigten Daten zu extrahieren. Für kleinere Datensätze oder wenn Sie keine Teilmengen Ihrer Daten auswählen müssen, sollte eine flache (CSV) Textdatei in Ordnung sein.

    
wierob 06.03.2010 10:19
quelle

Tags und Links