zoukankan      html  css  js  c++  java
  • 从滴滴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

  • 相关阅读:
    Blank page instead of the SharePoint Central Administration site
    BizTalk 2010 BAM Configure
    Use ODBA with Visio 2007
    Handling SOAP Exceptions in BizTalk Orchestrations
    BizTalk与WebMethods之间的EDI交换
    Append messages in BizTalk
    FTP protocol commands
    Using Dynamic Maps in BizTalk(From CodeProject)
    Synchronous To Asynchronous Flows Without An Orchestration的简单实现
    WSE3 and "Action for ultimate recipient is required but not present in the message."
  • 原文地址:https://www.cnblogs.com/mazhujun/p/9627338.html
Copyright © 2011-2022 走看看