2017-05-03 35 views

回答

2

如果您使用count()或没有窗口的任何其他聚合函数,则无法重置在该聚合器中累积的事件。例如,如果您使用下面的窗口,它会在收到10个事件后重置计数器。

from stream1#window.lengthBatch(10) 
select count() as item insert into newStream; 

但是,如果你需要发送一个参数给它,(即count(bool reset))到柜台重置你可能有如下所示documentation描述编写自己的自定义聚合函数。

+0

我现在正在使用一个窗口。从stream1#window.time(5分钟)中选择count()作为item到newStream;但现在这只给我第一个5分钟。不是连续时间窗口。 – JoaoFilipeClementeMartins

+0

窗口'时间'是连续的。这是一个滑动时间窗口,用于保存在给定时间内最后一个windowTime期间到达的事件,并针对每个事件到达和到期时间进行更新。 如果您想要每5分钟处理一次事件(作为批处理),您应该使用window'timeBatch'。它是一个批处理(翻滚)时间窗口,用于保存在windowTime期间到达的事件,并针对每个windowTime更新事件。请参阅文档:https://docs.wso2.com/display/CEP420/Inbuilt+Windows –