风控系统之CEP - Esper还是Flink?

Posted Fintech技术圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了风控系统之CEP - Esper还是Flink?相关的知识,希望对你有一定的参考价值。

CEP的概念的核心是沿着时间轴维度的数据分析,把数据流作为输入,根据一系列预定义的规则,把数据(或部分数据)重定向给监听者;当发现数据流中的隐含的模式(Pattern)时触发事件。在大量数据被产生出来并需要进行实时地分析的场景下,CEP特别有用。


Flink官网的一个简单案例:数据中心机架的温度被实时监控,每隔一小段时间,监控系统收到一个当前温度报告,当温度超过阈值时会产生Warning事件,连续两个Warning事件会产生Alert事件,Alert事件则会触发降温的动作。


以下图片非常形象地说明了数据处理与事件处理的区别,摘自商业产品Sybase CEP的相关资料:



在线上金融服务中,用户的所有操作都可以视为一连串的事件,基于时间窗口分析可以发现一些规律。例如,在我们农村电动车摩托车消费分期的场景中,通常办单频度很低,如果过去一小时内在同一个网点出现超过3起贷款申请,可以视为经销商套现风险,需要加强审核;如果过去一小时内,同一个县的订单,出现多个工作单位信息一样的用户,也有可能是团伙欺诈。类似的风险提示规则会有非常多,而且随着业务的发展,风控团队的经验累积,会形成非常庞大的规则库,不同于通常规则引擎所处理的基于数据的规则,这些都是基于事件的规则。


风控团队需要强有力的工具,来快速创建和管理这样的CEP规则,并且实时监控系统中的事件流。CEP系统可以显著提高系统的监控和分析能力。


前述Flink网站上那个温度监控器的例子,如果用普通手段,比如Java代码实现,非常复杂,业务团队无法直接操作,开发上线周期漫长,无法跟上市场变化,而在Flink平台上用短短几行代码就可以实现这种业务事件Pattern:


Pattern<MonitoringEvent, ?> warningPattern = Pattern.<MonitoringEvent>begin("First Event")
    .subtype(TemperatureEvent.class)
    .where(evt -> evt.getTemperature() >= TEMPERATURE_THRESHOLD)
    .next("Second Event")
    .subtype(TemperatureEvent.class)
    .where(evt -> evt.getTemperature() >= TEMPERATURE_THRESHOLD)
    .within(Time.seconds(10));


如果是程序员,哪怕从来没有接触过Flink,应该也能看懂大概的意思,明白它比从头开始从Java代码来实现要简单很多。利用Flink CEP,即Flink 的复杂事件处理库,用户可以快速检测无尽数据流中的复杂模式。


Esper是一个历史悠久的纯Java开源复杂事件和事件流引擎,可以监测事件流,并在特定事件发生时触发某些动作。Esper性能良好,能够实时或者接近实时处理事件(或消息),具有高吞吐量、低响应时间和支持复杂计算等特点。并且Esper的EPL是对业务人员非常友好的类SQL工具,例如,计算最近两次温度监控器数据的平均温度:


     select avg(temperature) from SensorEvent.win.length(2)


通过引入时间窗口的概念,用户可以用类似SQL的语法分析一个时间窗口内的所有事件。


Flink和Esper之间还存在一些显著的区别如下:

- Esper内置存储数据库,Flink只是一个处理框架,依赖外部数据存储;

- Esper提供了类SQL的复杂事件处理语言,非常简单易用,而Flink目前通过API提供类似功能;

- Esper的集成性对于传统的企业软件比较友好,而Flink诞生于开源社区,更容易与各种流行的开源工具集成(例如Kafka);

- Esper相对比较稳定,从2008年发布第一个版本到现在,使用的用户众多,而Flink大概在2015年才有第一个稳定版本;

- Esper也有商业产品,Flink是Apache旗下完全开源的项目


相对而言,如果不购买大厂的商业产品,当下,Esper是更靠谱的选择,不过Flink也前途光明。




推荐阅读往期早餐会热门文章:





 








原创Fintech领域技术、产品和商业模式全球观察

每日7:00AM准时推送

参与早餐会,加入Fintech从业者微信群



以上是关于风控系统之CEP - Esper还是Flink?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Esper CEP 引擎与 DDS 连接

大数据之CEP报警信息

大数据计算引擎之Flink Flink CEP复杂事件编程

Flink之CEP-API分析

Flink-CEP之NFA

springboot中使用esper入门