项目下载地址 https://github.com/peigenxiao/learning-flink
需求:
电商公司出于提高用户的复购率、粘连度等目的经常会推出各种营销手段,运营部们希望数据中心能实时跟踪用户的购买行为作为推送各种优惠的依据,能实时把可以推送优惠券的用户推送给相关应用;
分析:
- 用户的购买行为可以用很多指标来衡量,例如:购买路径长度、购买次数、购买频率、感兴趣类日、感兴趣商品等等。
- 本项目以跟踪用户购买路径长度为例来做分析:用户在手机App上操作行为我们抽象为事件,通过跟踪用户事件来实时触发指定的操作,比如推送优惠券。在众多的事件中,购买路径长度是推送优惠券比较关注的一个指标,对于提高复购率比较关键
- 一个用户在App上经过多次操作之后,比如浏览了几个商品、将浏览过的商品加入购物车、将购物车中的商品移除购物车等等,最后发生了购买行为,那么对于用户从开始到最终达成购买所进行操作的行为的次数,我们定义为用户购物路径长度。
我们把用户的各做操作抽象为以下四类(实际中会更多):
>VIEW_PRODUCT
>ADD_TO_CART
>REMOVE_FROM_CART
>PURCHASE
- 用户在最终下单购买前,会经过一系列操作:VIEW_PRODUCT、ADD_TO_CART、REMOVE_FROM_CART的不同组合,每个也可以重复操作多次,最终发生购买即PURCHASE的行为,然后我们对该用户计算其购物路径长度
- 当购买路径长度大于配置的最大路径时通过消息触发后续营销行为
- 不同频道最大购买路径设置可能不一样(动态配置/动态规则)
方案:
利用kafka消息队列收集用户操作作为事件流,利用kafka将配置参数作为广播流,利用flink将两个流进行合并处理写入kafka