簡體   English   中英

wso2:cep:siddhi:如何使時間窗持續存在

[英]wso2: cep: siddhi: how to make time windows persistent

我們目前正在測試siddhi wso2 cep。

我們需要能夠重新啟動wso2服務器進程而不會丟失已在窗口中累積的數據(例如時間窗口)。

有沒有辦法使時間窗持久化,以便服務器可以重新啟動而不會失去其狀態?

我們是否必須配置服務器以使用持久性?

或者我們只需要調整查詢並使用事件表嗎?

這是我們的查詢示例:

from every data= DataInStream[state == 1] -> 
   every event = EventInStream[event.no == data.no] within 24h
       insert into duplicatesOutStream data.id as id

您可以通過啟用快照使CEP保持其狀態。 文檔可以在這里找到 但請注意,這將“定期”持續CEP的“整個狀態”(可在幾分鍾內配置)。 由於這只是定期完成,因此您可能會丟失在上次快照操作后到達的最新幾個事件。 如果你希望cep在崩潰后恢復,這是最簡單的選擇。

除此之外,沒有其他方法可以使預定義窗口持久化。 但是如果您願意,您可以編寫自己的自定義時間窗口( 文檔 )來執行持久性並將其插入CEP。

您也可以使用事件表。 使用事件表時,可以確保所有到達的事件都是持久的。 (但這種方法的一個缺點是,與Windows +快照方法相比,這可能是性能損失)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM