java做用户画像_用户画像之标签查询(附源码)

java做用户画像_用户画像之标签查询(附源码)_第1张图片

转自:https://blog.csdn.net/appearb...

目录

1.简介

2.架构图

3.表结构

4.标签筛选人群

1.请求格式

2.人群筛选

1.简介

通过处理数仓中的业务数据和埋点数据,生成用户对应的标签,运营人员通过标签筛选出人群,然后发送营销短信。

此文主要描述标签筛选人群

2.架构图

数据来源:业务数据库和埋点数据 标签生成:运营人员定义好标签元数据后,数据工程师写hive或spark定时调度生成;

hive表结构只有3列:用户Id、标签code、标签值 标签存储:hive表转换下图格式,然后通过datax到ElasticSearch

userlabels格式:

3.表结构

ElasticSearch mapping:

1. {

2. "mappings": {

3. "_doc": {

4. "properties": {

5. "userid": {

6. "type": "keyword"

7. },

8. "userlabels": {

9. "type": "nested"

10. },

11. "data_date": {

12. "type": "keyword"

13. }

14. },

15. "dynamic_templates": [

16. {

17. "string_template": {

18. "path_match": "userlabels.*",

19. "mapping": {

20. "type": "keyword"

21. }

22. }

23. }

24. ]

25. }

26. }

27. }

标签元数据表结构:

1. CREATE TABLE `userprofile_tag_metadata` (

2. `id` varchar(50) NOT NULL COMMENT 'id',

3. `code` varchar(50) DEFAULT NULL COMMENT '标签code',

4. `name` varchar(50) DEFAULT NULL COMMENT '标签名',

5. `is_mutex` tinyint(1) DEFAULT NULL COMMENT '是否标签互斥:0:否;1:是',

6. `data_format` int(10) DEFAULT NULL COMMENT '数据格式:1-枚举(tagValue默认为1);2-数值;3-文本;4-时间',

7. `description` varchar(500) DEFAULT NULL COMMENT '标签说明',

8. `category_id` varchar(50) DEFAULT NULL COMMENT '当前分类id',

9. `all_category_id` varchar(1000) DEFAULT NULL COMMENT '全路径分类id',

10. `top_category_id` varchar(50) DEFAULT NULL COMMENT '顶级分类id',

11. `creator_id` varchar(200) DEFAULT NULL COMMENT '创建人',

12. `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

13. `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',

14. `status` tinyint(1) DEFAULT '1' COMMENT '1启用,0禁用',

15. `tag_production_rule` varchar(500) DEFAULT NULL COMMENT '标签生成规则',

16. `tag_update_rule` varchar(500) DEFAULT NULL COMMENT '标签更新规则',

17. `tag_type` int(10) DEFAULT NULL COMMENT '标签类型:1-统计;2-规则',

18. `tag_value` varchar(200) DEFAULT NULL COMMENT '标签值',

19. PRIMARY KEY (`id`) USING BTREE

20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户画像-标签元数据表';

4.标签筛选人群

1.请求格式

1. [

2. {

3. "tagId": "003",

4. "operator": "=",

5. "tagValue": "1"

6. },

7. {

8. "tagId": "002",

9. "operator": ">",

10. "tagValue": "50"

11. },

12. {

13. "tagId": "002",

14. "operator": "<=",

15. "tagValue": 300

16. }

17. ]

2.人群筛选

通过elastiSearch的scroll筛选即可

源码地址:https://github.com/ostarsier/tagsearch

你可能感兴趣的:(java做用户画像)