Pro und Contra verschiedener Datenbanken.

Hallo,

neben dem IPS eigennen Datenlogging benutze ich noch das Dugtool, leider funktioniert beim Dugtool der Datenbank Zugriff sehr langsam, was daran liegen könnte das meine DB schon 800 MB groß ist. Deshalb will ich auch eine andere DB wechseln, aber welche? -hier im Forum hört man ja so einiges, wie z.B MySql oder PostgreSQL, wo für sollte man sich entscheiden, die PostgreSQL wurde hier im Forum ja schon ganz gut erklärt und nach den Rückmeldungen auch von Anfängern zu bedienen und die Größe soll ja fast unbegrenzt sein, ist nur die Frage ob bei großen DB’s der Zugriff auch noch schnell ist.

Was würdet ihr tun?

Schöne Grüße
Thomas

Ich verwende MySQL Datenbanken, die sind ziemlich gut in PHP integriert und es gibt gute Verwaltungstools dafür (wobei ich mit der neuen MySQL Workbench nicht richtig warm werde, mir gefallen die MySQL Tools besser).

Die Community Edition ist kostenlos - obwohl die mal von mir 10000€ für ne Developer Lizenz haben wollten, da ich in ipsHomecontrol MySQL verwende. Nachdem ich dennen aber gesagt habe, das ich dann eben auf MSSQL aufsetze haben die mir dqnn aber mitgeteilt das ich dann doch keine Lizenz brauche (da die Software nicht ausschliesslich auf MySQL aufsetzt).

Sicherheitshalber habe ich aber den MySQL Server aus dem install rausgenommen und lassen den vom User selber downloaden und silent installieren sowie einrichten.

Seitdem an habe ich nichts mehr von dennen gehört.

Von dennen gibt es aber auch Enterpriseprodukte, welche gröstenteils die selben Produkte sind.

Auch kommen viele andere Produkte damit zurecht, z.B. Mediaportal, Dugtools, ipsHomecontrol usw. - so brauchst du dann weniger Datenbankprodukte parallel zu installieren.

Hallo Thomas,

willst Du was ganz neues aufsetzten, oder willst Du die DUGTools nur mit einer anderen DB betreiben ? Der Werner (wgreipl) und der Uwe (bmwm3) haben die DUGTools in Richtung MySQL gebracht. Ich habe es mir gerade auch nochmal angeschaut (Dank an Uwe). Die Performance wurde zwar besser, aber immer noch nicht so, wie ich es mir gewünscht hätte. Vom Design her schreiben die DUGTools alles in eine flache Tabelle, da können echte Datenbank einfach nicht glänzen.

Zur allgemeinen Datenbanksituation kann man sagen, entweder eine rein lokale Lösung wie SQLite oder auch nur CSV-Tabellen, oder eine Client-Server wie Postgres, MySQL (kostenfrei), MS-SQL, Oracle (kostenpfichtig). Ich schlage mich beruflich mit den Microsoft/Oracle-DBs rum, für das IPS-Hobby würde ich aber MySQL empfehlen. Das ist aber eine Glaubensfrage.

Über das Thema haben wir übrigens lange bei Rainer im IPS-Stammtisch in Nidda diskutiert (siehe Link).

Gruss
Bernd

Genau, von Werner (wgreipl) wußte ich das er Dugtools mit MySQL einsetzt (wußte aber nicht das die portierung von ihm und uwi kam :).

Meine Empfehlung geht in Richtung „Nicht Relationale Systeme“. Die Performance hierbei ist erheblich besser (min. 3x so schnell wie bei einer SQL-DB).

z.B.: MongoDB oder REDIS

Für beide Systeme gibt es Unterstützung für PHP.

Hallo khc,

mit REDIS hatte ich noch nichts zu tun, MongoDB ist meines Wissens eher für weniger strukturierte Daten geeignet. Zumindest ich schreibe dumme Messwerte in gleichbleibender Struktur meistens in Minutentakt in die DB und das können die relationalen DBs ganz gut.

Wir sollte hier aber keinen Glaubenskrieg anfangen. Die beste DB für IPS wird die sein, die von Steiner und paresy direkt integriert wird. Ich hätte zwar noch gerne einen Schwenk von SQLite nach MySQL oder Postgres, aber ich kann auch mit der jetzigen Lösung leben (wenn denn mal alle Befehle offen liegen, AC_GET* und Co).

Gruss
Bernd

Die beste DB für IPS wird die sein, die von Steiner und paresy direkt integriert wird.

Da kann ich Bernd nur zustimmen.
Alles was wir selber machen kann in Zukunft, funktionieren oder auch nicht:confused:

Hallo

Also ich frag mich viel mehr für was in alles in der Welt brauchst du ein 800MB Archiv ?
Wäre es nciht viel sinnvoller den alten Kram wegzuwerfen oder zumindest auf ein vernünftiges Maß zu reduzieren als nach einer schnelleren Datenbank zu suchen ?
Reduziere doch einfach die Sampledichte von alten Daten und es flutscht wieder.
Ansonsten kann ich es mir nicht verkneifen mein Liebkind RRD mal wieder anzupreisen.
Einmal genau nachdenken -> einrichten -> nie wieder volle Datenbank und gleichbleibende Performance.

greez
bb

ich denke, das sollte man nicht so pauschal abtun:

ich erzeuge aktuell pro Tag 5MB Daten in der SQLite. Macht im Jahr 1,8 GB Daten. Da ich u.A. sowohl Verbrauchsdaten als auch Wetterdaten aufzeichne kommt ein Wegwerfen der Daten nicht in Frage. Was allerdings Sinn mmachen würde ist ein selektives Verdichten der historischen Daten um die Datenmenge zu reduzieren. Allerdings suche ich hier noch nach einer Lösung.

Dito…aber ne Lösung habe ich auch noch nicht. Aber mal im Ernst was kostet heute 1 GB ??? und persönlich bin ich der Meinung das die Datenmengen und Abfragekonstellationen einem DBMS mit ein wenig RAM nur ein Müdes lächeln anfordern dürften…

… schon mal 2-3 Jahre in die Zukunft gedacht?
:wink:
warum soll sich IPS mit >5GB Daten rumschlagen wenn nur max. 0,5GB im Daily Doing benötigt werden (und der Rest nur hin und wieder mal)…

Aso…da war mein Post zu knapp.

Natürlich schlägt sich bei mir nicht IPS mit den Gigabytes rum sondern ein dedizierter DB-Server und der nimmt begierig alle Daten, nicht nur von IPS, entgegen…so bleibt IPS schön klein und handlich…

ja das ist natürlich was ganz anderes…:wink:

mal abgesehen davon das mir hier das knowhow fehlt - ich bin mir noch nicht sicher was am sinnvollsten ist: ich tendiere momentan zur kompletten Datenhaltung innerhalb IPS.
Ich schätze, spätestens Ende des Jahres werd ich mich damit auseinandersetzen müssen.
Wünschenswert wäre hier, wenn der Hersteller von Hause aus irgendwann eine Datenhistorisierung anbieten würde:D
Ich kann mir schon vorstellen, dass mit der Zeit mehr und mehr User in das „Problem“ laufen.

Diese Abhängigkeit vom Hersteller wollte ich mir ersparen. Zumal man so sehr einfach die Last vom IPS, für generierung von Graphen, Abfragen usw, fernhalten kann. Damit bleibt IPS auch bei umfangreichen Logging, Auswertungen und ähnlichem reaktionsschnell…

sehr interessante Argumente, aus der Sicht spricht einiges für eine externe Lösung.
Wie machst Du das prinzipiell?
exportierst Du selektiv Datensätze und löscht diese dann in IPS (per IPS-PHP-Script?)? Kannst Du das mal kurz skizzieren?

Ablauf folgt dem Trigger-Prinzip:

Ich habe ein Logging Script, das entweder alle 5 Minuten ( zum Beispiel für Temperaturen) oder per Wertänderung getriggert wird.

Dieses Script baut die Verbindung zur DB auf, schreibt die Werte in die Datenbank und schliesst die Verbindung wieder.

Für die zyklischen Werte, habe ich eine Konfigtabelle, aus der die Instanzen-Ids, die geloggt werden sollen, ausgelesen werden.

prima, soweit verstanden.
zum obigen Satz hab ich noch Verständnisfragen:

holt es die Werte aus der IPS-SQLite oder greifst Du den Wert direkt aus der Variable ab? -> wie gehst Du mit den in der IPS-DB gespeicherten Werten um -> werden die nicht gelöscht?

->holt es die Werte aus der IPS-SQLite oder greifst Du den Wert direkt aus der Variable ab?

Die Werte werden direkt ausgelesen…

-> wie gehst Du mit den in der IPS-DB gespeicherten Werten um -> werden die nicht gelöscht?

Ich habe von Anfang an das IPS-Logging nicht aktiviert, daher auch keine Wert in der IPS_DB

yes, verstanden, dann iss aber auch nix mit Visualisieren in IPS (mit Bordmitteln)…hm…:confused:

nope…das muss man dann mit den bekannten Tools machen …z.B. GoogleChart