2015-05-21 31 views
0

我有name,address,status與更新加入/刪除WSO2 CEP事件表使用西提

我想這個細節存儲在UserDetailsTable(存儲表)

UserDetailsTable的結果低於

"Jose", "address1","false" 
"Rockey","address2","false" 
"sibin", "address3","false" 
一個userStream

我還有一個有名字triggerStream,triggerStatus

"Rockey","delete" 
"Jose" ,"update" 

案例1)triggerStream當屬「駱基」,我想根據(姓名和triggerStatus與UserDetailsTable加入這個triggerStream)和UserDetailsTable刪除行。

案例2)triggerStream當屬「何塞」,我想加入這個triggerStreamUserDetailsTable根據(姓名和triggerStatus)和更新狀態中UserDetailsTable「真」。

UserDetailsTable的最終狀態如下。

"Jose", "address1","true" 
"sibin", "address3","false" 

如何用WSO2 CEP做到這一點?

回答

1

假設您已經定義了流和表以及插入查詢來填充內存表。

對於案例1,你可以用一個條件爲使用刪除查詢:

from triggerStream 
delete userDetailsTable 
on name == userDetailsTable.name and triggerStatus == userDetailsTable.status; 

如果你想刪除特定的名稱,如「駱基」可以將過濾器添加到上面的查詢如下:

from triggerStream[name == 'rockey'] 
delete userDetailsTable 
on name == userDetailsTable.name and triggerStatus == userDetailsTable.status; 

對於案例2,您可以使用更新查詢與 '何塞' 如下過濾器:

from triggerStream[name == 'jose'] 
select name, triggerStatus as status 
update userDetailsTable on name == userDetailsTable.name 

在此查詢中,我們將屬性'triggerStatus'重命名爲'status',以使其等於表的屬性名稱。