2013-08-06 39 views
2

我在CEP 2.1新,並且在輸入流複雜事件處理器2.1.0輸入流

讓塔CEP保持說您定期將數據發送給一些我的問題是有關時限輸入流讓我們說「HELLOSTREAM」。 CEP多長時間保存輸入流到什麼是最大時間等...

讓我們說,如果我每天發送數據的365天,我會收回所有數據在366天或將他在某個點截斷數據(將持有最近100天的ony)?無論我在查詢中設置了什麼時間窗口?

是否有限制?

回答

1

CEP是一個實時處理服務器。它用於實時查找預定義的模式並進行實時監控。它將數據保存在內存中並處理事件,但您可以將數據保存到cassandra以進行分佈式處理...

這裏的數據將根據您定義的窗口大小保留在內存中,取決於窗口類型您使用時間或給予該窗口長度......如果你不使用任何窗口也不會保存任何數據在內存中...

如果你想存儲數據的365天或百天,那麼它不是一個實時用例。爲此,您必須使用離線處理服務器,如BAM。

+0

嗨感謝您的答案。好吧,我們想說一個情景登錄,你有預先登錄數據的用戶,比如說前100天,當新的登錄請求來比較,如果它來自相同的IP等...你認爲CEP不好爲了那個原因 ? (比方說,它發送警告給某人,可能該帳戶被黑客攻擊或someting)這是很好的基本示例相同的凸輪使用信用卡,他們在哪裏使用等... – user2656744

+0

我認爲Rajeev的答案爲您的使用提供瞭解決方案-case ...將使用CEP 3.0.0中的事件表提供此支持。 – Mohanadarshan

1

要添加到@ Mohanadarshan的答案,如果您想要從長時間內從快速事件流中提取和存儲某些值,更好的基於CEP的方法將使用持久性事件表(將包含在即將發佈的即將推出的CEP 3.0.0版中)。這樣您就可以對一些提取和保存的數據進行實時處理。但是正如@Mohanadarshan所提到的,如果您的需求是批處理(如果您不需要實時檢測),WSO2 BAM將是更好的選擇。

使用滑動窗口在很長一段時間來存儲大量的數據並不像它們存儲在內存中,也如果服務器出現故障,你會失去數據是個好主意。

+0

關於你的問題是否窗口截斷事件 - 答案是否定的。時間窗口將按照給定的時間段保存所有數據。如果您長時間使用時間窗口並希望確保數據在服務器崩潰時保留,則一種選擇是啓用快照。這將持續保持窗口的狀態,以便可以保留直到上次快照操作爲止累積的所有事件。 –