- 一、用户画像基础
- 二、标签指标体系
- 三、标签平台管理
- 四、标签数据开发
- 五、标签数据存储
- 六、标签调度推数
- 七、用户画像系统
- 八、用户画像应用
三、标签平台管理
标签平台是一个中间层的服务,为前台提供的是数据支持。另外一方面标签平台的加工,依赖底层的基础数据平台的原始数据
1、新建标签
- 标签管理平台中,每个标签开发时,首先需要在管理平台上注册,生成标签元数据,然后我们在根据元数据信息在大数据平台进行逻辑加工
2、标签视图与查询
- 标签视图与查询功能主要面向业务人员使用,标签视图版块中,层级化地展示了目前正在使用的全部用户标签。方便应用方点击查看每个标签的详细情况
3、标签管理
- 标签管理,是用户画像是开发的起点,所有的用户画像都起始于对标签的定义和规则的指定。
- 标签管理是基于标签整个生命周期进行管理。
- 标签的生命周期包括“标签创建、标签审核、标签上线、标签评估、标签变更、标签下线”六个部分。
四、标签数据开发
1、标签开发流程
标签的开发在hive库完成,因为标签的模型体系是基于数据仓库而来,所以大致流程也和数据仓库的开发流程类似,具体工作流程如下:
2、标签表模型设计
表结构设计也是画像开发过程中需要解决的一个重要问题。表结构设计的重点是要考虑如下这3个方面的问题。
- 存储哪些信息、
- 如何存储(数据分区)、
- 如何应用(如何抽取标签)
不同业务背景有不同的设计方式:
2.1 横表
以Hive为例,我们最常用的就是横表,也就是一个 key,跟上它的所有标签。横表的问题:
- 由于用户的标签会非常多,而且随着用户画像的深入,会有很多细分领域的标签,这就意味着标签的数量会随时增加,而且可能会很频繁。
- 不同的标签计算频率不同,比如说学历一周计算一次都是可以接受的,但是APP登录活跃情况却可能需要每天都要计算。
- 计算完成时间不同,如果是以横表的形式存储,那么最终需要把各个小表的计算结果合并,此时如果出现了一部分结果早上3点计算完成,一部分要早上10点才能计算完成,那么横表最终的生成时间就要很晚。
- 大量空缺的标签会导致存储稀疏,有一些标签会有很多的的缺失,这在标签用户画像中很常见,主要是当标签数据量开始快速增加的时候会遇到的问题。
2.2 竖表
竖表其实就是将标签都拆开,一个用户有多少标签,那么在这里面就会有几条数据。竖表能比较好地解决上面宽表的问题。但是它也会带来了新的问题,
- 比如说多标签组合的查询需求:“我们想看年龄在23-30之间,月薪在10-20k之间,喜欢听古典音乐的女性”,这种多标签查询条件组合情况在竖表中就不太容易支持。
2.3 横表+竖表
如前面所分析,竖表和横表各有所长和所短,那么能不能两者结合呢?
这其实也要考虑横表和竖表的特性,整体来讲就是竖表对计算层支持的好,横表对查询层支持的好。那么设计的化就可以这样:
3、 标签开发
- 统计类标签:是最为基础也最为常见的标签类型,例如,对于某个用户来说,其性别、年龄、城市、星座、近7日活跃时长、近7日活跃天数、近7日活跃次数等字段可以从用户注册数据、用户访问、消费数据中统计得出。该类标签构成了用户画像的基础。
- 规则类标签:基于用户行为及确定的规则产生。例如,对平台上“消费活跃”用户这一口径的定义为“近30天交易次数≥2”。在实际开发画像的过程中,由于运营人员对业务更为熟悉,而数据人员对数据的结构、分布、特征更为熟悉,因此规则类标签的规则由运营人员和数据人员共同协商确定。
- 机器学习挖掘类标签:通过机器学习挖掘产生,用于对用户的某些属性或某些行为进行预测判断。例如,根据一个用户的行为习惯判断该用户是男性还是女性、根据一个用户的消费习惯判断其对某商品的偏好程度。该类标签需要通过算法挖掘产生。
五、标签存储
1、Hive存储
- Hive是最基础的存储,主要存储标签计算结果集,跑spark作业或MapReduce作业,处理大量的数据集时使用。
2、Mysql存储
- 存储一些数量级较少的标签。
- MySQL的读写不用跑mapreduce作业,对于小量的数据读写速度很快。
- 用于存储元数据、标签量级的监控、一些表加工结果的状态位、业务系统中读取的一些数据。
3、HBase存储
- 存储线上推荐给用户的实时性较强的数据,在画像产品化章节中有讲到圈人服务,业务方根据规则圈定人群后进一步通过分析明确该人群是其要运营的人群后,将该人群推送到相应的业务系统中,有的业务系统使用hbase提供服务。如广告系统、push消息系统等。
4、Elasticsearch存储
- 人群计算、人群多维透视分析
六、标签调度推数
在用户画像工程化调度中主要涉及到的环节/模块:
1、标签调度:
- 主要的调度任务,负责每天调度计算用户身上的标签,插入对应的标签表中;
2、标签校验:分为多个模块。
- ①校验每天插入hive表中的标签数据是否出现异常;
- ②校验同步到hbase、关系数据库中的标签数据是否和hive中标签数量级一致;
- ③校验“圈人功能”中计算出来人群对应的标签是否出现异常波动;
3、数据同步:
- 将用户标签同步到hbase、MySQL等关系数据库的业务系统中。这算是数据服务层的任务;
4、人群计算:
- 根据产品端业务人员圈定的用户标签组合,计算对应的人群。计算任务使用MapReduce或spark作业将数据插入到hive中,然后同步到对应的业务系统中;
5、通知邮件:
- 数据插入到hive、hbase或关系数据库后校验标签的数量级或波动情况。如超出正常范围则触发报警邮件标签调度推数。
参考:
标签:体系,存储,数据,标签,平台,用户,横表,画像 From: https://www.cnblogs.com/tgzhu/p/17647588.html