2017-05-03 31 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 –