[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