10 Stimmen

Effizientes Verfahren zur Analyse großer Datenmengen?

Ich muss Zehntausende von Datenzeilen analysieren. Die Daten werden aus einer Textdatei importiert. Jede Datenzeile hat acht Variablen. Derzeit verwende ich eine Klasse, um die Datenstruktur zu definieren. Während ich die Textdatei lese, speichere ich jedes Zeilenobjekt in einer generischen Liste, List.

Ich frage mich, ob ich zu einer relationalen Datenbank (SQL) wechseln sollte, da ich die Daten in jeder Textzeile analysieren und versuchen muss, sie mit Definitionsbegriffen in Beziehung zu setzen, die ich derzeit ebenfalls in allgemeinen Listen (List) speichere.

Ziel ist es, eine große Menge an Daten anhand von Definitionen zu übersetzen. Die definierten Daten sollen filterbar, durchsuchbar usw. sein. Mit einer Datenbank macht mehr Sinn, je mehr ich darüber nachdenke, aber ich möchte mit mehr erfahrenen Entwicklern bestätigen, bevor ich die Änderungen vornehmen, noch einmal (ich war mit structs und Array-Listen auf den ersten).

Der einzige Nachteil, den ich mir vorstellen kann, ist, dass die Daten nicht gespeichert werden müssen, nachdem sie übersetzt und vom Benutzer angesehen wurden. Es besteht keine Notwendigkeit für eine dauerhafte Speicherung der Daten, daher könnte die Verwendung einer Datenbank ein wenig übertrieben sein.

0voto

Hei Punkte 87

Wenn Sie nur suchen und ersetzen müssen, können Sie sed und awk verwenden, und Sie können mit grep suchen. Natürlich auf einer Unix-Plattform.

0voto

Codism Punkte 5432

Nach Ihrer Beschreibung denke ich, dass Linux-Befehlszeilen-Tools Ihre Daten sehr gut verarbeiten können. Die Verwendung einer Datenbank könnte Ihre Arbeit unnötig erschweren. Wenn Sie Windows verwenden, sind diese Tools auch über andere Wege verfügbar. Ich würde cygwin empfehlen. Die folgenden Tools können Ihre Aufgabe abdecken: sort, grep, cut, awk, sed, join, paste.

Diese Unix/Linux-Befehlszeilen-Tools mögen für Windows-Anwender beängstigend wirken, aber es gibt Gründe, warum sie von vielen Menschen geliebt werden. Nachfolgend sind meine Gründe für ihre Beliebtheit aufgeführt:

  1. Sie ermöglichen es Ihnen, Ihre Fähigkeiten zu erweitern - Ihr Wissen über ein bestimmtes Werkzeug kann bei verschiedenen zukünftigen Aufgaben hilfreich sein.
  2. Sie ermöglichen es Ihnen, Ihre Bemühungen zu akkumulieren - die Befehlszeile (oder Skripte), die Sie zur Erledigung der Aufgabe verwendet haben, kann so oft wie nötig mit anderen Daten wiederholt werden, ohne dass ein Mensch eingreifen muss.
  3. Sie sind in der Regel leistungsfähiger als das gleiche Tool, das Sie schreiben können. Wenn Sie es nicht glauben, versuchen Sie, mit Ihrer Version für Terabyte-Dateien zu schlagen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X