让我们说我有一个简单的对象:
public class StockTick{
private String symbol;
private decimal price;
private Date date;
private int unixTimestamp
}
如何修改以下查询以使用StockTick.date或StockTick.unixTimestamp在.win:time()窗口内进行聚合?
select avg(price) from StockTick.win:time(30 sec) where symbol='IBM'
答案 0 :(得分:1)
如果事件已由unix时间戳排序,则无需修改查询。只为每个事件执行此操作:
runtime.sendEvent(new CurrentTimeEvent(unixTimestamp));
runtime.sendEvent(stockTickEvent);
以上代码使用外部时间,因此请禁用默认的内部系统时间。对于完全无序或未暂停的事件,请不要使用时间窗口,而是考虑分组的外观。