基于ID_MAPPING(ID拉通)实现多源用户整合及行为数据采集

1、序言:
全渠道数据采集,全域用户ID打通,全场景多维度数据分析,全渠道精准用户触达,是现在企业数字化营销的必备技能。同时数据安全也成为大家的关注问题,脱离数据上云,私有化服务成为大家的必选,对于好多中小型公司来说,去购买行业内的营销智能产品成本都点高,或者说是大才小用,现在我们就基于一个小案例来讲解和设计一下如何实现这个产品。

2、场景
现在举一个新零售的例子,某安保险实现线上产品销售,有自己产品官网、H5、小程序等,对于他们的交集用户及行为很难分析,多端新增,多端活跃等指标都是很有价值的用户,现在需要结合全渠道分析产出高价值的用户、并分析精准营销的行动与反馈,真正的实现数字化营销。
3、设计方案
3.1、简单架构图
在这里插入图片描述

只面向一个数据量不大(日1w以内)一个简单的架构图
3.2、用户数据采集
业界厂商都会提供他们自己的SDK程序,集成到自己的程序中,实现用户及行为数据的自动采集,现在实现自己的小产品就需要自己开发,对于网页来说,JS SDK 是运行于网页的一段 Javascript 代码,会在网站用户加载网页后自动启动,并收集用户的行为数据。包括数据来源,动作坐标,操作内容,请求数据,操作系统,屏幕分辨率,访问来源,用户唯一标识 ID,访问唯一标识 ID,访问时间、页面标题等。尽可能的多搜集,这里我们不具体研究SDK如何生成,对于前端开发的小伙伴来说,这些都是小事儿。

3.3、IDMAPPING的设计
对于ID拉通来说,厘清业务场景的非常重要,ID包括有,手机号、身份证号、faceID、设备id、账号Id、IMEI,openID等等,对于复杂的业务场景,他们的ID关系都是多对多的,如何拉通这些ID就成为了难点。高级的ID拉通可利用线性回归预测id关系,利用数据分析中的高级算法实现id拉通,实现用户ID图。对于很多小型业务场景来说,没有必要去高一个很重的工程来计算他的Id。
现在来设计一个简单的IDMAPPING 设计方法,这套方法也在实践中证明比较有效。一个典型的场景是APP端与服务端的关联,或者是APP登陆前后的关联,有一个用户打开网页浏览产品、查看详情、登陆账号、收藏、加入购物车、购买产品,下面介绍一下如何用idMapping来解决拉通互用行为,从“浏览"到”购买“的转化率解决运营分析的需求。
这个例子中我门用到的id为账号ID和设备ID,我们简称uid和gid,gid为设备id,每条源数据都应该有这个id,生成策略暂不讲解,通过ID关联,产出这两个ID的关联关系。
小李->第一次用公司电脑浏览页面查看的A产品的,得到了gid。
superId = gid1
set gid1->superId
->看到了某款产品不错,登陆账号加入购物车,登陆的时候得到了gid和uid
superId = get gid1
set uid1->superId
这样可以为每条数据添加到superId,以superId来分析用户行为。
在这里插入图片描述

当然这只是一个简单的场景,一般情况下还会出现多设备,以及多用户单设备的情况,也会涉及到ID移主(superId的跟新),这个时候我们需要配饰id的配置属性,比如是否单例,id之间的优先关系。比我我们配置了uid为单例(uid与superID只存在1:1的关系),切uid的优先级最大。
接着上面的案例,小李回家后用自己电脑登陆了账号看自己的产品,当然刚开始他也没有登陆(gid2)
superId = if get gid2 == null ?gid2 : get gid2
set gid2 -> superId
登陆账号后(uid,gid2)
superId = if get uid1 == null ?uid : get uid
set uid -> superId
set gid2 -> superId (ID做出了更新操作)

在这里插入图片描述

最终我们得到了一种ID映射关系表

在这里插入图片描述

这歌时候我们使用原始ID的其中一个作为superId,后续我们也可以自己设计Id生成逻辑,避免后续的数据倾斜。

4、系统技术选型
4.1、使用的 Key-Value 数据库
1、存储IDMAPPING关系,看用户量选择技术,用户量少的话使用Redis完全可以(完全当作数据存储),如果Id数量很大,我们可以使用Redis+Hbase或者Pegasus。
4.2、使用KAFKA当作数据缓存
4.3、流式数据处理
1、使用flink或者spark,消费用户数据生成Id关系及数据清理,注意使用大数据技术要考虑并非处理,在处理Id关系的时候要记得加锁,保证Id映射的一致性。数据量小的话我们完全可以脱离这些大数据框架,完全有java Or python来简单的处理这些数据。
2、处理结果落地,为了保证不影响前端的数据处理流程速度,在处理及落地之间加入消息队列,将数据load到mysql Or ES OR Mongo OR CK,着就看数据量和业务需求了

5、基于ID关系产出用户标签
1、用户标签可以分为:用户属性标签,用户行为标签,比如:地理位置(属性标签)、近一年是否有购买产品(行为标签)等。
同样也可以分为实时标签和离线标签,有效标签和无效标签,比如:近三分钟时候有登陆(实时标签),近三分钟涉及到了时效性,所以有了有效标签和无效标签的区别。
在这里插入图片描述

TAG可以配置自己的属性(有效时间,创建时间、标签英文名等)
2、对于标签的产出我们可以算用的技术有kudu和hbase,用着用非关系型数据库来存储用户标签,后续也可以LOAD入ES OR CK。为需求提供支持。

6、总结
这些只是一个简单的逻辑想法,希望可以帮到大家,当然在各个厂商里有更好的技术和方法也是值得我们去学习,去进步。下面用最简单的java实现了这些功能,感兴趣可以瞅瞅。
码云地址:https://gitee.com/liyong9177/deepuser
给一个start吧

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
课程简介:  本项目课程是一门极具综合性和完整性的大型项目课程;课程项目的业务背景源自各类互联网公司对海量用户浏览行为数据和业务数据分析的需求及企业数据管理、数据运营需求。 本课程项目涵盖数据采集与预处理、数据仓库体系建设、用户画像系统建设、数据治理(元数据管理、数据质量管理)、任务调度系统、数据服务层建设、OLAP即席分析系统建设等大量模块,力求原汁原味重现一个完备的企业级大型数据运营系统。  拒绝demo,拒绝宏观抽象,拒绝只讲不练,本课程高度揉和理论与实战,并兼顾各层次的学员,真正从0开始,循序渐进,每一个步骤每一个环节,都会带领学员从需求分析开始,到逻辑设计,最后落实到每一行代码,所有流程都采用企业级解决方案,并手把手带领学员一一实现,拒绝复制粘贴,拒绝demo化的实现。并且会穿插大量的原创图解,来帮助学员理解复杂逻辑,掌握关键流程,熟悉核心架构。   跟随项目课程,历经接近100+小时的时间,从需求分析开始,到数据埋点采集,到预处理程序代码编写,到数仓体系搭建......逐渐展开整个项目的宏大视图,构建起整个项目的摩天大厦。  由于本课程不光讲解项目的实现,还会在实现过程中反复揉和各种技术细节,各种设计思想,各种最佳实践思维,学完本项目并勤于实践的话,学员的收获将远远超越一个项目的具体实现,更能对大型数据系统开发产生深刻体悟,对很多技术的应用将感觉豁然开朗,并带来融会贯通能力的巨大飞跃。当然,最直接的收获是,学完本课程,你将很容易就拿到大数据数仓建设或用户画像建设等岗位的OFFER课程模块: 1. 数据采集:涉及到埋点日志flume采集系统,sqoop业务数据抽取系统等; 2. 数据预处理:涉及到各类字典数据构建,复杂结构数据清洗解析,数据集成,数据修正,以及多渠道数据的用户身份标识打通:ID-MAPPING等;3. 数据仓库:涉及到hive数仓基础设施搭建,数仓分层体系设计,数仓分析主题设计,多维分析实现,ETL任务脚本开发,ETL任务调度,数据生命周期管理等;4. 数据治理:涉及数据资产查询管理,数据质量监控管理,atlas元数据管理系统,atlas数据血缘管理等;5. 用户画像系统:涉及画像标签体系设计,标签体系层级关系设计,各类标签计算实现,兴趣类标签的衰减合并,模型标签的机器学习算法应用及特征提取、模型训练等;6. OLAP即席分析平台:涉及OLAP平台的整体架构设计,技术选型,底层存储实现,Presto查询引擎搭建,数据服务接口开发等;7. 数据服务:涉及数据服务的整体设计理念,架构搭建,各类数据访问需求的restapi开发等;课程所涉及的技术: 整个项目课程中,将涉及到一个大型数据系统中所用到的几乎所有主要技术,具体来说,包含但不限于如下技术组件:l Hadoopl Hivel HBasel SparkCore /SparkSQL/ Spark GRAPHX / Spark Mllibl Sqoopl Azkabanl Flumel lasal Kafkal Zookeeperl Solrl Prestop
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值