1.背景介绍
异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防场景做入侵检测等等。
根据业务要求的不同,流计算在其中扮演着不同的角色:既可以做在线的欺诈检测,也可以做决策后近实时的结果分析、全局预警与规则调整等。
本文先介绍一种准实时的异常检测系统。
所谓准实时,即要求延迟在100ms以内。比如一家银行要做一个实时的交易检测,判断每笔交易是否是正常交易:如果用户的用户名和密码被盗取,系统能够在盗取者发起交易的瞬间检测到风险来决定是否冻结这笔交易。
这种场景对实时性的要求非常高,否则会阻碍用户正常交易,所以叫做准实时系统。
由于行动者可能会根据系统的结果进行调整,所以规则也会更新,流计算和离线的处理用来研究规则是否需要更新以及规则如何更新。
2.系统架构与模块综述
为了解决这个问题,我们设计如下的系统架构:
- 在线系统,完成在线检测功能,可以是web服务的形式:
- 针对单条事件进行检测
- 根据全局上下文进行检测,比如全局黑名单
- 根据用户画像或近期一段时间的信息进行检测,比如最近20次交易时间与地点
- kafka,把事件与检测的结果及其原因发送到下游
- flink近实时处理
近实时的更新用户的属性,比如最近的交