Из образца Esper, я просто написать простой EPL, как это:Выход для Esper раздвижных оконных швов, когда событие приходят за другим оставить
select symbol, avg(price) as avgprice,count(*) as count,
current_timestamp() as time from StockTick.win:time(0.4 sec)
group by symbol
И каждый 100 миллисекунды, кормлю данные в Esper следующим образом:
StockTick={symbol='YHOO', price=100}
t=t.plus(0.1 seconds)
StockTick={symbol='YHOO', price=65}
t=t.plus(0.1 seconds)
StockTick={symbol='YHOO', price=75}
t=t.plus(0.1 seconds)
StockTick={symbol='YHOO', price=65}
t=t.plus(0.1 seconds)
StockTick={symbol='YHOO', price=100}
t=t.plus(0.1 seconds)
StockTick={symbol='YHOO', price=15}
Но выход я получаю сделать меня путать
Statement: AVGTABLE
Insert
AVGTABLE-output={symbol='YHOO', avgprice=76.25, count=4, time=300}
At: 1970-01-01 00:00:00.400
Statement: AVGTABLE
Insert
AVGTABLE-output={symbol='YHOO',avgprice=68.33333333333333, count=3,
time=400}
At: 1970-01-01 00:00:00.400
Statement: AVGTABLE
Insert
AVGTABLE-output={symbol='YHOO', avgprice=76.25, count=4, time=400}
At: 1970-01-01 00:00:00.500
Statement: AVGTABLE
Insert
AVGTABLE-output={symbol='YHOO', avgprice=80.0, count=3, time=500}
At: 1970-01-01 00:00:00.500
Statement: AVGTABLE
Insert
AVGTABLE-output={symbol='YHOO', avgprice=63.75, count=4, time=500}
At: 1970-01-01 00:00:00.600
Statement: AVGTABLE
Insert
AVGTABLE-output={symbol='YHOO', avgprice=60.0, count=3, time=600}
Во время 400 и 500, есть 2 выхода здесь, и я думаю, что это появляется из-за одного отпуска события окна перед другим. Почему они появляются здесь, так как я не выбираю irstream
и как я могу избежать этого в UpdateEventListener
?
Я использовал окно времени для вычисления среднего значения цены за последние 1 день. Так в этом случае, можете ли вы дать мне подсказку? – kh4nhvu