2017-02-04 15 views
0

Из образца 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?

ответ

0

Когда события истекают из окна времени, среднее значение изменяется, поэтому слушатель видит новое среднее значение, поскольку старое среднее значение больше не является правильным. Избегайте его, не используя временное окно, например, ... from StockTick group by ...

+0

Я использовал окно времени для вычисления среднего значения цены за последние 1 день. Так в этом случае, можете ли вы дать мне подсказку? – kh4nhvu