[vz-dev] Alternative Implementierung für vzcompress
Andreas Goetz
cpuidle at gmail.com
Mon Apr 15 18:41:19 CEST 2013
Hallo Zusammen,
und gleich noch ein Vorschlag hinterher- mit untenstehendem SQL konnte
ich meine DB mit 5 Kanälen um 30% reduzieren- ohne Information zu verlieren:
delete from data
where id in (
select id from (
select o.id,
(
select max(timestamp)
from data i_p
where i_p.channel_id = o.channel_id
and i_p.timestamp < o.timestamp
) as prev_ts,
p.id as prev_id, p.value as prev_value,
(
select min(timestamp)
from data i_n
where i_n.channel_id = o.channel_id
and i_n.timestamp > o.timestamp
) as next_ts,
n.id as next_id, n.value as next_value
from data o
left join data p on p.timestamp = prev_ts and o.channel_id
= p.channel_id
left join data n on n.timestamp = next_ts and o.channel_id
= n.channel_id
where o.channel_id in (select id from entities where class =
"channel")
and o.value = 0
and p.value = 0
and n.value = 0
)
)
Viele Grüße,
Andreas
On 15.04.2013 17:47, Andreas Goetz wrote:
> Hallo Zusammen,
>
> eine Optimierung welche mir für vzcompress noch einfiele wäre die
> Löschung (nicht nur Komprimierung) redundanter Nullwerte.
>
> Hintergrund: bei "normalen" Stromzählern (aber auch Verbrauchsmessern)
> ist tagsüber während die PV läuft der Bezug meist 0, ebenso sind
> Einspeisung und Erzeugung nachts eigentlich immer 0. Diese Nullen
> ließen sind- bis auf die jeweils erste und letzter einer 0-Strecke
> einsparen. Die letzte 0 wird benötige, damit das Frontend keine Rampen
> in die Darstellung einbaut.
>
> Nachteilig ist natürlich dass man nich tmehr so einfach auf der
> Datenbank Werte mehrerer Kanäle für einen Timestamp "zusammenjoinen"
> kann- aber andererseits ist auch klar, dass kein Wert automatisch eine
> 0 im Verbrauch bedeutet.
>
> Wie wär's- bekommen wir das in die Neuimplementierung noch mit rein?
>
> Viele Grüße,
> Andreas
>
More information about the volkszaehler-dev
mailing list