1. 准备

1.1 流程图

  1. 在建模前需要先保证表和数据已存在数据库当中,当前支持Hive和ES,同时确保已完成数据源登记连通性测试正常。
  2. 当前支持公共码表和私有码表,如果在构建标签过程中某一类字段经常被重复用作标签,则建议此处先完成公共码表的录入。私有码表可在创建标签时进行添加。
  3. 添加工作组的步骤实际上可以理解为构建一个工作空间,之后的操作都在该工作组下进行。
  4. 一个工作组下支持创建多个对象,但本手册仅演示一个对象的创建流程。构建对象的过程即为模型设计的过程,在该步骤中需完成标签表行为表属性表之间的逻辑关系设计,并将模型进行发布。
  5. 基于建模中的行为表可构建行为标签,定义具体的行为语义并进行发布。
  6. 基于建模中的标签表可构建基础标签。
  7. 复合标签的构建方式有多种,可基于基础标签的逻辑组合,也可基于行为的条件组合。
  8. 人工标签的构建基于外部文件与基础标签的关系映射。

1.2 角色权限

当前标签的系统预置角色叫做dmp,为标签系统的管理员。其它具有权限的预置角色参考如下:

功能模块 角色
配置管理、标签管理(标签模板配置、对象管理、类目管理、行为管理、任务运维、数据同步) 项目组负责人、项目组管理员、数据治理专员、数据治理管理员
项目组下项目负责人、项目管理员、dmp
标签管理(标签管理、标签详情、标签统计) 项目组成员
标签圈群 项目组成员
群组管理 项目组成员
画像分析 项目组成员

1.3 模型规划

本实验将会涉及三张表,分别作为标签表行为表属性表,其具体规划如下:

表名称 物理表名 是否分区表 行为数据模型中表类型设置 备注 源文件
用户信息表 easytag_demo_ec_user 标签表 1000条数据 标签表_用户信息表
订单表 easytag_demo_ec_order_d 是(建议,且请使用增量分区表) 行为表 1000条数据 行为表_订单表
订单商品关系表 easytag_demo_ec_order_goods_d 是(如果是商品维表,请使用非分区表) 属性表 1003条数据 属性表_订单商品信息表

1.4 新建表并完成数据的上传

1.4.1 用户信息表
步骤一:在自助分析页面完成表的创建

使用自助分析进行建表

首先要获得对应Hive库的建表权限,可在安全中心-权限申请中进行申请

建表代码如下(库名表名可自定义):

CREATE TABLE `库名`.`easytag_demo_ec_user`(
  `user_id` string COMMENT'用户ID',
  `phone` bigint COMMENT'手机号',
  `gender` int COMMENT'性别',
  `edu` int COMMENT'教育程度',
  `province` string COMMENT'籍贯省份',
  `grade` int COMMENT'用户等级',
  `age` int COMMENT'年龄',
  `job` string COMMENT'职业',
  `regdate` string COMMENT'注册日期',
  `marriage` int COMMENT'婚姻状况',
  `height` double COMMENT'身高',
  `weight` double COMMENT'体重'
)row format delimited fields terminated by','
tblproperties('skip.header.line.count'='1');
步骤二:上传文件到数据管理 - 文件管理 - 个人文件中

用户信息表csv文件(UTF-8):easytag_demo_ec_user.csv

在数开平台导航栏的数据治理模块,点击数据管理进入页面,选择文件管理-个人文件

点击上传文件按钮将文件从本地上传至HDFS。

步骤三:将数据导入表中

在自助分析页面,将数据导入表中。

代码如下:

注意修改路径地址和库名.路径地址可以直接在数据管理中复制。

load data inpath '/user/用户名/easytag_demo_ec_user.csv' overwrite into table 库名.easytag_demo_ec_user;

选中上述新增的代码然后点击执行。

步骤四:查看数据是否导入成功

在自助分析页面,使用select语句查看数据导入情况。

代码如下:

select * from 库名.easytag_demo_ec_user limit 100;

样例数据:

1.4.2 订单表
步骤一:在自助分析页面输入以下建表语句完成表的创建

在自助分析创建订单表,订单表为分区表。

建表代码如下(库名表名可自定义):

CREATE TABLE `库名`.`easytag_demo_ec_order_d`(
  `order_id` bigint COMMENT'订单ID',
  `user_id` string COMMENT'用户ID',
  `order_time` TIMESTAMP COMMENT'下单时间',
  `pay_time` TIMESTAMP COMMENT'付款时间',
  `order_status` string COMMENT'订单状态',
  `pay_type` string COMMENT'支付方式',
  `standardamount` double COMMENT'应付金额',
  `payment` double COMMENT'实付金额'
)partitioned by(`pt_d` string)
row format delimited fields terminated by','
tblproperties('skip.header.line.count'='1');
步骤二:上传文件到数据管理 - 文件管理 - 个人文件中

订单表csv文件(UTF-8):

2022-05-01分区:easytag_demo_ec_order_20220501.csv

2022-05-03分区:easytag_demo_ec_order_20220503.csv

2022-05-05分区:easytag_demo_ec_order_20220505.csv

2022-05-07分区:easytag_demo_ec_order_20220507.csv

2022-05-11分区:easytag_demo_ec_order_20220511.csv

2022-05-12分区:easytag_demo_ec_order_20220512.csv

2022-05-13分区:easytag_demo_ec_order_20220513.csv

在数据管理 - 文件管理 - 个人文件中,点击上传文件按钮,将上述文件上传至HDFS。

步骤三:将数据导入表中

在自助分析页面,将数据导入表中(注意修改路径地址和库名)。

代码如下:

load data inpath '/user/用户名/easytag_demo_ec_order_20220501.csv' overwrite into table 库名.easytag_demo_ec_order_d partition(pt_d='2022-05-01');
load data inpath '/user/用户名/easytag_demo_ec_order_20220503.csv' overwrite into table 库名.easytag_demo_ec_order_d partition(pt_d='2022-05-03');
load data inpath '/user/用户名/easytag_demo_ec_order_20220505.csv' overwrite into table 库名.easytag_demo_ec_order_d partition(pt_d='2022-05-05');
load data inpath '/user/用户名/easytag_demo_ec_order_20220507.csv' overwrite into table 库名.easytag_demo_ec_order_d partition(pt_d='2022-05-07');
load data inpath '/user/用户名/easytag_demo_ec_order_20220511.csv' overwrite into table 库名.easytag_demo_ec_order_d partition(pt_d='2022-05-11');
load data inpath '/user/用户名/easytag_demo_ec_order_20220512.csv' overwrite into table 库名.easytag_demo_ec_order_d partition(pt_d='2022-05-12');
load data inpath '/user/用户名/easytag_demo_ec_order_20220513.csv' overwrite into table 库名.easytag_demo_ec_order_d partition(pt_d='2022-05-13');
步骤四:查看数据是否导入成功

在自助分析页面,使用select语句查看数据导入情况。

代码如下:

select * from 库名.easytag_demo_ec_order_d limit 100;

样例数据:

1.4.3 订单商品关系表
步骤一:在自助分析页面完成表的创建

建表代码如下(库名表名可自定义):

CREATE TABLE `库名`.`easytag_demo_ec_order_goods_d`(
  `order_id` bigint COMMENT'订单ID',
  `product_id` bigint COMMENT'商品ID',
  `price` double COMMENT'商品单价',
  `num` int COMMENT'购买件数',
  `standardamount` double COMMENT'商品应付金额',
  `payment` double COMMENT'商品实付金额',
  `brand` string COMMENT'商品品牌',
  `category` string COMMENT'商品分类'
)partitioned by(`pt_d` string)
row format delimited fields terminated by','
tblproperties('skip.header.line.count'='1');
步骤二:上传文件到数据管理 - 文件管理 - 个人文件中

订单商品关系表csv文件(UTF-8):

2022-05-01分区:easytag_demo_ec_order_goods_20220501.csv

2022-05-03分区:easytag_demo_ec_order_goods_20220503.csv

2022-05-05分区:easytag_demo_ec_order_goods_20220505.csv

2022-05-07分区:easytag_demo_ec_order_goods_20220507.csv

2022-05-11分区:easytag_demo_ec_order_goods_20220511.csv

2022-05-12分区:easytag_demo_ec_order_goods_20220512.csv

2022-05-13分区:easytag_demo_ec_order_goods_20220513.csv

在数据管理 - 文件管理 - 个人文件中,点击上传文件按钮,将上述文件上传至HDFS。

步骤三:将数据导入表中

在自助分析页面,将数据导入表中(注意修改路径地址和库名)。

代码如下:

load data inpath '/user/用户名/easytag_demo_ec_order_goods_20220501.csv' overwrite into table 库名.easytag_demo_ec_order_goods_d partition(pt_d='2022-05-01');
load data inpath '/user/用户名/easytag_demo_ec_order_goods_20220503.csv' overwrite into table 库名.easytag_demo_ec_order_goods_d partition(pt_d='2022-05-03');
load data inpath '/user/用户名/easytag_demo_ec_order_goods_20220505.csv' overwrite into table 库名.easytag_demo_ec_order_goods_d partition(pt_d='2022-05-05');
load data inpath '/user/用户名/easytag_demo_ec_order_goods_20220507.csv' overwrite into table 库名.easytag_demo_ec_order_goods_d partition(pt_d='2022-05-07');
load data inpath '/user/用户名/easytag_demo_ec_order_goods_20220511.csv' overwrite into table 库名.easytag_demo_ec_order_goods_d partition(pt_d='2022-05-11');
load data inpath '/user/用户名/easytag_demo_ec_order_goods_20220512.csv' overwrite into table 库名.easytag_demo_ec_order_goods_d partition(pt_d='2022-05-12');
load data inpath '/user/用户名/easytag_demo_ec_order_goods_20220513.csv' overwrite into table 库名.easytag_demo_ec_order_goods_d partition(pt_d='2022-05-13');
步骤四:查看数据是否导入成功

在自助分析页面,使用select语句查看数据导入情况。

代码如下:

select * from 库名.easytag_demo_ec_order_goods_d limit 100;

样例数据: