用户画像-轻量级基于spark人群圈选
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户画像-轻量级基于spark人群圈选相关的知识,希望对你有一定的参考价值。
参考技术A 人群圈选,也叫人群定向。在业界有中广泛的业务场景。业界比较优秀的方案有百度基于doris来实现海量用户的圈选,可以实现千万级人群秒级圈选。但是这种方案比较复杂:
1、需要数仓同学加工二值化tag,构建用户二值化tag到用户bitmap集合的倒排索引
2、需要通过构建哈希分桶列,解决超大bitmap基数交并集问题
3、需要数仓同学构建全局字典,防止不连续id带来的roaring bitmap性能问题
4、需要通过to_bitmap函数解决动态标签与静态标签的组合圈选问题
5、需要团队有doris的运维能力
本博文介绍一种基于spark的轻量级圈选,可以实现千万级人群分钟级(5分钟以内)圈选。
业界还有基于ES、MR、离线+服务bitmap等方案(我们选型时,doris还不火,故不在此列)。
ES:大人群的滚动导出会给集群带来很大压力的;另外就是如果构建一个大而全画像宽表的话,这个表会很稀疏,所以我们会按业务主题构建多个es表,这样就会涉及到多个表之间join的问题,而es是不支持join语义的。
MR:老方案了,性能不大行
es+bitmap方案:这个方案扩展起来有点doris的味道。但是自己开发的话,其实比较复杂,而且没有居多性能优化手段的话,性能没那么理想,大都是比不上spark的。
因此,最后我们选择了spark做为人群圈选的方案。
我们构建了用户画像相关的一站式平台,前端平台包括人群管理、标签管理、画像分析等相关功能。
中间层服务对应包含人群管理中心、人群任务调度、人群解析引擎(负责前端json到Spark SQL的转化)、标签管理中心的模块;当然也包含权限、安全、流控、人群监控等辅助模块。
存储层,我们主要基于spark进行人群定向,依托Hbase/Redis做用户单到点查询,用mysql做配置信息存储。
我们选取两个主题的画像进行交集圈选,圈选结果千万级,测试结果如下:
浅谈用户画像
获取用户画像的四个途径及应用
(1)媒体的数据平台:传入用户的ID来精准获取,比如腾讯DMP、品牌数据银行、电信运营商、数据监测平台MobTech
(2)企业自己构建用户画像:自有触点收集丰富的数据,可以根据用户习惯唤醒用户做复购
(3)百度指数、360趋势:搜索目标关键词,获取大概的用户画像。
(4)媒体的数据平台圈选人群:比如直接在腾讯DMP筛选:性别女、年龄25-30、杭州地区、月入1w+
以上是关于用户画像-轻量级基于spark人群圈选的主要内容,如果未能解决你的问题,请参考以下文章