NEWS
Datenbank - welche ?
-
@arteck sagte in Datenbank - welche ?:
na womit kommst DU besser klar
Ich denke das ist proxmox. Bisher habe ich als vm oder lxc iob, raspberrymatic, motioneye
@arteck sagte in Datenbank - welche ?:
es bringt nix wenn dir jemand was aufsetzt
Will ich ja auch nicht.
Wollte nur wissen was ihr aufgrund Erfahrung nutzt. Um dies dann selber nachzustellen.
Bringt ja niix wenn ich 3 Datenbanken ausprobiere und ihr dann sagt: die hätte ich nicht genommen.
Deshalb ja die Frage.@bahnuhr sagte in Datenbank - welche ?:
Wollte nur wissen was ihr aufgrund Erfahrung nutzt. Um dies dann selber nachzustellen.
Erfahrung : Proxmox, HA, 5 Nodes, LXC, redis/redis mit sentinel
als DB: influxdb da ich aber nicht Sammelwütig bin .. max 2 Jahre vorhaltedauer
das ist aber sehr speziell.. die meisten werden einen Node mit lxc und oder vm haben..
-
Als ernsthafte Optionen gibt es meiner Meinung nach nur (My)SQL und InfluxDB für das Datenspeichern mit ioBroker.
InfluxDB verwende ich nur weil es einfacher ist in Grafana zu verwenden.
Klarer Nachteil von InfluxDB ist der Speicher bedarf, wenn man viel und lange Daten sammelt braucht es sehr viel Festplattenspeicher.
Das muss man im Blick behalten sonst hat man schnell ein Problem.
MySQL belegt erheblich weniger Festplattenspeicher.Sonst hab ich im Realbetrieb bisher keine Unterschiede fest gestellt die für/gegen das eine oder das andere Sprechen.
-
Als ernsthafte Optionen gibt es meiner Meinung nach nur (My)SQL und InfluxDB für das Datenspeichern mit ioBroker.
InfluxDB verwende ich nur weil es einfacher ist in Grafana zu verwenden.
Klarer Nachteil von InfluxDB ist der Speicher bedarf, wenn man viel und lange Daten sammelt braucht es sehr viel Festplattenspeicher.
Das muss man im Blick behalten sonst hat man schnell ein Problem.
MySQL belegt erheblich weniger Festplattenspeicher.Sonst hab ich im Realbetrieb bisher keine Unterschiede fest gestellt die für/gegen das eine oder das andere Sprechen.
@jey-cee
Danke, ich schau mit mysql mal an. -
Am Ende ist die Frage so ein bissl was du damit ein willst. Influxdb ist halt optimiert (aber dadurch auch bissl limitiert) auf zeitreihendaten wie wir sie hier haben. Daher kann viel auch für Statistiken an die dB ausgelagert werden (min/Max/percentile und sowas).
SQL dagegen ist generischer und man kann die Daten ggf. Einfacher noch selbst verwerten aber aggregationen müssen ggf vom adapter gemacht werden.In Grafana geht influxdb einfacher zu nutzen.
Am Ende geht beides. ;-)
-
Am Ende ist die Frage so ein bissl was du damit ein willst. Influxdb ist halt optimiert (aber dadurch auch bissl limitiert) auf zeitreihendaten wie wir sie hier haben. Daher kann viel auch für Statistiken an die dB ausgelagert werden (min/Max/percentile und sowas).
SQL dagegen ist generischer und man kann die Daten ggf. Einfacher noch selbst verwerten aber aggregationen müssen ggf vom adapter gemacht werden.In Grafana geht influxdb einfacher zu nutzen.
Am Ende geht beides. ;-)
Auch danke für deine Info.
Ich habe mir jetzt mal mariadb als lxc auf proxmox installiert.
Mal schauen wie dies nun funktioniert.Danke an alle für die Infos
-
Ist MariaDB nicht ein Open-Source fork von SQL?
Meine das mal gelesen zu haben.Dann ist es ja nicht so der riesen Unterschied zu der alten DB?
(Ich selber nutze MariaDB und bin sehr zufrieden. Per adaoklappt alles super, auch abfragen über JS klappen gut)
-
Ist MariaDB nicht ein Open-Source fork von SQL?
Meine das mal gelesen zu haben.Dann ist es ja nicht so der riesen Unterschied zu der alten DB?
(Ich selber nutze MariaDB und bin sehr zufrieden. Per adaoklappt alles super, auch abfragen über JS klappen gut)
-
Ist MariaDB nicht ein Open-Source fork von SQL?
Meine das mal gelesen zu haben.Dann ist es ja nicht so der riesen Unterschied zu der alten DB?
(Ich selber nutze MariaDB und bin sehr zufrieden. Per adaoklappt alles super, auch abfragen über JS klappen gut)
@david-g sagte in Datenbank - welche ?:
auch abfragen über JS klappen gut)
zeig doch mal ein paar scripte (für mich als Muster)
-
@david-g sagte in Datenbank - welche ?:
Ist MariaDB nicht ein Open-Source fork von SQL?
Es ist eine Abspaltung von MySQL.
@jey-cee sagte in Datenbank - welche ?:
@david-g sagte in Datenbank - welche ?:
Ist MariaDB nicht ein Open-Source fork von SQL?Es ist eine Abspaltung von MySQL.
Es ist sogar vom selben Entwickler wie MySQL 😉☺️. Und MariaDB ist zu 100% kompatibel 👌.
-
@david-g sagte in Datenbank - welche ?:
auch abfragen über JS klappen gut)
zeig doch mal ein paar scripte (für mich als Muster)
@bahnuhr sagte in Datenbank - welche ?:
@david-g sagte in Datenbank - welche ?:
auch abfragen über JS klappen gut)
zeig doch mal ein paar scripte (für mich als Muster)
Habe immer eine Blockly / JS kombination. Bei dem JS-Teil habe ich mir immer Hilfe im Forum geholt.
- 1
Hier schreibe ich Werte in die DB mit eigenem Zeitstempel:

Inhalt der Funktion:
{ let statement = ` REPLACE INTO iobroker.ts_number (id, ts, val, ack, _from, q) VALUES ((SELECT id FROM iobroker.datapoints WHERE name = "${id}"), ${ts}, ${value}, ${ack}, ${from}, ${q}) ` sendTo("sql.0", "query", statement, e => { if (e && e.error) { log(e.error) } else { // log("Done!") } }) }- 2
Hier lese ich die Werte eines definierten Zeitraumes aus und schreibe eine JSON (geht auch einfacher, aber die JSON für eCharts braucht immer noch das val und ts).

Inhalt der Funktion:getHistory('sql.0', { id: dp, start: start, end: stop2, // aggregate: 'm4', timeout: 2000 }, function (err, result) { if (err) console.error(err); if (result) Liste = result; });- 3
Und dieses Skript sagt mir ob es sich lohnt zu tanken. Es lohnt sich, falls es in den letzte 3 Tagen keinen besseren Preis gab.

Inhalt der Funktion:on({id: "iot.0.services.custom_tanken", change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; var end = new Date().getTime(); getHistory('sql.0', { id: dp_benzinart_short, start: end - (1000 * 60 * 60 * 24 * 3), end: end, // step: 1000*60*60*24, ignoreNull: true, aggregate: 'none', timeout: 2000 }, function (err, result) { if (err) console.error(err); if (result) { // log(JSON.stringify(result)) let helper=99; for (var i = 0; i < result.length; i++) { if(result[i].val!=null && result[i].val!="0" ) { if(Number(result[i].val) < helper) helper=Number(result[i].val) // console.log(result[i].val + ' ' + new Date(result[i].ts).toISOString()); } } if(getState(dp_benzinart_short).val <= helper) {log ("momentaner wert ( "+getState(dp_benzinart_short).val+" ) ist kleiner/gleich " + helper ) log(helper.toString()) // if( getState("0_userdata.0.Tanken.Diesel_3_Tage").val ) setState("0_userdata.0.Tanken.Diesel_3_Tage",helper); // benachrichtigung(helper) benachrichtigung("Tanken lohnt sich") } else{ setState("0_userdata.0.Tanken.Diesel_3_Tage",0); log("momentaner wert ( "+getState(dp_benzinart_short).val+" ) ist größer " + helper ) benachrichtigung("Tanken lohnt sich nicht") } } }); }); /* const myQuery = "select min(val) from iobroker.ts_number where id=38 and ts >= end - 259200000" sendTo('sql.0', 'query', myQuery, function (err, data) {...} */An den ganzen Funktionen war ich nicht wirklich beteiligt. Wie gesagt alles im Forum erarbeitet 👍
- 1
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden