0
我試圖從time_length_batch中獲取最後一個事件,但我無法在WRT中如何執行此操作。來自具有時間和長度的Esper窗口的最後一個事件
例如...有一個庫存事件,並希望從每個可用產品獲取最新更新。下面的查詢主要提供所需要的:
SELECT product, inventory FROM
InventoryEvents.std:groupwin(name).win:time_length_batch(1 min, 2);
除了窗口,我得到的最後一個分或2個事件的每一個事件中。我對這個窗口的最後一個事件感興趣。 (使用2來輕鬆測試結果。)
因此,在UpdateListener中,我需要輸出數組中的最後一個事件。但由於我不需要這些事件,並最終想切換到訂閱者,我正在尋找最後一個事件。此外,用戶是更高性能的所以不是這樣的:
public static class EveryListener implements UpdateListener {
public void update(EventBean[] newData, EventBean[] oldData) {
out.println("* Window received: " + " " +
newData.length + " " + newData[newData.length - 1].getUnderlying());
}
}
只是
public void update(String product, int inventory) {
out.println("** Explicit event received: " + " " + product + " " + inventory);
}
但結果......
* Window received: 2 {product=A, inventory=-10}
** Explicit event received: A 20
** Explicit event received: A -10
我已經試過
SELECT product, inventory FROM
InventoryEvents.std:groupwin(name).win:time_length_batch(1 min, 1000)
.std:win:lastevent();
但這並不能預測結果。
如何獲取分組窗口的最後一個事件?