标签计算Java 标签计算是什么_读取数据

  本模块是用户画像的核心:主要负责 根据原始数据以及标签规则进行相应的计算,比如规则匹配/统计/挖掘等相关操作,最终得到标签结果,将结果存入HBase中。

标签计算Java 标签计算是什么_读取数据_02

从上述图中可以分析出,每个标签模型计算时与存储系统交互:

  • 1)、加载MySQL表的数据
  • 读取标签的规则
  • 2)、加载HBase表的数据
  • 读取业务数据,比如用户基本信息数据、订单数据等
  • 3)、保存标签数据至HBase表
  • 将每个用户标签数据保存到HBase中

如上图标签模型开发,包含四个步骤:

1)、加载标签数据,获取标签规则rule

  • 每个业务标签都有规则,表示此标签计算时业务数据存储的地方(业务数据数据源),比如存储HBase表中

2)、加载业务数据

  • 给用户打标签,需要获取标签的值,从业务数据中获取,比如性别标签,性别信息gender存储tbl_tag_users

3)、打标签

  • 结合属性标签数据和业务数据,给用户打上标签的值:使用标签的标识符标注TagId要使用属性标签中标签规则rule

4)、保存用户标签数据

  • 将标签数据保存至HBase表中:tbl_profile
  • RowKey: userId
  • ColumnFamily: user,item
  • Columns:
  • userId: 10001
  • tagIds: 345,387,…

二、标签模型开发流程

  针对上述各个模块的描述,如何对具体业务标签进行开发模型(前端和后台)集成,相关流程说明如下。

2.1、提交流程

  搭建一个用户画像的管理平台,在这个平台上,可以按照不同的等级去管理标签或者定义标签的执行周期,以及计算任务的提交等等操作。

一个标签(业务标签、4级标签)对应一个模型,一个模型就是一个Spark Application程序。

标签计算Java 标签计算是什么_数据_03

  一个完整的任务提交流程,如上图所示,需要先创建出 1、2、3级标签 、再创建 4级标签的时候将任务的Jar包上传、以及指定运行参数、最后创建5级标签,之后就可以开始运行模型任务。

在新建业务标签和属性标签时,有个标签字段:标签规则【rule】

  • 1)、如果是业务标签(4级标签)
  • rule字段:业务标签的数据源,构建此标签时,从哪里读取数据业务数据,构建标签
  • inType表示:
  • 比如从MySQL数据库读取数据,值就是mysql;
  • 比如从HBase表读取数据,值就是hbase;
  • 比如从Hive表读取数据,值就是hive;
  • 2)、如果是属性标签(5级标签)
  • rule字段:表示的是属性标签的规则,如果业务标签为规则匹配类型标签,此时借助rule值,
    进行规则匹配,计算模型标签。

2.2、执行流程

  当某个业务标签的模型任务提交后的具体执行流程又是怎样的呢?如何才能得到最终计算的标签结果?

标签计算Java 标签计算是什么_标签计算Java_04


任务在执行的时候,数据获取有2部分:

1)、MySQL中的标签规则数据
2)、HBase中的原始数据(业务数据)

  通过SparkSQL对数据进行计算(DataFrame DSL编程),将最终得到的结果标签存入HBase,再用Elasticsearch或者Solr做二级索引,方便进行数据的查询操作。

标签数据存储HBase表中:

  • tbl_profile
  • RowKey:userId
  • ColumnFamily: user, item
  • user列簇下标签:面向注册会员的偏好、行为习惯和 人口属性的画像还原
  • item列簇下标签:对商品信息的画像还原
  • 此处以用户标签为准:
  • user:userId,存储用户的ID
  • user:gender, 存储具体标签的值,如性别标签值:男或女