[vz-users] Verarbeitung des Gesamtverbauchs für Strom führt oft zu einem Timeout
Julian Sikorski
belegdol at gmail.com
Sa Jul 20 09:10:24 CEST 2024
Am 06.07.24 um 12:28 schrieb Julian Sikorski:
> Am 06.07.24 um 12:07 schrieb Julian Sikorski:
>> Hallo zusammen,
>>
>> ich bekomme oft einen Gateway Timeout wenn ich den Gesamtverbrauch von
>> Strom berechnen möchte. Sei es in der Abbildung, oder über
>> http://odroidxu4.local:8080/data/xxx.json?from=0&group=day&tuples=1
>>
>> Datenbank und volkszähler laufen in einem Docker container auf einem
>> Odroid HC1 NAS. Ich habe aggregation auf Monats-, Tages-, Stunden- und
>> Minutenebene bereits am Laufen. Stromzähler liefert in der Tat über
>> SML sehr viele Daten, sollte aber die Aggregation das Problem nicht
>> lösen? Capabilities sehen wie folgt aus:
>>
>> version "0.3"
>> capabilities
>> database
>> data
>> rows 10404482
>> size 623624192
>> aggregation
>> rows 397337
>> size 31522816
>> ratio 26.186
>>
>> Es gibt pro Kanal (3 insgesamt) jeweils 7 monatliche aggregationen in
>> der Datenbank, geprüft mit:
>>
>> SELECT TYPE, FROM_UNIXTIME(TIMESTAMP/1000), channel_id, VALUE, count
>> FROM volkszaehler.`aggregate` WHERE TYPE = 5 AND channel_ID = x
>>
>> LG,
>> Julian
>>
>>
>
> Hier noch genauere überblick der Datenmengen, generiert mit:
>
> SELECT COUNT(TIMESTAMP), 0 AS TYPE, channel_id
> FROM data
> GROUP BY channel_id
> union
> SELECT COUNT(TIMESTAMP), TYPE, channel_id
> FROM aggregate
> GROUP BY TYPE, CHANNEL_id
>
> data
> ---
> | COUNT(TIMESTAMP) | TYPE | channel_id |
> | ---: | ---: | ---: |
> | 10317888 | 0 | 8 |
> | 50017 | 0 | 10 |
> | 63037 | 0 | 12 |
> | 280286 | 1 | 8 |
> | 50014 | 1 | 10 |
> | 56354 | 1 | 12 |
> | 4680 | 2 | 8 |
> | 4196 | 2 | 10 |
> | 2280 | 2 | 12 |
> | 196 | 3 | 8 |
> | 183 | 3 | 10 |
> | 180 | 3 | 12 |
> | 7 | 5 | 8 |
> | 6 | 5 | 10 |
> | 6 | 5 | 12 |
>
> LG,
> Julian
>
>
Ich konnte theoretisch timeout in dem Dockerfile erhöhen. Würde aber
zuerst schauen, wieso die Abfrage so lange dauert.
from=0&group=day&tuples=1 holt für das Gas die richtige Anzahl von
Zeilen (194 heute). Kann man die Query, die an Datenbank geschickt wird,
irgendwo sehen? Ich habe gesucht aber bisher war mein PHP Wissen
unzureichend.
Wäre evtl. verzichten auf minutliche Aggregation sinnvoll, um die
aggregate Tabelle deutlich zu verkleinern?
LG,
Julian
Mehr Informationen über die Mailingliste volkszaehler-users