在前面几篇博客中,博主已经为大家带来了什么是用户画像,以及项目的一个基础介绍。用户画像的核心就是打标签,本篇博客,我们来聊聊关于这个项目的标签系统。
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,存储标签的基本信息,属于基础标签
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 应用程序相关信息,对应与基础标签
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完成。
小结
本篇博客主要为大家介绍了【企业级用户画像】项目的标签系统,包含不同标签的细致分类以及效果展示。后续博主会为大家带来如何针对不同的标签进行开发,敬请期待?
如果以上过程中出现了任何的纰漏错误,烦请大佬们指正?
受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波?