从滴滴的Flink CEP引擎说起

发布时间:2022-07-03 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了从滴滴的Flink CEP引擎说起脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

CEP业务场景

复杂事件处理(Complex Event PRocess,简称CEP)用来检测无尽数据流中的复杂模 式,拥有从不同的数据行中辨识查找模式的能力。模式匹配是复杂事件处理的一个强 大援助。 例子包括受一系列事件驱动的各种业务流程,例如在安全应用中侦测异常行为;在金 融应用中查找价格、交易量和其他行为的模式。其他常见的用途如欺诈检测应用和传 感器数据的分析等。

说了这么多可能还是觉得比较抽象,那么我们可以看看这次滴滴分享的FlinkCEP在滴滴中的业务场景。

从滴滴的Flink CEP引擎说起

从滴滴的Flink CEP引擎说起

从滴滴的Flink CEP引擎说起

 

吐槽时刻:

虽然,业务场景ppt写的很好,但是最近几次顺风车事故,给大家留下了糟糕的印象。大数据没用起来,cep其实应该也可以用在顺风车安全检测上吧。

Flink CEP

Flink的CEP是基于Flink Runtime构建的实时数据规则引擎,擅长解决跨事件的匹配问题。可以看看,滴滴的屁屁踢上给出的两个demo

从滴滴的Flink CEP引擎说起

从滴滴的Flink CEP引擎说起

Flink CEP的特点

从滴滴的Flink CEP引擎说起

从滴滴的Flink CEP引擎说起

 

动态规则

其实,对于实时领域的规则引擎,我们不想每次修改都要打包编码,只希望简单修改一下规则就让它能执行。

当然,最好规则是SQL 的形式,运营人员直接参与规则编写而不是频繁提需求,很麻烦。。。。此处,省略万字。。

知道flink CEP官网给出的API也还是很丰富的,虽然滴滴这比也给出了他们完善的内容。

 

从滴滴的Flink CEP引擎说起

从滴滴的Flink CEP引擎说起

flink官方的CEP文章,浪尖及浪尖组织的flink小团队二手QQ转让地图已经翻译过了。链接如下:

https://gIThub.COM/crestofwave1/oneFlink/blob/master/doc/CEP/FlinkCEPOfficeWeb.md

那么,为了实现动态规则编写,滴滴的架构如下:

从滴滴的Flink CEP引擎说起

具体的规则实现如下:

从滴滴的Flink CEP引擎说起

可以看到,其规则还是要编码成java代码,然后再用groovy动态编译解析,不知道效率如何。。。

对于规则引擎,当然很多人想到的是drools,这个跟flink结合也很简单,但是效率不怎么苟同。

Flink CEP的SQL实现

熟悉flink的小伙伴肯定都知道Flink的SQL引擎是基于Calcite来实现的。那么细心的小伙伴,在calcite官网可以发现,calcite有个关键字MATCH_RECOGNIZE。可以在这个网页搜索,找到MATCH_RECOGNIZE关键字使用。

http://calcite.apache.org/docs/reference.htML

从滴滴的Flink CEP引擎说起

那么这时候可能会兴冲冲写个demo。

final String sql = "select frequency,word,timestamp1 "
    + "  From wc match_recognize "
    + "  ("
    + "       order by  timestamp1 "
    + "       measures A.timestamp1 as timestamp1  ,"
    + "       A.word as  word ,"
    + "       A.frequency as  frequency "
    + "       ONE ROW PER MATCH "
    + "    pattern (A B) "
    + "    within interval '5' second "
    + "    define "
    + "      A AS A.word = 'bob' , "
    + "      B AS B.word = 'kaka' "
    + "  ) mr";

很扫兴的它报错了:

从滴滴的Flink CEP引擎说起

 

那么问题来了,calcite支持而flink不支持,为啥?

赶紧发了个issue,然后迅速得到官方回复:

 

从滴滴的Flink CEP引擎说起

 

 

但是,翻翻阿里的blink使用手册和华为的flink使用手册发现两者都支持。

好吧。其实,很不服气,周末,除了健身就是加班

波折一番,解决了,需要修改flink-table相关的内容,执行计划,coden等。

最终,实现了。

从滴滴的Flink CEP引擎说起

脚本宝典总结

以上是脚本宝典为你收集整理的从滴滴的Flink CEP引擎说起全部内容,希望文章能够帮你解决从滴滴的Flink CEP引擎说起所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。