Ankündigung

Einklappen
Keine Ankündigung bisher.

Temperatur logging - JSON vs SQLITE für aufbereitung web & highcharts

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Temperatur logging - JSON vs SQLITE für aufbereitung web & highcharts

    Hallo Spezialisten,

    ich bin Anfänger was Linux +Programmierung betrifft, hab aber während meines verregneten Urlaubes schon einiges geschafft.

    IST-situation:

    - Ein BeagleBoneBlack (BBB) installiert mit Debian (hängt im LAN Netzerk)
    - Ein python script liefert mir von meiner Heizungssteuerung alle 5 Minuten ein JSON-file mit Temperatur- und Pumpenleistungsdaten.
    - Da von diesem file ca. 40 Messwerte übermittelt werdem, jedoch nur ca. 10 relevant sind erzeugt ein weiteres Pythonskript ein abgespecktes, vereinfachtes JSON file mit den aktuellen Messwerten = ACTUALS.JSON
    - das Format ist beispielsweise {"zeit":"2014 09 15 11:00","temp1":23.2,"temp2":32.8}
    - dasselbe script schreibt diese Werte alle 5 minuten in ein - dsagen wir mal - master file mit allen daten = LOG.JSON
    - das Format ist dann analog dazu zB.:
    {"zeit":"2014 09 15 11:00","temp1":23.2,"temp2":32.3}
    {"zeit":"2014 09 15 11:05","temp1":24.4,"temp2":38.0}

    SO, nun zu den Fragen:
    - Grundsätzlich: ich möchte die Daten in zukunft mit Highcharts grafisch darstellen
    - Ratet Ihr die logging Daten in LOG.JSON zu lassen (file wird halt immer größer, alle 5 minuten am ende eine Zeile hinzugefügt) oder würdet ihr hier schon zu einer SQLITE Datenbank raten?
    - im 2ten Fall müsste ich durch ein script einfach die ACTUALS.JSON in die Datenbank aufnehmen - jede 5 minuten

    Ich habe es bereits geschafft mir mittels php die ACTUALS.JSON daten auf einer websit darstellen zu lassen.

    Die Frage wird sein:
    - SQLITE vs JSON: mit welcher methode bin ich im anschluss flexibler wenn es um das aufbereiten der Daten für Diagramme - in meinem Fall highcharts - geht?
    - Szenario zb: Grafik über temperaturverlauf der letzten 12 Monate => hier genügt ja zb die durchschnittstemperatur jedes tages oder tag/nacht -> die verarbeitung aller daten des 5 min intervalls wäre ziemlcher overkill.
    - ist das einfacher und performanter mit SQLITE zu erledigen?
    - habe ich durch SQLITE andere Vorteile?

    Danke
    im Voraus
    Virus


  • #2
    ich halte eine datei wie du sie beschreibst, als anhäufung von jsons, nicht zwingend braucb´hbar, zum archivieren von daten.

    Kommentar


    • #3
      - Ratet Ihr die logging Daten in LOG.JSON zu lassen (file wird halt immer größer, alle 5 minuten am ende eine Zeile hinzugefügt) oder würdet ihr hier schon zu einer SQLITE Datenbank raten?
      Warum keine "echte" Datenbank? Ansonsten SQLite, über json-Formatierte "Textdateien" auszuwerten halte ich persönlich für nicht wirklich sinnvoll. Ich denke du wirst es bereuen wenn du das über json-files machst.
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        ok, also tendenz richtung datenbank.

        was versteht ihr unter "echten" DB?

        bin nur deshalb auf sqlite gekommen weil es in diversen foren und berichten gerne genommen wird - ich denke eventuell für anfänger und simple datenbanken (wie die meine) besser geeignet und ressourcenschonend ist...

        welche alternativen gäbe es?

        muss mir dann ein script zusammenstöpseln, das die werte meiner json-datei periodisch in die datenbank schreibt

        Kommentar


        • #5
          was versteht ihr unter "echten" DB?
          MySQL, PostgreSQL etc.. Zumindest MySQL hat man relativ bald mal bei einem Webhosting dabei und das Ding kann schon ganz gut was.

          welche alternativen gäbe es?
          Eigentlich ist es eher so, das SQLite eine Alternative zu denen oben ist, wenn man keine solche zur Verfügung hat oder es wirklich nur um ganz geringe Datenmengen geht.

          Schau selbst, dazu gibt es massig Lesestoff: https://www.digitalocean.com/communi...gement-systems

          Und wenn das hier der User akretschmer liest, wird er dir sagen, das MySQL keine "echte" DB ist. Das zu bewerten ist aber nicht Thema hier
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Wenn du die Daten sowieso schon mehrmals mit Python anfasst, warum generierst du die Charts nicht nur? Kannst doch gleich ein json erstellen, dass highcharts versteht?
            Tutorials zum Thema Technik:
            https://pilabor.com
            https://www.fynder.de

            Kommentar


            • #7
              SQLite reicht dafür vollkommen aus. Im gegensatz zu JSON hast du mit SQL ebend schon analytische Funktionen, kannst gezielt Datensätze auslesen und gruppieren. Eine "echte" Datenbank brauchst du dafür aber nicht und wenn es dann doch zuviel wird kannst du immer noch wechseln.
              Alternativ kannst du dir auch mal RRDtools anschauen. Das ist ein Programm was exakt für solche Probleme gemacht ist und damit hoch effektiv. Problem dabei ist die flexibilität fehlt. Du legst dich einmalig fest was für Daten du wie Speicher willst und das wars. Wenn dir nach einem Jahr einfällt "neh rrdtools ist nix für mich" bekommst du deine Daten da nicht mehr Orginal raus. Das Programm basiert drauft Daten zu verdichten.

              Kommentar


              • #8
                Zitat von erc Beitrag anzeigen
                SQLite reicht dafür vollkommen aus. Im gegensatz zu JSON hast du mit SQL ebend schon analytische Funktionen, kannst gezielt Datensätze auslesen und gruppieren. Eine "echte" Datenbank brauchst du dafür aber nicht und wenn es dann doch zuviel wird kannst du immer noch wechseln.
                100% Zustimmung. Wenn dann noch PDO genutzt wird, wird eine späterer Wechsel erleichtert.
                Bei entsprechender Namensgebung der JSON-Dateien müssen diese auch nicht unbedingt alle x-Minuten in die Datenbank geschaufelt werden. Das kann auch vor einer Charterstellung erfolgen, sofern die dadurch bedingte Verzögerung hinnehmbar ist.
                PHP-Klassen auf github

                Kommentar

                Lädt...
                X