我如何使用 wso2 siddhiQL 缓存数据?
how can i use wso2 siddhiQL Cache data?
我的问题是这样的,我定义了一个数据源获取每秒(有)的实时数据,我会对每小时这批数据进行一个平均计算,然后得到这组数据每小时平均累计总和,最后放一个小时的累计值,给另外一个数据source.Such 1小时的平均值是10,我给一个数据源10,第二个小时平均是20,那么我会加1小时平均10输出30,以此类推,一天24小时结束,第二天从第一个小时开始就是calculated.Problem现在是我怎么算的,缓存我上次计算的时间累计值,如何解决类似问题?
例如:enter image description here
就像上图,在avg数据一栏是我通过instream_#window.externalTimeBatch(datetime, 1小时)可以得到的,后面一栏是输出per的结果小时,我想。
像这样:enter image description here
每计算一个结果就输出
您可以使用事件 Table 将数据缓存在关系数据库中,例如 postgres/mysql/oracle。
先从数据库定义 table :
@From(eventtable='rdbms', datasource.name='db_event', table.name='_tag_time_value')
define table tEvent (tag string, datetime long , value double);
如果流时间达到,您可以在事件中插入覆盖 0.0 table
我的问题是这样的,我定义了一个数据源获取每秒(有)的实时数据,我会对每小时这批数据进行一个平均计算,然后得到这组数据每小时平均累计总和,最后放一个小时的累计值,给另外一个数据source.Such 1小时的平均值是10,我给一个数据源10,第二个小时平均是20,那么我会加1小时平均10输出30,以此类推,一天24小时结束,第二天从第一个小时开始就是calculated.Problem现在是我怎么算的,缓存我上次计算的时间累计值,如何解决类似问题? 例如:enter image description here
就像上图,在avg数据一栏是我通过instream_#window.externalTimeBatch(datetime, 1小时)可以得到的,后面一栏是输出per的结果小时,我想。 像这样:enter image description here
每计算一个结果就输出
您可以使用事件 Table 将数据缓存在关系数据库中,例如 postgres/mysql/oracle。
先从数据库定义 table :
@From(eventtable='rdbms', datasource.name='db_event', table.name='_tag_time_value')
define table tEvent (tag string, datetime long , value double);
如果流时间达到,您可以在事件中插入覆盖 0.0 table