[vz-users] Aggregation (minute) schlägt fehl

René W tylonhh+volkszaehler at gmail.com
Mo Mär 20 15:10:06 CET 2023


Ich hatte „damals“ auch schon diese nervige Meldung:
https://demo.volkszaehler.org/pipermail/volkszaehler-users/2019-June/013374.html

Vielleicht sind dort ja noch ein paar Hinweise. Ich selber nutze VZ nicht
mehr dafür.

Gruß René

Michael Hartmann <hartmann-micha at web.de> schrieb am Mo. 20. März 2023 um
15:03:

> Hallo Christian,
>
>
>
> ich hatte erst an negative Werte gedacht und keine um den
> „Ausstiegszeitpunkt“ gefunden. Das scheidet aber auch aus, da sich die
> Werte im Zähler befinden und somit keine Division durch Null hervorrufen
> können.
>
>
>
> Was mich irritiert ist das nach Löschen der aggregierten Daten deren
> Neuerstellung fehlerfrei durchläuft.
>
>
>
> Kann jemand aus der Fehlermeldung erkennen um welchen Kanal (Channel_ID)
> es gehen könnte?
>
>
>
> Grüße
>
>
>
> Micha
>
>
>
> *Von:* volkszaehler-users [mailto:
> volkszaehler-users-bounces at demo.volkszaehler.org] *Im Auftrag von *Christian
> Lange
> *Gesendet:* Montag, 20. März 2023 11:29
> *An:* volkszaehler-users at demo.volkszaehler.org
> *Betreff:* Re: [vz-users] Aggregation (minute) schlägt fehl
>
>
>
> Hi Micha,
>
> ich hab leider keine Ahnung, wie die Datenbank aussieht (ich nutze selbst
> eine andere), aber der Fehler sagt aus, dass eine Division durch 0
> vorliegt.
>
> Die einzige Zeile in der SQL Query, die mir da ins Auge sticht ist diese
> hier:
>
> > COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp) -
> MIN(agg.prev_timestamp)),
>
> Das Maximum des Timestamps minus dem Minimum des vorherigen Timestamps aus
> der (on the fly) erzeugten "agg" Tabelle sind zusammen 0. Daher klappt die
> Division und damit die SQL Query nicht. Die Daten stammen (soweit ich das
> sehen kann) aus der "data" Tabelle. Vielleicht fällt dir ja da etwas auf in
> den Daten bei den Timestamps. Den Rest überlasse ich den Experten, die das
> Tool so im Einsatz haben ;)
>
> Viel Erfolg,
> Christian
>
>
>
>
>
> Am 20.03.2023 um 10:37 schrieb Michael Hartmann:
>
> Hallo,
>
>
>
> ich hole das hier noch einmal vor, da es ziemliche nervt.
>
>
>
> Via cronjob lasse ich alle 10min eine Aggregation auf die Minute laufen.
> Bereits vor einigen Wochen ist diese dann plötzlich mit der folgenden
> Fehlermeldung ausgestiegen:
>
>
>
> In AbstractMySQLDriver.php line 128:
>
>
>
>   An exception occurred while executing 'REPLACE INTO aggregate
> (channel_id,
>
>   type, timestamp, value, count) SELECT channel_id, ? AS type,
> MAX(agg.timest
>
>   amp) AS timestamp, COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp)
> - M
>
>   IN(agg.prev_timestamp)), AVG(agg.value)) AS value, COUNT(agg.value) AS
> coun
>
>   t FROM ( SELECT channel_id, timestamp, value, value * (timestamp -
> @prev_ti
>
>   mestamp) AS val_by_time, COALESCE(@prev_timestamp, 0) AS prev_timestamp,
> @p
>
>   rev_timestamp := timestamp FROM data CROSS JOIN (SELECT @prev_timestamp
> :=
>
>   UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%d
> %H:%
>
>   i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = ? AND
> aggreg
>
>   ate.channel_id = ?) AS vars WHERE channel_id = ? AND timestamp >=
> IFNULL((S
>
>   ELECT UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000,
> "%Y-%m-%
>
>   d %H:%i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = ?
> AND
>
>   aggregate.channel_id = ? ), 0) AND timestamp <
> UNIX_TIMESTAMP(DATE_FORMAT(N
>
>   OW(), "%Y-%m-%d %H:%i:00")) * 1000 ) AS agg GROUP BY channel_id,
> YEAR(FROM_
>
>   UNIXTIME(timestamp/1000)), DAYOFYEAR(FROM_UNIXTIME(timestamp/1000)),
> HOUR(F
>
>   ROM_UNIXTIME(timestamp/1000)), MINUTE(FROM_UNIXTIME(timestamp/1000))'
> with
>
>   params [1, 1, "3", "3", 1, "3"]:
>
>
>
>   SQLSTATE[22012]: Division by zero: 1365 Division by 0
>
>
>
>
>
> In Exception.php line 18:
>
>
>
>   SQLSTATE[22012]: Division by zero: 1365 Division by 0
>
>
>
>
>
> In PDOStatement.php line 117:
>
>
>
>   SQLSTATE[22012]: Division by zero: 1365 Division by 0
>
>
>
> Die Aggregation auf Stunde und Tag bereitet (bisher) keine Probleme.
>
>
>
> Beim letzten Mal hatte ich die Aggregationstabelle gelöscht und neu
> aufgebaut. Nach einigen Wochen kommt der Fehler nun wieder.
>
>
>
> Kann mir jemand erklären wo das Problem liegt? Die Fehlermeldung kann ich
> nicht interpretieren.
>
>
>
> Viele Grüße
>
>
>
> Micha
>
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20230320/19f722cc/attachment-0001.html>


Mehr Informationen über die Mailingliste volkszaehler-users