文章目录
一 标签管理
标签管理模块,是用户画像是开发的起点,所有的用户画像都起始于对标签的定义和规则的指定。
1 标签列表

根据之前对标签的规划,我们要在这里把标签创建为四个级别,其中一二级为标签的类目,第三级为主要的标签,第四级是具体的标签数值。
2 添加标签
(1)添加一级标签
在页面的左上角点击【添加一级标签】
| 页面字段 | 说明 |
|---|---|
| 标签编码 | 根据规则填写编码(大写英文) |
| 标签名称 | 标签中文名称 |
| 标签类型 | 一级、二级选择类目,三四级选择:数值、浮点、文本、日期 |
共有四个一级标签
- 人口属性
- 标签编码:TG_BASE
- 标签名称:人口属性
- 标签类型:类目
- 用户行为
- 标签编码:TG_BEHAVIOR
- 标签名称:用户行为
- 标签类型:类目
- 用户偏好
- 标签编码:TG_FAVOR
- 标签名称:用户偏好
- 标签类型:类目
- 营销特征
- 标签编码:TG_BUSI
- 标签名称:营销特征
- 标签类型:类目
最终结果

(2)添加二级标签
在一级标签【人口属性】下点击【添加子标签】 – 自然属性
- 上级标签:自然属性
- 上级标签编码:TG_BASE
- 标签编码:TG_BASE_PERSONA
- 标签名称:自然属性
- 标签类型:类目
在一级标签【人口属性】下点击【添加子标签】 – 社会属性
- 上级标签:人口属性
- 上级标签编码:TG_BASE
- 标签编码:TG_BASE_SOCAL
- 标签名称:社会属性
- 标签类型:类目
(3)添加三级标签
【人口属性】的【自然属性】下点击【添加子标签】
- 上级标签:自然属性
- 上级标签编码:TG_BASE_PERSONA
- 标签编码:TG_BASE_PERSONA_GENDER
- 标签名称:性别
- 标签类型:统计型(客观事实为统计型,人为统计为规则型)
- 标签值类型:文本
(4)添加四级标签
在三级标签【性别】下点击【添加子标签】
- 上级标签:性别
- 上级标签编码:TG_BASE_PERSONA_GENDER
- 标签编码:TG_BASE_PERSONA_GENDER_001(女为002,未知为003)
- 标签名称:男
- 标签类型:统计型
- 标签值类型:文本
结果展示:

(5)数据库标签字段说明
| 数据库字段 | 字段说明 | 值说明 |
|---|---|---|
| id | 标签主键 | |
| tag_code | 标签编码 | |
| tag_name | 标签名称 | |
| tag_level | 标签层级 | 1、2、3、4 |
| parent_tag_id | 上级标签ID | |
| tag_type | 标签类型 | 1统计型、2规则型、3挖掘型、00类目 |
| tag_value_type | 标签值类型 | 1整数、2浮点、3文本、4日期 |
| tag_task_id | 标签任务编号 | |
| tag_comment | 标签说明 | |
| update_time | 更新时间 | |
| create_time | 创建时间 |
(6)数据库中存储
在数据库tag_info表中可以查看到刚刚添加的数据

3 标签任务
标签任务要求定义在三级标签中,因为一个三级标签下的四级标签其实是由这个三级标签计算出来的不同结果,如三级标签性别下的男、女、未知,所以任务逻辑要定义在三级标签上。
点击【性别】后面的【添加任务】。
(1)填写字段说明
| 页面字段 | 说明 |
|---|---|
| 任务状态 | 只有开启状态的任务平台才会进行定时调度 |
| 任务名称 | 任务的名称 |
| 执行方式 | SPARK_SQL、SPARK_JAR 复杂的规则类标签或者挖掘类标签使用SPARK_JAR,一般统计和简单的规则使用SPARK_SQL |
| 标签类型 | 一级、二级选择类目,三四级选择:数值、浮点、文本、日期 |
| 任务描述 | |
| 运行时间 | 每天运行该标签任务的时间 |
| 任SQL | 当选择SPARK_SQL的执行方式时, 系统自动根据该栏位填写的SQL进行计算 sql的查询结果,必须是两列一列是uid ,一列是query_value |
| 任务级别 | 根据级别决定任务的执行次序,级别数字越小越早执行。默认为100. |
| 任务参数 | 提交spark程序时提交的参数,master、deploy-mode、class 、执行的jar包不用写。 如: --driver-memory=1G --num-executors=3 --executor-memory=2G --executor-cores=2 --conf spark.default.parallelism=12 注意参数与值之前要放等号,不要用空格 |
| 标签规则配置 | 根据sql语句产生的query_value与四级标签(标签值)做映射。 |
(2)填写示例
添加内容:
-
任务状态:
- 启动:此任务到了晚上某一个时间点,进行计算,得出结果
- 停用:不会进行计算
-
任务名称:有默认值,可以修改
-
执行方式:
- SQL:大多数统计型和规则性的数据用SQL
- JAR:多数挖掘型使用JAR,部分规则型可能也会用JAR,如一些规则型的一部分数据不来自于数仓,而是来自于MySQL、Redis、或是其他容器中,或者是sql十分复杂,使得sql的表意已经不足够了
-
任务执行时点:要求任务执行方式不能早于数仓更新时间
-
任务sql,`select id as uid,if(gender is null, ‘U’,gender) as query_value from dim_user_info where dt=‘9999-99-99’
- 起query_value别名原因:不希望对每一个任务都执行不同的sql,希望不管查询什么,只要查询出的结构相同,都使用同一个sql结构
- 处理null值:if(gender is null, ‘U’,gender)
-
标签规则匹配:将查询出的结果值和四级标签进行映射
- F – 男
- M – 女
- U – 未知
-
任务级别:
- 在很长的处理流程中(抽取–计算–重组–导出),优先级别数字越小,越优先进行处理
- 在有依赖关系的标签中,被依赖的标签应该优先计算
-
任务参数:遵循spark-submit XXX.jar提交任务的参数,不添加conf是yarn的参数,加conf的是spark参数
--driver-memory=1G --num-executors=3 --executor-memory=2G --executor-cores=2 --conf spark.default.parallelism=12
到此为止,一个标签的简单定义完成了。
结果展示:

也可以在数据库中查找到对应的数据

(3)数据库表结构
task_info
其中task_type有两种
- TAG:计算标签A、B、C
- FLOW:流程任务,不针对某一个标签进行计算,如将整个表从hive导入到clickhouse,是整体性的任务
main class为jar包的类
file_id为文件编码
file_info
对应file_info表中id,file_name为jar包名称,file_path为jar包存放位置
task_tag_rule
存放对应规则计算出的结果,如男,女,未知
task_info – file_info – task_tag_rule 对应关系为 1:1:n
二 统计型和规则型标签的SQL处理
0 概述
接下来的任务:利用在网页端填写的规则计算出想要得到的标签结果。
已有数据,存放在MySQL中:1 整数 2 浮点 3 文本 4 日期
-
tag_info:标签定义(id,标签编码,标签名称,标签等级,上级标签id,标签类型【99类目,1统计型,2规则性,3挖掘型】,标签值类型【1 整数 2 浮点 3 文本 4 日期】,标签对应的计算任务id,标签说明,更新时间,创建时间)
id tag_code tag_name tag_level parent_tag_id tag_type tag_value_type tag_task_id tag_comment update_time create_time
-
task_info:任务定义(ID,任务名称,任务状态【0未启用,1启用】,任务说明,任务运行时间,任务类型【TAG计算标签,FLOW流程任务,不是针对某一个标签进行计算,如将整个表从hi

最低0.47元/天 解锁文章
1274

被折叠的 条评论
为什么被折叠?



