本文留言,邀請好友點贊,點贊數超過20有獎勵,具體獎勵內容,可以細讀本文。
ppt全文可關注公眾號,后台輸入 flink 獲取。
CEP業務場景
復雜事件處理(Complex Event Process,簡稱CEP)用來檢測無盡數據流中的復雜模 式,擁有從不同的數據行中辨識查找模式的能力。模式匹配是復雜事件處理的一個強 大援助。 例子包括受一系列事件驅動的各種業務流程,例如在安全應用中偵測異常行為;在金 融應用中查找價格、交易量和其他行為的模式。其他常見的用途如欺詐檢測應用和傳 感器數據的分析等。
說了這么多可能還是覺得比較抽象,那么我們可以看看這次滴滴分享的FlinkCEP在滴滴中的業務場景。
吐槽時刻:
雖然,業務場景ppt寫的很好,但是最近幾次順風車事故,給大家留下了糟糕的印象。大數據沒用起來,cep其實應該也可以用在順風車安全檢測上吧。
Flink CEP
Flink的CEP是基於Flink Runtime構建的實時數據規則引擎,擅長解決跨事件的匹配問題。
可以看看,滴滴的屁屁踢上給出的兩個demo
Flink CEP的特點
動態規則
其實,對於實時領域的規則引擎,我們不想每次修改都要打包編碼,只希望簡單修改一下規則就讓它能執行。
當然,最好規則是sql 的形式,運營人員直接參與規則編寫而不是頻繁提需求,很麻煩。。。。此處,省略萬字。。
要知道flink CEP官網給出的API也還是很豐富的,雖然滴滴這比也給出了他們完善的內容。
flink官方的CEP文章,浪尖及浪尖組織的flink小團隊,已經翻譯過了。鏈接如下:
https://github.com/crestofwave1/oneFlink/blob/master/doc/CEP/FlinkCEPOfficeWeb.md
那么,為了實現動態規則編寫,滴滴的架構如下:
具體的規則實現如下:
可以看到,其規則還是要編碼成java代碼,然后再用groovy動態編譯解析,不知道效率如何。。。
對於規則引擎,當然很多人想到的是drools,這個跟flink結合也很簡單,但是效率不怎么苟同。
Flink CEP的SQL實現
熟悉flink的小伙伴肯定都知道Flink的SQL引擎是基於Calcite來實現的。那么細心的小伙伴,留學簽證在calcite官網可以發現,calcite有個關鍵字MATCH_RECOGNIZE。可以在這個網頁搜索,找到MATCH_RECOGNIZE關鍵字使用。
http://calcite.apache.org/docs/reference.html
那么這時候可能會興沖沖寫個demo。
很掃興的它報錯了:
那么問題來了,calcite支持而flink不支持,為啥?
趕緊發了個issue,然后迅速得到官方回復:
但是,翻翻阿里的blink使用手冊和華為的flink使用手冊發現兩者都支持。
好吧。其實,很不服氣,周末,除了健身就是加班。
波折一番,解決了,需要修改flink-table相關的內容,執行計划,coden等。
最終,實現了。
超過20個,即可獲得該運行通過完整代碼。
歡迎關注浪尖微信公眾號,學習掌握大數據生態技術。
更多優質內容,歡迎掃描二維碼加入浪尖知識星球,各類教程,浪尖原創源碼視頻,優質技術短文應有盡有。
?有意義留言,然后邀請好友點贊,超過20,即可獲得前面所述源碼!
文章來源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/82156679