大数据【企业级360°全方位用户画像】标签系统介绍

2021-01-27 16:20:02 浏览数 (1)

在前面几篇博客中,博主已经为大家带来了什么是用户画像,以及项目的一个基础介绍。用户画像的核心就是打标签,本篇博客,我们来聊聊关于这个项目的标签系统。


1. 标签系统

1.1 基础标签

1.1.1、概览:基础标签

启动WEB 项目后,浏览器登录,默认账号与密码,点击【登录】即可,下图所示:

进入系统后,直接显示【基础标签】页面,重要功能如下所示:

上述所表述的5个按钮,主要构建标签、查看标签和编辑标签,具体说明如下:

代码语言:javascript复制
    1、基础标签 Tag页
    
    2、基础标签 分类
    	按照标签体系划分标签为4级、5级标签
    	- 4级标签:业务标签
    	- 5级标签:业务标签对应的值(属性标签)
    
    3、新建主分类标签
    	1级、2级、3级分类标签
    	
    4、创建业务标签
    	具体业务标签,其中有很多相关设置,关于标签如何构建(读取数据源、运行Spark程序及调度策略)
    	
    5、针对业务标签操作
    	- 启动:业务标签运行程序生成标签
    	- 编辑:修改业务标签属性
    	- 删除:将业务标签删除
1.1.2、新建:主分类标签

用户画像构建时,标签按照等级划分,大致如下所示:

在WEB界面上,点击左下角【新建主分类标签】按钮,即可新建1级、2级和3级标签:

但是如果要删除1级、2级和3级标签,必须到后台数据库删除。

1.1.3、新建:业务标签

新建某个业务标签(实际开发标签,编写Spark 应用程序),截图选项如下:

具体参数说明如下(以新建【年龄段】业务标签为例):

代码语言:javascript复制
1、标签名称:年龄段
	
2、标签分类:商城-某商城-人口属性
	业务标签属于4级标签,所以分类时指定所属3级标签

3、更新周期:每天#2019-08-01 01:00#2029-08-01 01:00
	多久执行一次Spark任务
	
4、业务含义:注册用户的生日所属年龄段
	业务标签含义说明

5、标签规则:Key=Value形式,按照换行符分割
    inType=hbase
    zkHosts=192.168.10.20
    zkPort=2181
    hbaseTable=tbl_users
    family=info
    selectFieldNames=id,gender
    
6、程序入口:cn.itcast.tag.commons.models.pub.business.AgeRangeModel
	Spark Application程序的全名称

7、算法名称:Statistics
	业务标签计算模型类型:统计-Statistics、规则匹配-Match、挖掘-具体算法-DecisionTree、KMeans
	
8、算法引擎:/apps/tags/models/tag_9/lib/tags-20190703231621.jar
	Spark应用程序JAR包,通过页面选择jar包,上传到HDFs目录中

9、模型参数:Spark 应用程序执行资源参数设置
	--deploy-mode cluster --driver-memory 2G --executor-memory 4G --num-executors 5 --executor-cores 2
1.1.4、存储:标签数据

上述新建的标签数据存储MySQL数据库中,对应两张表存储数据,分别为标签表:tbl_basic_tag和模型表:tbl_model,具体说明如下:

  • 标签表:tbl_basic_tag,存储标签的基本信息,属于基础标签
代码语言:javascript复制
CREATE TABLE `tbl_basic_tag` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '标签ID',
  `name` varchar(50) DEFAULT NULL COMMENT '标签名称',
  `industry` varchar(30) DEFAULT NULL COMMENT '行业、子行业、业务类型、标签、属性',
  `rule` varchar(300) DEFAULT NULL COMMENT '标签规则',
  `business` varchar(100) DEFAULT NULL COMMENT '业务描述',
  `level` int(11) DEFAULT NULL COMMENT '标签等级',
  `pid` bigint(20) DEFAULT NULL COMMENT '父标签ID',
  `ctime` datetime DEFAULT NULL COMMENT '创建时间',
  `utime` datetime DEFAULT NULL COMMENT '修改时间',
  `state` int(11) DEFAULT NULL COMMENT '状态:1申请中、2开发中、3开发完成、4已上线、5已下线、6已禁用',
  `remark` varchar(100) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=233 DEFAULT CHARSET=utf8 COMMENT='基础标签表';
  • 模型表:tbl_model,存储每个4级标签具体Spark 应用程序相关信息,对应与基础标签
代码语言:javascript复制
CREATE TABLE `tbl_model` (
  `id` bigint(20) DEFAULT NULL,
  `tag_id` bigint(20) DEFAULT NULL COMMENT '标签ID',
  `type` int(11) DEFAULT NULL COMMENT '算法类型:统计-Statistics、规则匹配-Match、挖掘-具体算法-DecisionTree',
  `model_name` varchar(200) DEFAULT NULL COMMENT '模型名称',
  `model_main` varchar(200) DEFAULT NULL COMMENT '模型运行主类名称',
  `model_path` varchar(200) DEFAULT NULL COMMENT '模型JAR包HDFS路径',
  `sche_time` varchar(200) DEFAULT NULL COMMENT '模型调度时间',
  `ctime` datetime DEFAULT NULL COMMENT '创建模型时间戳',
  `utime` datetime DEFAULT NULL COMMENT '更新模型时间戳',
  `state` int(11) DEFAULT NULL COMMENT '模型状态,1:运行;0:停止',
  `remark` varchar(100) DEFAULT NULL,
  `operator` varchar(100) DEFAULT NULL,
  `operation` varchar(100) DEFAULT NULL,
  `args` varchar(100) DEFAULT NULL COMMENT '模型运行应用配置参数,如资源配置参数'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

依据上述两张表可以通过关联查询可以获取WEB 页面上表的基本信息,SQL如下(传递标签ID):

代码语言:javascript复制
USE tags ;

SELECT
    tb.id AS tagId, tb.`name` AS tagName, tb.business, tb.industry,
    tb.`level`, tb.rule, tb.model_main AS modelMain, tb.model_name AS modelName,
    tb.model_path AS modelPath, tb.sche_time AS schetime, tb.args
FROM (
         SELECT
             tb1.id, tb1.`name`, tb1.business, tb1.industry,
             tb1.`level`, tb1.pid, tb1.state, tb2.model_main,
             tb2.model_name, tb2.model_path, tb2.sche_time,
             tb3.rule, tb2.args
         FROM
             tbl_basic_tag tb1
                 INNER JOIN
             tbl_model tb2
             ON
                     tb1.id = tb2.tag_id
                 INNER JOIN
             tbl_rule tb3 ON tb1.id = tb3.tag_id
     ) tb
WHERE
        1 = 1 AND tb.state != -1 AND tb.id = 8 ;
1.1.5、新建:5级标签

每个业务标签(4级标签)对应值称之为5级标签,所以在新建业务标签(4级标签)以后,需要在其下面新建具体的值(5级标签),如下图所示:

字段具体说明:

代码语言:javascript复制
1、标签名称:50后
	
2、业务含义:注册会员出生日期为1950年-1959年区间的

3、标签规则:19500101-19591231

新建【年龄段】业务标签:4级标签后,新建值标签:5级标签为例,截图如下:

1.1.6、总述:新建标签

依据上述分析,如果要开发一个标签,业务需求整理完成以后,需在平台上新建标签,统一管理调度执行,以新建:【人口属性】-【性别标签】为例:

  • 新建业务标签(4级标签)
  • 新建业务标签值标签(5级标签、属性标签):性别标签有两个值-男和女

□ 标签值:男

□ 标签值:女

1.2、组合标签

基于已经存在的【基础标签】进行逻辑组合,形成特定业务标签,如下列举4个组合标签:

WEB 系统展示如下:

新建【组合标签】,具体操作如下图步骤:

选择【业务标签】,再选取对应的值,点击【添加】按钮,所有标签选择完成后,单击【下一步】。

组合标签名称、含义及用途等信息,最后保存并提交申请。

1.3、微观画像

依据用户:身份证号、手机号、QQ及Email,检索查询用户所有标签信息,构建展示用户画像信息。

使用官方提供的身份证号【110115199402265244】查询检索,展示结果如下:

1.4、标签查询

依据标签筛选(各种标签组合)查询对应用户信息,底层使用solr完成。

小结

本篇博客主要为大家介绍了【企业级用户画像】项目的标签系统,包含不同标签的细致分类以及效果展示。后续博主会为大家带来如何针对不同的标签进行开发,敬请期待?

如果以上过程中出现了任何的纰漏错误,烦请大佬们指正?

受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波?

0 人点赞