<div dir="ltr"><div>Hallo Sebastian,<br><br>verstehe ich Dich richtig, dass Du die Datenbank direkt manipulierst? Wenn Du das machst bist Du natürlich auch dafür verantwortlich dass die gesamte Datenbank stimmt. <br><br>Einfachste Lösung: aggregation ausschalten (klappts dann?)<br>
<br></div><div>Zweiteinfachste Lösung: aggregation NICHT für Deinen selbst geschriebenen Kanal nutzen.<br><br></div><div>Schwieriger: überlegen was passiert.<br></div><div>Das aggregate Skript schiebt die historischen Daten (=vor der aktuellen Periode) in eine Extratabelle. Das Problem ist wenn Du jetzt nochmal Daten in die Originaltabelle schreibst. Wenn das einen Zeitraum betrifft der in der Aggregationstabelle bereits enthalten ist werden die Änderungen schlicht ignoriert, unabhängig davon ob Du es über Middleware oder Datenbank machst.<br>
Für Middleware liesse sich das mit ein wenig Logik noch beheben, für Datenbank bist Du auf Dich gestellt.<br><br>vg<br></div><div>Andreas<br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, Dec 26, 2013 at 11:42 AM, Sebastian Michel <span dir="ltr"><<a href="mailto:Sebastian_Michel@gmx.de" target="_blank">Sebastian_Michel@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Es ist in python geschrieben. Hier ein Auszug:<br>
<br>
class VzDb(object):<br>
<br>
def __init__(self, host, port, user, passwd, name):<br>
self.Host = host<br>
self.Port = port<br>
self.User = user<br>
self.Pass = passwd<br>
self.Name = name<br>
<br>
def connect(self):<br>
self.Handle = MySQLdb.connect(host=self.<u></u>Host, port=self.Port, user=self.User, passwd=self.Pass, db=self.Name)<br>
<br>
def save(self, uuid, value):<br>
<br>
cursor = self.Handle.cursor()<br>
query = """SELECT <a href="http://e.id" target="_blank">e.id</a>, p.value FROM entities e<br>
LEFT JOIN properties p<br>
ON (<a href="http://e.id" target="_blank">e.id</a> = p.entity_id)<br>
WHERE e.uuid = '%s' AND p.pkey = 'title'""" % (uuid)<br>
resp = cursor.execute(query)<br>
if resp != 1:<br>
raise Exception("Multiple channels in database with uuid: %s" % uuid)<br>
<br>
# get channel id and channel title<br>
(channel_id,title,) = cursor.fetchone()<br>
<br>
timestamp = int( time.time()*1000 )<br>
query = "INSERT INTO data(channel_id, timestamp, value) VALUES (%d, %d, %f)" % (channel_id, timestamp, value)<br>
resp = cursor.execute(query)<br>
# print query<br>
if resp == 1:<br>
syslog.syslog(syslog.LOG_INFO, "Added value (%.2f) to database channel: '%s'" % (value, title))<br>
else:<br>
raise Exception("Error adding value to database channel:" % title)<br>
<br>
cursor.close()<br>
<br>
def close(self):<br>
self.Handle.commit()<br>
self.Handle.close()<br>
<br>
<br>
<br>
Viele Grüße<br>
Sebastian<br>
<br>
<br>
Am 2013-12-26 11:34, schrieb Daniel Lauckner:<div class="HOEnZb"><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Mahlzeit,<br>
<br>
Am Donnerstag, 26. Dezember 2013 um 11:11 schrieb Sebastian Michel:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hallo,<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
ich hab folgendes Problem:<br>
</blockquote>
<br>
[...]<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Kann mir jmd weiterhelfen?<br>
</blockquote>
<br>
<br>
Script vergessen?!<br>
<br>
<br>
<br>
<br>
mfg Daniel<br>
</blockquote>
</div></div></blockquote></div><br></div>