• 从滴滴flinkCEP说起


    640?wx_fmt=png

    本文留言,邀请好友点赞,点赞数超过20有奖励,具体奖励内容,可以细读本文。

    ppt全文可关注公众号,后台输入 flink 获取。

    640?wx_fmt=png

    640?wx_fmt=pngCEP业务场景

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

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

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    吐槽时刻:

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

    640?wx_fmt=pngFlink CEP

    Flink的CEP是基于Flink Runtime构建的实时数据规则引擎,擅长解决跨事件的匹配问题。

    可以看看,滴滴的屁屁踢上给出的两个demo

    640?wx_fmt=png

    640?wx_fmt=png

    Flink CEP的特点

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png动态规则

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

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

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

    640?wx_fmt=png

    640?wx_fmt=png

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

    https://github.com/crestofwave1/oneFlink/blob/master/doc/CEP/FlinkCEPOfficeWeb.md

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

    640?wx_fmt=png

    具体的规则实现如下:

    640?wx_fmt=png

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

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

    640?wx_fmt=pngFlink CEP的SQL实现

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

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

    640?wx_fmt=png

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

    
    

    很扫兴的它报错了:

    640?wx_fmt=png

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

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

    640?wx_fmt=png

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

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

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

    最终,实现了。

    640?wx_fmt=png

    超过20个,即可获得该运行通过完整代码。

    640?wx_fmt=jpeg

    欢迎关注浪尖微信公众号,学习掌握大数据生态技术。

    640?wx_fmt=png

    更多优质内容,欢迎扫描二维码加入浪尖知识星球,各类教程,浪尖原创源码视频,优质技术短文应有尽有。

    640?wx_fmt=jpeg

    640?wx_fmt=gif?有意义留言,然后邀请好友点赞,超过20,即可获得前面所述源码!


    文章来源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/82156679

  • 相关阅读:
    ==与is区别
    词典操作
    前端工具---取色截图测量
    css零碎合集
    基于bootstrap的在线布局工具
    js常用功能工具库--Underscore.js
    前端资源荟萃
    在线绘图工具---processon
    表单form浅谈
    前端工具----iconfont
  • 原文地址:https://www.cnblogs.com/mazhujun/p/9627338.html
Copyright © 2020-2023  润新知