,发现一个满足一个特定条件的用户,在做出某类指定行为时,实时给用户推送短信,app消息等...代码结构beans1.MarketingRule:对业务方给定规则的抽象2.EventCondition:对规则事件的抽象...,具体的转化如下:2.使用列表数据结构,装载业务方给定的key,把源源不断的给定的用户事件映射为列表的索引,最后根据业务方给定的行为规则到组合条件的事件列表中找到对应的索引号,来作为最终结果(拼接),伪代码如下...t9,t5 - t6,t5 - t9等,我们可以考虑对条件区间进行拆分,重用t4 - t8的结果,这种方案是基于底层数据量大复用结果的考虑,但是对于clickhouse来说,受影响的是查询的次数,经过考虑对等同于...Key的设计思路动态Key数据复制的大致思路业务方投放的规则可能是按照设备Id来投放分组的,也可能是Ip地址等其他分组条件,如果每种条件都写一个任务往往比较麻烦,本文提供一种思路:把业务方规定的投放key...与事件包装为一个对象,通过反射机制获取分组的具体值,业务方可能给出N多个不重复的key,这样就把原来的数据放大了N倍,特殊的一个条件可能会按照多个key来分组,于是我们考虑把事件包装为[分组key的具体值