1. 程式人生 > >複雜事件處理(CEP)的理解(上)

複雜事件處理(CEP)的理解(上)

隨著企業資訊化的進一步深入,企業產生大量的實時資料(比如證券市場的交易資料,電力行業的探測資料),用關係型資料庫處理這些大量的實時資料,已經力不從心了。更重要的是,企業需要從這些大量的實時資料裡面,及時發現、挖掘一些有意義的資料,比如證券市場那些交易有違規操作的嫌疑,如果對某些交易存在嫌疑,需要進一步跟蹤觀察,進而進行人工干預。這樣的需求,用關係型資料庫去解決,需要將所有的資料匯入到庫中後,用統計分析工具去分析,雖然也能得到部分有意義的資料,但是無法保證實時性,無法對部分有意義資料的出現做出及時處理。

基於以上的需求,出現了複雜事件處理( CEP)的概念,隨之也出現了不少 CEP的產品,這其中,比較著名的產品有:

Tibco Business Event IBM CEP Oracle CEP CEP認為任何事情的發生可以認為是一個“事件”,事情的發生產生一項資料,那麼一項資料也可以認為是一個“事件”,證券市場的一個交易是一個事件,感測器探測一次資料,也是一個事件。這些事件有共同點:資料量特別龐大、流式資料、永不止境。這些事件,多數是我們不關心的,我們認為無意義的。我們需要的是從這些大量的無意義的事件中,找出對我們有意義的單個事件或者事件組合,比如可疑交易資料(和正常交易價格有很大出入的多筆交易),我們理解這些找出的單個事件或者事件組合為有意義事件,認為是事件發生,把發現這個有意義事件為複雜事件處理。
CEP通過規則,從不同的事件源中找出相關的事件組合(發生事件),並對發現的做進一步處理(處理髮生事件)。

通常的 CEP,實現方式如下:

大量的實時資料作為事件源接入事件處理匯流排 CEP引擎通過指定的規則,處理這些實時資料和快取的歷史資料(快取的目的是解決發現一些跨時間的事件,比如分析多次交易看是否可疑)。