Announcement

Collapse
No announcement yet.

Telemetriesystem - DB Design?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Telemetriesystem - DB Design?

    Hi,

    ich arbeite gerade an einem Telemetriesystem, d.h. eine gewisse Anzahl mobiler Endgeräte übermittelt laufend Daten an eine Datenbank. Pro Endgerät kommen täglich ca. 500 Datensätze herein, die in eine mySQL DB geschrieben werden. Die Anzahl der Endgeräte ist theoretisch unbegrenzt, vermutlich werden pro Server 500-1000 Endgeräte verwaltet werden.
    Bisher ist es so, dass sämtliche Daten in die gleiche Tabelle geschrieben werden. Bei 500 Endgeräten wären dies an die 250000 Datensätze pro Tag. Somit würde sich die Tabelle recht schnell aufblasen.
    Jetzt ist meine Überlegung dahingehend, dass pro Gerät eine eigene Tabelle angelegt wird. Der Name der Tabelle würde dann der eindeutigen ID des jeweiligen Gerätes entsprechen (dies ist eine mehrstellige Zahl). Würde dies Sinn machen? Anstatt einer grossen Tabelle hätte ich somit viele kleinere Tabellen in der Datenbank.
    Oder sind Abfragen aus mySQL Datenbanken extrem optimiert, sodass auch eine Tabelle mit mehreren Millionen Einträgen relativ schnell (d.h. innerhalb weniger Sekunden) abgearbeitet werden können? (Der Server ist im Moment ein Standard PC, 2GHz, 1GB RAM - bevor ich die Hardware optimiere möchte ich jedenfalls mit einem optimierten DB-Design arbeiten!)

    Gruss magu

  • #2
    Hallo magu,
    Originally posted by magu View Post
    ...Jetzt ist meine Überlegung dahingehend, dass pro Gerät eine eigene Tabelle angelegt wird. Der Name der Tabelle würde dann der eindeutigen ID des jeweiligen Gerätes entsprechen (dies ist eine mehrstellige Zahl). Würde dies Sinn machen?
    Eindeutige Antwort: Nein!
    Die so aufgesplitteten Daten könntest du nie wieder vernünftig abfragen! Irgendwann kommt jemand auf die Idee und möchte die Daten aller Geräte haben die an einem bestimmten Tag eingetragen wurden. Viel Spaß beim JOIN über 500-1000 Tabellen!
    Bei dem erwarteten Datenaufkommen würde ich viel eher die Frage in den Raum stellen ob hier MySQL auf einem Standard-PC die erste Wahl ist. Sind da wirklich alle Fragen hinsichtlich Transaktions- und Datensicherheit geklärt?
    Ich möchte vorsichtig bezweifeln das ein Standard-PC mit MySQL und 1GB RAM in der Lage ist kontinuierlich 6 Inserts je Sekunde abzuarbeiten.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Oder sind Abfragen aus mySQL Datenbanken extrem optimiert, sodass auch eine Tabelle mit mehreren Millionen Einträgen relativ schnell (d.h. innerhalb weniger Sekunden) abgearbeitet werden können?
      Dafür würden Datenbanken geschrieben. Was sind schon ein paar Millionen einträge? Das Stichwort heißt hier Index. Ich würde dir aber raten, dich mit der Datenbank deiner Wahl zu beschäftigen. Also Transkationsverhalten, interne Funktionsweise, Backup Recovery (ganz ganz wichtig) etc.

      Ich möchte vorsichtig bezweifeln das ein Standard-PC mit MySQL und 1GB RAM in der Lage ist kontinuierlich 6 Inserts je Sekunde abzuarbeiten.
      Oh ja 6 Inserts pro Sekunde für eine CPU die Millionen Instruktionen pro Sekunde durchführen und eine Platte die zig MB pro Sekunde lesen und schreiben kann, da sind 6 Inserts eine echte Herausforderung.

      Bei einem Standard PC würd ich nur einwerfen, dass die Komponenten nicht für 24/7 Betrieb ausgelegt sind.

      Dim
      Zitat Tom Kyte:
      I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

      Comment


      • #4
        super, vielen Dank für die schnellen Antworten! (Im Übrigen erspart mir das Beibehalten des momentanen Designs eine Menge Arbeit, natürlich ganz abgesehen von den Abfragemöglichkeiten, die "Falk Prüfer" erwähnt hat...)

        Der Standard-PC ist erst mal eine Übergangslösung zum Testen und solange das Datenaufkommen noch nicht wirklich hoch ist. Später wirds dann sicher mal ein Server werden falls sich mit dieser Lösung überhaupt Kunden aquirieren lassen... ;-)

        Gruss, magu

        Comment

        Working...
        X