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