Hello,
suite à la récupération de valeurs d’un device MQTT (index/conso énergétique) et son analyse ici, je vois que pour ce device j’ai 32433 valeurs qui en fait ne bougent pas (si on met de côté la valeur erronée) :
Bien entendu j’ai peu ou prou autant de valeurs pour chaque jour de ce capteur Index (Tempo HP Jour Rouge) qui ne bouge pas pendant plusieurs mois.
Je n’ose imaginer la taille que cela doit prendre dans ma DB qui fait déjà plus de 3Go
Est-ce que pour les index qui ne changent pas de valeur on ne pourrait pas avoir une valeur de départ (la première de la journée) et une valeur de fin (la dernière de la journée) si et seulement si les valeurs sont les mêmes sur la journée ?
Plus généralement sur les index, ne peut-on enregistrer/garder seulement les valeurs différentes de la précédente chaque jour ?
Ce genre d’optimisation n’est clairement pas à notre charge : c’est exactement le métier de DuckDB, et il le fait très bien
À l’inverse, supprimer volontairement les valeurs similaires côté Gladys ferait perdre de l’information : l’absence de variation est une information en soi. On en a déjà souvent discuté sur Gladys, et je n’ai jamais été favorable à cette approche.
Maintenant qu’on s’appuie sur DuckDB, qui gère ce cas de manière très efficace, il n’y a plus vraiment d’argument pour ne pas conserver ces données
ok, alors ça me convient si ça ne fait pas gagner plus de place que ça.
Par contre même si DuckDB ne stocke qu’une fois la donnée (qui est identique), ça doit quand même stocker l’horodatage qui lui est différent à chaque instant…
Ce qui me perturbe le plus (mais je vais quand même bien dormir, rassure toi ), c’est que j’ai plus de 30000 données par jour par index, même si certains ne changent pas pendant des mois (les rouges par exemple) et ça depuis un an, ça en fait de la donnée
Je suis d’accord.
Dans le cas particulier de mes index Tempo, je sais que je n’aurai jamais de jour rouge entre le 01/04 et le 31/08 donc je n’ai pas besoin que l’info de la valeur soit stockée. Mais ça ne concerne que moi qui utilise teleinfo2mqtt qui renvoie une info json en mqtt où toutes les infos sont envoyées.