復雜事件處理(CEP)既是把不同的數據看做不同的事件,并且通過分析事件之間的關系建立起一套事件關系序列庫。利用過濾,聚合,關聯性,依賴,層次等技術,最終實現由簡單關系產生高級事件關系。
復雜事件處理當前主要用于信用卡欺詐檢測、用戶風險檢測、設備故障檢測、攻擊行為分析等領域。
Apache Flink中基于DataSet Api提供了FlinkCEP的組件棧,專門應用于復雜事件處理方向。Apache Flink另外也為機器學習方向提供了Flink ML和圖計算方向的Gelly組件棧。今天主要來看一下Flink CEP。
基本概念
- 簡單事件
簡單事件的特點基本上是唯一事件,可以簡單的通過數據就可以觀察到事件。而不存在與需要查看多個事件之間的關系而能夠判定的事件規則。
例如某一指標發生次數超過一定閾值后則進行告警。直接通過查詢一定時間范圍內該事件產生的次數即可進行計算。并且輸出結果。 - 復雜事件
基于簡單事件的組合而成復雜事件,復雜事件相對于簡單事件就不是唯一的事件。它通過處理多個事件組成,復雜事件當特定的事件流發生時才會進行某些動作的觸發,通知、告警、觸發其他事件等。
- 事件關系
只有復雜事件才會有事件之間的關系,復雜事件之間的關系包括多種類型。例如有
時序關系、聚合關系、層次關系、因果關系、抽象關系或依賴關系等。 - 時序關系
事件與事件之間都會存在時序關系,例如:A事件發生時B事件的狀態隨A事件的改變而改變。 - 聚合關系
個體事件的聚合關系,例如當A事件的次數發生30次以上則觸發告警信息。 - 層次關系
例如A事件是B事件的父類,從A類事件到B類時間是具體化的。 - 依賴關系
例如A事件的產生依賴與B事件的觸發。否則不會觸發A事件。則說明A事件依賴與B事件的觸發。 - 因果關系 例如B事件的觸發是因為A事件的狀態發生了改變,則A的改變則為因,B的觸發即為果。有因才有果!
- 事件處理 復雜事件處理目的是通過相應的規則引擎來對實時數據做相應的數據處理策略。這些策略包括了
推斷、根因、決策、預測等內容。
- 事件推斷
主要用于事件狀態之間的約束關系,通過一部分的狀態從而推斷出另一部分的狀態。 - 事件根因
當有了結果之后,并且知道初始狀態,可以查到造成該結果的某個具體動作的原因。 - 事件決策
得到結果的狀態,知道初始狀態,從而決定要執行的操作。 - 事件預測
該種情況知道初始狀態,以及要發生的動作,預測未知的結果。
CEP常用場景
Flink CEP能夠利用的場景較多,在實際業務場景中也有了廣泛的使用案例與經驗積累。CEP常用與網絡攻擊檢測、風控模型、信用卡欺詐等。
- 網絡攻擊檢測
基于實時的數據流來進行網絡攻擊檢測。例如常見的拖庫行為產生的突發SQL掃描或網絡帶寬突增均能通過CEP來進行判定。
例如常見規則:當帶寬突增、數據庫資源用量突然變高時直接進行預警。 - 網絡信貸
基于CEP構建的信用卡欺詐或當前的互聯網貸款等。之前的貸款審批流程都是天級,當前的互聯網貸款都是小時級甚至分鐘級放款。而基于此基本都是通過CEP來實現用戶的信用評分。例如實時導入用戶的相關信息, 年齡,身份證號,芝麻信用分等等。規則或為: 年齡 < 65 ,有房產 ,無不良債務等
感謝各位的閱讀!關于“Flink中CEP指的是什么意思”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!