标签数据开发是用户画像体系搭建中最主要的环节,主要包括离线标签开发、实时类标签开发、用户特征库开发、打通数据服务层等开发内容。
2.1 统计类标签开发
这类标签开发相对简单,根据数据口径来就行。
2.2 规则类标签开发
规则类标签一般是指根据业务运营上的需要,在业务层面制定规则的标签,一般开发前需要进行数据调研,摸清本平台上业务数据的情况,然后再根据运营业务规则开发相关标签(一般可以按照二八原则来规划标签属性)。
2.3 挖掘类标签开发
挖掘类标签需要应用算法挖掘用户相关特征,一般用户相关的挖掘类标签可以包括如预测用户男女性别、预测用户点击下单、判断用户已经流失或将要流失,判断用户购买品类偏好。
由于挖掘类标签需要进行数据调研,找用户行为特征进行特征工程开发、算法参数调优以及上线工程化调度等多个开发环节,一般开发周期较长。
2.4 流式计算标签开发
针对有实时需求的功能,这里使用spark streaming 开发相关的实时数据。
在内部sparkstreaming接受实时数据流并将数据分成多个batch批次,然后由spark引擎进行处理,批量生成结果流。
实时类标签的处理流程主要包括四个部分:
- 读取数据源,这里讲解消费Kafka中的数据。
- 解析数据,即解析消费的Kafka数据。
- 将解析后的数据存储到指定位置;
- 存储消费的Offset,Direct模式下需要保存消费到的位置。
2.5 用户特征库开发
为了进一步从多个维度丰富用户特征,挖掘用户的相关行为,除了开发用户标签体系外,一般还会开发用户的特征库。一方面为个性化推荐、精准营销、商业分析等应用提供中间层数据,另一方面也可以消减不同算法在特征构建时的冗余加工。
简单来说,用户特征库就是对用户每一次的不同行为及该行为对应的标签进行详细的记录,以便从用户的行为特征中挖掘用户的偏好。与开发用户标签相比,用户特征库可以对数据进行汇总统计,从多个维度分析特征,而用户标签则‘相对静止’的记录了用户当前的状态。
2.6 数据监控预警
数据的监控相关表维护在mysql。数据监控预警主要涵盖两个方面:
- 标签监控预警:用于监控每个标签当日的ETL是否产生问题,当数据量超出范围时,发出警报邮件。
- 服务层数据监控预警:数据从数据仓库走出提供到服务层时,该过程中是否正常进行,一般通过对比数据仓库hive中各业务线的数据量和各业务系统中对应的业务线的数据量进行监控。