複雜事件處理(Complex Event Processing)
阿新 • • 發佈:2018-12-30
複雜事件處理
複雜事件處理(CEP,Complex Event Processing)是一種基於動態環境中事件流的分析技術,事件在這裡通常是有意義的狀態變化,通過分析事件間的關係,利用過濾、關聯、聚合等技術,根據事件間的時序關係和聚合關係制定檢測規則,持續地從事件流中查詢出符合要求的事件序列,最終分析得到更復雜的複合事件,主要用於網路詐欺識別等防止犯罪,銀行等金融行業防止,以及風險規避和營銷決策等.
複雜事件處理面臨多方面的挑戰:
- 減少應用儲存資料(在分析資料之前)造成的延遲
- 能夠持續,實時地分析多個數據流
- 能夠關聯不同資料流中的事件,從而發現新的相關情形
- 能夠迅速響應新發現的危險或機會
- 能夠迅速的將先前發現的規律應用到新的資料流分析模型中
- 能夠利用已有的應用開發能力快速開放新的高效能,高擴充套件度的應用
- 確保應用和系統的連貫性。
事件處理語言
事件處理語言(EPL,Event processing language)用於系統中制定和查詢感興趣的事件序列,通常是類SQL的語句,從SQL語句中擴充套件而來.
事件關係
事件應該包含一些基本的要素:型別、發生事件以及更多的一些定義屬性
通常需要關聯多個事件進行分析處理,其中事件間的關係主要有5種:
時間關聯
空間關聯
依賴關係
事物的狀態屬性之間彼此的依賴關係和約束關係。因果關係
事件處理過程
複雜事件處理過程包括:
- 格式化:將事件獲取模組得到的事件資訊轉化為內部處理的形式
- 預處理:將事件按照欄位內容進行處理
- 模式偵測:將數個事件複合起來,找出複合事件
- 事件發派:將複合事件傳送到相應的處理模組
- 執行動作:處理模型按照事件狀況執行相應的動作
以下是複雜事件處理系統中的關鍵模組組成圖(來自《深入淺出複合事件處理》),
- EPL解析器:複雜事件處理系統中EPL語言被解析器解析為處理引擎能理解的語言(類SQL解析器)。
- 規則管理:管理EPL。
- 事件接入:通過SOA、ESB、MOM、讀取日誌等方式將訊息接入。
- 預處理:將事件依據欄位內容進行處理。
- CEP引擎:找出事件關聯。
- 資料模型:維護內部資料。
- 事件發派:將已經發現的複合事件發派到負責處理的行動模組中。
- 行動模組:對複合事件採取行動 。
如何評價一個CEP平臺:
- 開發工具中的程式設計模型,是否能吸引眾多不同型別的開發人員?
- 是否提供了高可用性和高安全性?
- 是否可以部署在多個使用陣列配置的伺服器?
- 是否提供了監視功能?
- 其引擎是否可以易於擴充套件,從而來支援公司特有的高階的邏輯?
- 是否有恢復機制,即使一旦伺服器故障,也可以防止資料丟失?
- 進出處理引擎的訊息傳遞,其機制是否可靠?
- 它同資料庫以及其他系統能否很好的整合?
- 這個平臺是否支援連續型實時資料管理的各個生命週期,包括分析,儲存,建模和一個新的實時分析應用的部署?
事件驅動架構
事件驅動架構(Event-Driven Architecture,EDA) 基於訊息傳遞,現在主要是非同步通訊的訊息佇列的架構,依據“釋出/訂閱”模式,通過特定模式來對業務事件作出響應,耦合度較低.
面向服務架構
面向服務架構 (Service-Oriented Architecture, SOA) 基於“請求/響應”的形式
下面這幅圖可以較好地體現基於SOA和EDA兩種體系結構的差異處,SOA更多地是面向垂直系統的請求和響應處理,EDA則是應對橫向的系統通.
資料來源:
[1]. TT SOA 技術專題之“複雜事件處理手冊”
[2]. 《事件處理中介軟體原理和應用》
[3]. 《深入淺出複合事件處理》