RoaringBitmap应用场景

背景信息

几乎所有行业(如互联网、游戏、教育等)都有实时精准营销的需求。通过系统生成用户画像,在营销时通过条件组合筛选用户,快速提取目标群体,例如:

  • 电商行业中,商家在运营活动前,需要根据活动的目标群体的特征,圈选出一批目标用户进行广告推送或进行活动条件的判断。
  • 游戏行业中,商家需要根据玩家的某些特征进行圈选,针对性地发放大礼包,提高玩家活跃度。
  • 教育行业中,需要根据学生不同的特征,推送有针对性的习题,帮助学生查缺补漏。
  • 搜索、门户、视频网站等业务中,根据用户的关注热点,推送不同的内容。

这些行业都有一些共同的业务痛点:

  • 数据量庞大,运算量也极大。
  • 用户标签多、字段多,占用存储空间也多。
  • 字段多,可能会超过数据库的字段数限制,一般数据库最多支持1000多个字段。
  • 使用数组替代多字段存储标签,需要数据库支持倒排索引,但并不是所有数据库都支持倒排索引。
  • 使用数组替代多字段存储标签,加上倒排索引,存储空间会暴增。
  • 圈选条件组合多样化,没有固定索引可以优化,如果每个字段一个索引,存储空间又会暴增。
  • 性能要求高,因为实时营销要求秒级响应。
  • 数据更新时效要求高,用户画像要求近实时的更新,否则可能圈选到不精准用户(例如用户昨天在浏览手机,昨晚已下单,但是数据未实时更新,那么手机卖家圈选时这个用户就会被选中,但是该用户实际上已经不是目标群体)。

实现方案

方案:实时精准营销(人群圈选)

楼主以前就遇到对习题打标签,根据学生不同的特征,推送有针对性的习题的需求,当时一开始用了实时精准营销(人群圈选)里的方案一的mysql方式来实现,那sql写得长得一匹,性能又差(手动狗头),最后还是换成es利用倒排索引来优化,也就是实时精准营销(人群圈选)里的方案二。

但显然,实时精准营销(人群圈选)中的方案三,利用PostgreSQL的RoaringBitmap插件来实现最优,当前公司的用户标签系统也是用了这个方案,于是搜索资料了解学习下:

总结

  • 解决问题,没有最好的方案,只有更合适的方案
  • 多收集信息,多积累经验,站在巨人的肩膀不香吗
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值