分组字段。不同字段分组、多字段分组的情况在风控规则的应用中非常常见。有如下规则样例: • 以用户 ID 分组:"用户的下单次数"; • 以用户 ID、区域 ID 作为分组:"用户同一段时间内不同区域的订单数"。
聚合函数。聚合函数包括业务常用的聚合逻辑,规则引擎依赖 Flink 内置丰富的累加器,并在 Accumulator 接口的基础上进行了根据需求场景的自定义实现。样例规则如下: • A 门店近 30 分钟独立消费用户数小于 100; • B 门店新客消费金额大于 300。
窗口周期。窗口周期也即每个窗口的大小,如业务方可能希望在持续 30 分钟的秒杀活动周期内运行规则, 或者希望重点关注异常时段。 • 每 30 分钟时间窗口内,单个用户发起超过 20 笔未支付订单; • 凌晨 1 点至 3 点,单个用户支付订单数超 50 笔。
窗口类型。为了面对不同的业务需求,我们将业务规则中常见的窗口类型集成到规则引擎内部。其中包括 滑动窗口、累计窗口、甚至是无窗口(即时触发)。
聚合前的过滤条件: • 只对"下单事件"进行统计; • 过滤门店"虚拟用户"。
聚合后的过滤条件: • 用户 A 在 5 分钟内下单次数 "超过 150 次"; • 用户 B 在 5 分钟内购买金额 "超过 300 元"。
计算表达式。风控规则的字段口径通常是需要组合计算的,我们在表达式计算和编译中集成了更轻便和更 高性能的 Aviator 表达式引擎。规则样例如下: • 应收金额大于 150 元(应收金额 = 商品金额合计 +运费 + 优惠合计); • 通过 POS 端支付的应收金额大于 150 元。
行为序列。行为序列其实也是事件与事件之间的组合,他打破了以往风控规则只能基于单事件维度描述事 实的壁垒,在事件与事件之间的事实信息也将被规则引擎捕捉。规则样例如下: • 用户 A 在 5 分钟内依次做了点击、收藏、加购; • 用户 B 在 30 分钟前领了优惠券,但是没有下单。
以上内容摘自《Apache Flink 案例集(2022版)》电子书,点击https://developer.aliyun.com/ebook/download/7718 可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。