2014-05-08 51 views
1

我有一個艾斯波查詢如下所示:艾斯波合併查詢結果

@Name("MyFirstEvent") 
select a.groupID as groupdID,count(*) as result 
from pattern[every a=MyFirstEvent where timer:within(10 sec)] 
where a.value > 60 
group by a.groupID 
having count(*) >= 3 

這似乎很好地工作。但是,我有一個要求將該查詢的結果與另一個查詢的結果相結合。

例如 - 如果我看到這個查詢產生一個結果,然後我看到另一個查詢產生一個結果(彼此在10秒內),那麼我想產生第三個事件。

你如何在Esper中做到這一點?我試着編寫一個查詢:select * from pattern[every a=MyFirstEvent -> b=MySecondEvent],但它說它無法將MyFirstEvent解析爲類型。

我想過使用命名窗口來存儲每個查詢的結果,然後查詢窗口。這會工作嗎?

回答

0

多一點調查後我發現,我做最簡單的方法是:

  1. 創建兩個新的窗口,暫時將事件結果從我的前兩個查詢存儲。
  2. 創建第三個查詢,只查詢前兩個窗口,然後將結果連接在一起生成第三個事件。