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

目录

1.简介

2.架构图

3.表构造

4.标签筛选人群

1.申请格局

2.人群筛选


1.简介

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

此文次要形容标签筛选人群

2.架构图

  1. 数据起源:业务数据库和埋点数据
  2. 标签生成:经营人员定义好标签元数据后,数据工程师写hive或spark定时调度生成;hive表构造只有3列:用户Id、标签code、标签值
  3. 标签存储: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