Forum: Mikrocontroller und Digitale Elektronik sehr große Datenmengen


von Großes F. (112)


Lesenswert?

Hallo allerseits,

ich habe folgendes Problem:

Ich nehme eine sehr serh große Menge Daten über einen sehr langen 
Zeitraum auf.
Dabei handelt es sich um Leistungsdaten.

Nun möchte ich den Gesamtverbrauch nach einer Messzeit von z.B. 60 
Minuten ermitteln.
Es werden pro Sekunde 10k Werte aufgenommen. Nach einer Stunde sind also 
bereits 36 Millionen Werte vorhanden... und ggf. soll der Testlauf einen 
Tag oder länger dauern.

Die Gesamtleistung erhalte ich durch schlichte Addition der gesamten 
Werte... Problem ist nur die unglaubblich hohe Datenmenge...

Excel kann nur 65.000 Stück, ab Version 2007 nur 1,3Millionen Werte 
verarbeiten.

Welche Alternativen Möglichkeiten habe ich diese Megnen an Daten zu 
addieren?

macht Matlab dies mit oder meckert es, wenn ich dort einen 1x1G Vektor 
reingebe und von diesem den Betrag ermittel?

Achja... die daten liegen in einem Textfile vor.

von Alfred (Gast)


Lesenswert?

Hallo,

Du könntest die Daten in ein RDBMS einlesen und dann die Datenbank 
rechnen lassen.
Wenn Du einer Scriptsprache (Perl, Ruby, Python o.ä.) mächtig bist, 
lässt sich das in einer Stunde realisieren.

Beste Grüße

Alfred

von Floh (Gast)


Lesenswert?

Großes Fragezeichen schrieb:
> macht Matlab dies mit oder meckert es, wenn ich dort einen 1x1G Vektor
> reingebe und von diesem den Betrag ermittel?

Test es aus.
Ansonsten vielleicht noch was selbstgeschriebenes :-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du willst also nur alle Werte addieren? Dann könntest Du Dir in einer 
beliebigen Programmiersprache folgenden hochkomplexen Algorithmus 
zusammenbasteln:

summe = 0
öffne datei
für jede zeile in datei
   bestimme wert in zeile
   summe = summe + wert

schließe datei
summe ausgeben


Alternativ könnte man darüber nachdenken, ob nicht eventuell das Ding, 
das die Werte liefert, auch die Summierung übernehmen könnte. Statt 
10kWerte pro Sekunde in eine Datei zu schreiben, dürfte es erheblich 
einfacher sein, diese Werte einfach nur zu addieren und die Summe in 
eine Datei zu schreiben.

von Kevin K. (nemon) Benutzerseite


Lesenswert?

Matlab kann das, solange dein PC genügend Speicher hat (64Bit ggf. 
benötigt).
Evtl. kannst du die Daten ja schon eher komprimieren, indem du 10k Werte 
aufaddierst und nur jede Sekunde speicherst.

von Freddy (Gast)


Lesenswert?

-> DIADEM !?

alternativ: schon mal über sinnvolles (Mess-)Datenmanagement nachgedacht 
? (10000 Werte/s ist schon verdammt viel !)

Aber DIADEM kann das  [[ http://www.ni.com/diadem/d/  ]]

von J.-u. G. (juwe)


Lesenswert?

Großes Fragezeichen schrieb:
> Achja... die daten liegen in einem Textfile vor.

Immer nur eine Wert pro Rechenschritt einlesen und zum bisherigen 
Ergebnis addieren.

Abgesehen davon klingt es für mich unplausibel 10k Werte pro Sekunde zu 
benötigen, um den Verbrauch nach 60min zu ermitteln.

Mit Mikrocontrollern hat das Ganze auch nicht viel zu tun.

von ich (Gast)


Lesenswert?

Ich würde an deiner Stelle auch beim Messen schon addieren. Spart auch 
Platz bzw. Man kann die Werte addieren und jede Minute oder so über USB 
an den PC senden (oder halt auf einer SD-Karte speichern). Allerdings 
frag ich mich auch, wozu du eine Stunde (oder später dann länger) jede 
100µs ein Wert brauchst. Würde mich mal interessieren. Manchmal kann man 
auch an einer anderen Stelle helfen/Probleme lösen.

von Ben _. (burning_silicon)


Lesenswert?

also bei solch großen datenmengen halte ich es für sinnvoll bestimmte 
oft benutzte werte in echtzeit zu erzeugen und zusätzlich in der 
datenbank zu speichern, obwohl man sie jederzeit aus den bereits 
vorhandenen daten berechnen könnte.

z.b. durchschnittswerte für jede minute oder 30 sekunden sind recht 
einfach zu handhaben und damit kriegst du eine schnellen überblick ohne 
großes rechnen hin. wenn du einen bestimmten bereich dann genauer willst 
kannst du die "fraglichen minuten" aus der datenbank genauer auflösen. 
das sind dann wieder überschaubare datenmengen und geht bei bedarf sehr 
schnell.

von Erich (Gast)


Lesenswert?

Aha, die Fortsetzung des Problems
> Beitrag "Leistungsmessung"

Ich würde immer noch einen simplen Energiezähler verwenden anstatt 
kompliziert 36 Mio. Messwerte (!) aufzunehmen...

Gruss

von ... (Gast)


Lesenswert?

Moin

bei der summe an zahlen, die da addiert werden sollen, spielen zumindest 
der zahlenbereich eine rolle, und ggf additionsverfahren wenn es dan 
flote werden sollte (supbtraktionskatastrophe).

ggf im controller die zahlen schon aufsummieren und in einer sepparaten 
datei ablegen. ggf noch ein paar statistik daten wie min / max oder 
ähnliches.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.