快速入门
文档版本 01
发布日期 2021-11-01
版权所有 © 华为技术有限公司 2022。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129
网址:
https://www.huawei.com
客户服务邮箱:
[email protected]
客户服务电话:4008302118目 录
1 基于电商 BI 报表的数据开发流程... 1
1.1 示例场景说明... 1
1.2 步骤 1:准备工作... 1
1.3 步骤 2:数据开发...11
2 基于电影评分的数据集成与开发流程... 20
2.1 示例场景说明...20
2.2 步骤 1:准备工作...20
2.3 步骤 2:数据集成...32
2.4 步骤 3:数据开发...40
3 基于出租车出行数据的数据治理流程... 50
3.1 示例场景说明...50
3.2 步骤 1:流程设计...53
3.3 步骤 2:准备工作...57
3.4 步骤 3:数据集成...64
3.5 步骤 4:数据资产采集... 72
3.6 步骤 5:规范设计...76
3.7 步骤 6:数据开发... 110
3.8 步骤 7:数据质量监控...129
3.9 步骤 8:数据资产管理...134
3.10 步骤 9:数据安全管理... 136
3.11 步骤 10:数据服务 API 开发... 145
1 基于电商 BI 报表的数据开发流程
1.1 示例场景说明
本实践通过DGC服务的数据开发DLF组件和数据湖探索服务(DLI)对某电商商城的用 户、商品、评论数据(脱敏后)进行分析,输出用户和商品的各种数据特征,可为营 销决策、广告推荐、信用评级、品牌监控、用户行为预测提供高质量的信息。在此期 间,您可以学习到数据开发模块脚本编辑、作业编辑、作业调度等功能,以及DLI的 SQL基本语法。
说明
本入门示例涉及DGC服务的管理中心和数据开发模块,DGC的各个版本均可以满足使用要求。
如果您从未使用过DGC,您可以选择试用DGC,按照本示例进行入门试用。
操作流程如下:
1. 准备工作,包括使用DGC前的准备、数据源准备和数据湖准备。
2. 数据开发,包含创建DLI SQL脚本和开发作业。
–
分析10大用户关注最多的产品
–
分析10大用户评价最差的商品
–
开发并调度作业,通过编排作业和配置作业调度策略,定期执行作业,使得
用户可以每天获取到最新的数据分析结果。
1.2 步骤 1:准备工作
使用 DGC 前的准备
如果您是第一次使用DGC,请参考准备工作章节完成注册华为云帐号、购买DGC实 例、创建工作空间等一系列操作。然后进入到对应的工作空间,即可开始使用DGC。
数据源准备
本入门示例以某电商商城的BI报表数据为例,分析用户和商品的各种数据特征。
为方便演示,本示例提供了用于模拟原始数据的部分数据。为了方便将源数据集成到 云上,我们需要先将样例数据存储为CSV文件,将CSV文件上传至OBS服务中。
步骤1 创建CSV文件(UTF-8无bom格式),文件名称为对应的数据表名,将后文提供的各样 例数据分别拷贝粘贴到不同CSV文件中,然后保存CSV文件。
以下是Windows下生成.csv文件的办法之一:
1. 使用文本编辑工具(例如Sublime Text,Notepad++等)新建一个文档,将后文 提供的样例数据拷贝进文档中。注意拷贝后检查下数据的行数及数据分行的正确 性。(注意,如果是从PDF文档中拷贝样例数据,单行的数据过长时会产生换 行,需手动重新调整为单行)
2. 选择“格式 > 以UTF-8无BOM格式编码”。
3. 选择“文件 > 另存为”。
4. 在弹出的对话框中输入文件名后,以CSV格式保存该文件。
步骤2 将源数据CSV文件上传到OBS服务。
1. 登录控制台,选择“存储 > 对象存储服务 OBS”,进入OBS控制台。
2. 单击“创建桶”,然后根据页面提示配置参数,创建一个名称为“fast-demo”的 OBS桶。
说明
为保证网络互通,OBS桶区域请选择和DGC实例相同的区域。如果需要选择企业项目,也 请选择与DGC实例相同的企业项目。
使用OBS控制台创建桶的操作,请参见《对象存储服务控制台指南》中的创建
桶。
3. 上传数据到名称为“fast-demo”的OBS桶中。
使用OBS控制台上传文件的操作,请参见《对象存储服务控制台指南》中的上传
文件。
----结束
本示例中涉及到4部分原始样例数据,分别为用户数据user_data.csv、商品数据 product_data.csv、评价数据comment_data.csv和行为数据action_data.csv。具体 数据和说明如下:
● user_data.csv:
user_id,age,sexuality,rank,register_time 100001,20,0,1,2021/1/1
100002,22,1,2,2021/1/2 100003,21,0,3,2021/1/3 100004,24,2,5,2021/1/4 100005,50,2,9,2021/1/5 100006,20,1,3,2021/1/6 100007,18,1,1,2021/1/7 100008,20,1,6,2021/1/8 100009,60,0,4,2021/1/9 100010,20,1,1,2021/1/10 100011,35,0,5,2021/1/11 100012,20,1,1,2021/1/12 100013,7,0,1,2021/1/13 100014,64,0,8,2021/1/14 100015,20,1,1,2021/1/15 100016,33,1,7,2021/1/16 100017,20,0,1,2021/1/17 100018,15,1,1,2021/1/18
100025,34,0,7,2021/1/25 100026,34,1,1,2021/1/26 100027,20,1,8,2021/1/27 100028,20,0,1,2021/1/28 100029,56,0,5,2021/1/29 100030,20,1,1,2021/1/30 100031,22,1,8,2021/1/31 100032,20,0,1,2021/2/1 100033,32,1,0,2021/2/2 100034,20,1,1,2021/2/3 100035,45,0,6,2021/2/4 100036,20,0,1,2021/2/5 100037,67,1,4,2021/2/6 100038,78,0,6,2021/2/7 100039,11,1,8,2021/2/8 100040,8,0,0,2021/2/9
数据说明如下:
表1-1 用户数据说明 字段名称 字段类
型
字段说明 取值范围
user_id int 用户ID 脱敏 age int 年龄段 -1表示未知 sexuality int 性别 ● 0表示男
● 1表示女
● 2表示保密
rank Int 用户等级 有顺序的级别枚举,越高级别数字 越大
register_ti
me string 用户注册日期 单位:天
● product_data.csv:
product_id,a1,a2,a3,category,brand 200001,1,1,1,300001,400001 200002,2,2,2,300002,400001 200003,3,3,3,300003,400001 200004,1,2,3,300004,400001 200005,3,2,1,300005,400002 200006,1,1,1,300006,400002 200007,2,2,2,300007,400002 200008,3,3,3,300008,400002 200009,1,2,3,300009,400003 200010,3,2,1,300010,400003 200011,1,1,1,300001,400003 200012,2,2,2,300002,400003 200013,3,3,3,300003,400004 200014,1,2,3,300004,400004 200015,3,2,1,300005,400004 200016,1,1,1,300006,400004 200017,2,2,2,300007,400005 200018,3,3,3,300008,400005 200019,1,2,3,300009,400005 200020,3,2,1,300010,400005 200021,1,1,1,300001,400006 200022,2,2,2,300002,400006 200023,3,3,3,300003,400006
200024,1,2,3,300004,400006 200025,3,2,1,300005,400007 200026,1,1,1,300006,400007 200027,2,2,2,300007,400007 200028,3,3,3,300008,400007 200029,1,2,3,300009,400008 200030,3,2,1,300010,400008 200031,1,1,1,300001,400008 200032,2,2,2,300002,400008 200033,3,3,3,300003,400009 200034,1,2,3,300004,400009 200035,3,2,1,300005,400009 200036,1,1,1,300006,400009 200037,2,2,2,300007,400010 200038,3,3,3,300008,400010 200039,1,2,3,300009,400010 200040,3,2,1,300010,400010
数据说明如下:
表1-2 商品数据说明
字段名称 字段类型 字段说明 取值范围
product_id int 商品编号 脱敏
a1 int 属性1 枚举,-1表示未知
a2 int 属性2 枚举,-1表示未知
a3 int 属性3 枚举,-1表示未知
category int 品类ID 脱敏
brand int 品牌ID 脱敏
● comment_data.csv:
deadline,product_id,comment_num,has_bad_comment,bad_comment_rate 2021/3/1,200001,4,0,0
2021/3/1,200002,1,0,0 2021/3/1,200003,2,2,0.1 2021/3/1,200004,3,3,0.05 2021/3/1,200005,1,0,0 2021/3/1,200006,2,0,0 2021/3/1,200007,3,2,0.01 2021/3/1,200008,4,1,0.001 2021/3/1,200009,4,0,0 2021/3/1,200010,1,0,0 2021/3/1,200011,2,2,0.2 2021/3/1,200012,3,3,0.04 2021/3/1,200013,1,0,0 2021/3/1,200014,2,2,0.2 2021/3/1,200015,3,2,0.05 2021/3/1,200016,4,1,0.003 2021/3/1,200017,4,0,0 2021/3/1,200018,1,0,0 2021/3/1,200019,2,2,0.3 2021/3/1,200020,3,3,0.03 2021/3/1,200021,1,0,0 2021/3/1,200022,2,5,1
2021/3/1,200029,1,0,0 2021/3/1,200030,2,5,1 2021/3/1,200031,3,2,0.02 2021/3/1,200032,4,1,0.003 2021/3/1,200033,4,0,0 2021/3/1,200034,1,0,0 2021/3/1,200035,2,2,0.5 2021/3/1,200036,3,3,0.06 2021/3/1,200037,1,0,0 2021/3/1,200038,2,1,0.01 2021/3/1,200039,3,2,0.01 2021/3/1,200040,4,1,0.009
数据说明如下:
表1-3 评价数据说明
字段名称 字段类型 字段说明 取值范围
deadline string 截止时间 单位:天 product_id int 商品编号 脱敏
comment_num int 累计评论数分段 ● 0表示无评论
● 1表示有1条评论
● 2表示有2-10条评论
● 3表示有11-50条评 论
● 4表示大于50条评 论
has_bad_comm
ent int 是否有差评 0表示无,1表示有
bad_comment_
rate float 差评率 差评数占总评论数的比
重
● action_data.csv:
user_id,product_id,time,model_id,type 100001,200001,2021/1/1,1,view 100001,200001,2021/1/1,1,add 100001,200001,2021/1/1,1,delete 100001,200002,2021/1/2,1,view 100001,200002,2021/1/2,1,add 100001,200002,2021/1/2,1,buy 100001,200002,2021/1/2,1,like 100002,200003,2021/1/1,1,view 100002,200003,2021/1/1,1,add 100002,200003,2021/1/1,1,delete 100002,200004,2021/1/2,1,view 100002,200004,2021/1/2,1,add 100002,200004,2021/1/2,1,buy 100002,200004,2021/1/2,1,like 100003,200001,2021/1/1,1,view 100003,200001,2021/1/1,1,add 100003,200001,2021/1/1,1,delete 100004,200002,2021/1/2,1,view 100005,200002,2021/1/2,1,add 100006,200002,2021/1/2,1,buy 100007,200002,2021/1/2,1,like 100001,200003,2021/1/1,1,view
100002,200003,2021/1/1,1,add 100003,200003,2021/1/1,1,delete 100004,200004,2021/1/2,1,view 100005,200004,2021/1/2,1,add 100006,200004,2021/1/2,1,buy 100007,200004,2021/1/2,1,like 100001,200005,2021/1/3,1,view 100001,200005,2021/1/3,1,add 100001,200005,2021/1/3,1,delete 100001,200006,2021/1/3,1,view 100001,200006,2021/1/4,1,add 100001,200006,2021/1/4,1,buy 100001,200006,2021/1/4,1,like 100010,200005,2021/1/3,1,view 100010,200005,2021/1/3,1,add 100010,200005,2021/1/3,1,delete 100010,200006,2021/1/3,1,view 100010,200006,2021/1/4,1,add 100010,200006,2021/1/4,1,buy 100010,200006,2021/1/4,1,like 100001,200007,2021/1/2,1,buy 100001,200007,2021/1/2,1,like 100002,200007,2021/1/1,1,view 100002,200007,2021/1/1,1,add 100002,200007,2021/1/1,1,delete 100002,200007,2021/1/2,1,view 100002,200007,2021/1/2,1,add 100002,200008,2021/1/2,1,like 100002,200008,2021/1/2,1,like 100003,200008,2021/1/1,1,view 100003,200008,2021/1/1,1,add 100003,200008,2021/1/1,1,delete 100004,200008,2021/1/2,1,view 100005,200009,2021/1/2,1,like 100006,200009,2021/1/2,1,buy 100007,200010,2021/1/2,1,like 100001,200010,2021/1/1,1,view 100002,200010,2021/1/1,1,add 100003,200010,2021/1/1,1,delete 100004,200010,2021/1/2,1,view 100005,200010,2021/1/2,1,like 100006,200010,2021/1/2,1,buy 100007,200010,2021/1/2,1,like 100001,200010,2021/1/3,1,view 100001,200010,2021/1/3,1,add 100001,200010,2021/1/3,1,delete 100001,200011,2021/1/3,1,view 100001,200011,2021/1/4,1,like 100001,200011,2021/1/4,1,buy 100001,200011,2021/1/4,1,like 100010,200012,2021/1/3,1,view 100011,200012,2021/1/3,1,like 100011,200012,2021/1/3,1,delete 100011,200013,2021/1/3,1,view 100011,200013,2021/1/4,1,like 100011,200014,2021/1/4,1,buy 100011,200014,2021/1/4,1,like 100007,200022,2021/1/2,1,like 100001,200022,2021/1/1,1,view 100002,200023,2021/1/1,1,add 100003,200023,2021/1/1,1,delete 100004,200023,2021/1/2,1,like 100005,200024,2021/1/2,1,add 100006,200024,2021/1/2,1,buy
100001,200027,2021/1/4,1,like 100001,200027,2021/1/4,1,buy 100001,200028,2021/1/4,1,like 100010,200029,2021/1/3,1,view 100011,200030,2021/1/3,1,like 100011,200031,2021/1/3,1,delete 100011,200032,2021/1/3,1,view 100011,200033,2021/1/4,1,like 100011,200034,2021/1/4,1,buy 100011,200035,2021/1/4,1,like
数据说明如下:
表1-4 行为数据说明
字段名称 字段类型 字段说明 取值范围
user_id int 用户编号 脱敏
product_id int 商品编号 脱敏
time string 行为时间 -
model_id string 模块编号 脱敏 type string ● 浏览view(指浏览
商品详情页)
● 加入购物车add
● 购物车删除delete
● 下单buy
● 关注like
-
数据湖准备
在本示例中,选择数据湖探索(DLI)服务作为数据湖。为确保DGC与DLI网络互通,
在创建DLI队列时区域和企业项目应与DGC实例保持一致。
开通DLI服务后,您需要在管理中心创建DLI连接,然后通过数据开发组件新建数据 库,再执行SQL来创建OBS外表。操作步骤如下:
步骤1 在DGC控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。
图1-1 选择管理中心
步骤2 在左侧导航树上,单击“数据连接”,进入页面后,单击“创建数据连接”按钮。
图1-2 数据连接
步骤3 创建一个到DLI的连接,数据连接名称为“dli”。
图1-3 创建数据连接
步骤4 DLI连接创建完成后,跳转到数据开发页面。
图1-4 跳转到数据开发页面
步骤5 参见图1-5,在DLI连接上右键单击,创建一个数据库用于存放数据表,数据库名称为
“BI”。
图1-5 创建数据库
步骤6 创建一个DLI SQL脚本,以通过DLI SQL语句来创建数据表。
图1-6 新建脚本
步骤7 在新建脚本弹出的SQL编辑器中输入如下SQL语句,并点击“运行”来创建数据表。其 中,user、product、comment、action为OBS表,数据存储在OBS中,用于存放原始 数据;top_like_product和top_bad_comment_product为DLI表,用于存放分析结果。
create table user(
user_id int, age int, sexuality int, rank int,
register_time string
) USING csv OPTIONS (path "obs://fast-demo/user_data.csv");
create table product(
product_id int, a1 int, a2 int, a3 int, category int, brand int
) USING csv OPTIONS (path "obs://fast-demo/product_data.csv");
create table comment(
deadline string, product_id int, comment_num int, has_bad_comment int, bad_comment_rate float
) USING csv OPTIONS (path "obs://fast-demo/comment_data.csv");
create table action(
user_id int, product_id int, time string,
图1-7 创建数据表
关键参数说明:
● 数据连接:步骤3中创建的DLI数据连接。
● 数据库:步骤5中创建的数据库。
● 资源队列:使用提供的默认资源队列“default”。
步骤8 脚本运行成功后,可以通过如下脚本检查数据表是否创建成功。确认数据表创建成功 后,该脚本后续无需使用,可直接关闭。
SHOW TABLES;
----结束
1.3 步骤 2:数据开发
本步骤通过BI报表原始数据,分析10大用户关注最多的产品和10大用户评价最差的商 品,然后通过作业定期调度执行并将结果每日导出到表中,以支撑信息分析。
分析 10 大用户关注最多的产品
步骤1 登录DGC控制台。选择对应工作空间的“数据开发”模块,进入数据开发页面。
图1-8 选择数据开发
步骤2 创建一个DLI SQL脚本,以通过DLI SQL语句来创建数据表。
图1-9 新建脚本
步骤3 在新建脚本弹出的SQL编辑器中输入如下SQL语句,从OBS原始数据表中计算出10大用 户关注最多的产品,将结果存放到top_like_product表。
FROM action
JOIN product ON (action.product_id = product.product_id) WHERE
action.type = 'like' group by
brand ORDER BY like_count desc LIMIT
10
图1-10 脚本(分析 10 大用户关注最多的产品)
关键参数说明:
● 数据连接:步骤3中创建的DLI数据连接。
● 数据库:步骤5中创建的数据库。
● 资源队列:使用提供的默认资源队列“default”。
步骤4 脚本调试无误后,点击“保存并提交版本”保存该脚本,脚本名称为
“top_like_product”。在后续开发并调度作业会引用该脚本。
步骤5 脚本保存完成且运行成功后,您可通过如下SQL语句查看top_like_product表数据。您 还可以参考图1-11,下载或转储表数据。
SELECT * FROM top_like_product
图1-11 查看 top_like_product 表数据
----结束
分析 10 大用户评价最差的商品
步骤1 登录DGC控制台。选择对应工作空间的“数据开发”模块,进入数据开发页面。
图1-12 选择数据开发
步骤2 创建一个DLI SQL脚本,以通过DLI SQL语句来创建数据表。
图1-13 新建脚本
INSERT
OVERWRITE table top_bad_comment_product SELECT
DISTINCT product_id, comment_num, bad_comment_rate FROM
comment WHERE
comment_num > 3 ORDER BY
bad_comment_rate desc LIMIT
10
图1-14 脚本(分析 10 大用户评价最差的产品)
关键参数说明:
● 数据连接:步骤3中创建的DLI数据连接。
● 数据库:步骤5中创建的数据库。
● 资源队列:使用提供的默认资源队列“default”。
步骤4 脚本调试无误后,点击“保存并提交版本”保存该脚本,脚本名称为
“top_bad_comment_product”。在后续开发并调度作业会引用该脚本。
步骤5 脚本保存完成且运行成功后,您可通过如下SQL语句查看top_bad_comment_product 表数据。您还可以参考图1-15,下载或转储表数据。
SELECT * FROM top_bad_comment_product
图1-15 查看 top_bad_comment_product 表数据
----结束
开发并调度作业
假设在OBS中原始BI报表是每日更新的,我们希望每天更新分析结果,那么这里可以 使用DLF作业编排和作业调度功能。
步骤1 登录DGC控制台。选择对应工作空间的“数据开发”模块,进入数据开发页面。
图1-16 选择数据开发
步骤2 创建一个DLF批处理作业,作业名称为“BI_analysis”。
图1-17 新建作业
图1-18 配置作业
步骤3 然后进入到作业开发页面,拖动两个Dummy节点和两个DLI SQL节点到画布中,选中 连线图标 并拖动,编排图1-19所示的作业。
图1-19 连接和配置节点属性
关键说明:
● Begin(Dummy节点):不执行任何操作,只作为起始点的标识。
● top_like_product(DLI SQL节点):在节点属性中,关联分析10大用户关注最多
的产品中开发完成的DLI SQL脚本“top_like_product”。
● top_bad_comment_product(DLI SQL节点):在节点属性中,关联分析10大用
户评价最差的商品中开发完成的DLI SQL脚本“top_bad_comment_product”。
● Finish(Dummy节点):不执行任何操作,只作为结束点的标识。
步骤4 作业编排完成后,单击 ,测试运行作业。
步骤5 如果作业测试运行正常,单击画布空白处,在右侧的“调度配置”页面,配置作业的 调度策略。
图1-20 调度配置
说明:
● 调度属性:2022/02/09至2022/02/28,每天1点执行一次作业。
● 依赖属性:可以配置为依赖其他作业运行,本例不涉及,无需配置。
● 跨周期依赖:可以选择配置为依赖上一周期或者不依赖,此处配置为不依赖即 可。
步骤6 最后保存并提交版本(单击 ),执行调度作业(单击 )。实现作业每天自动运 行,BI报表分析结果自动保存到“top_like_product”和
“top_bad_comment_product”表。
步骤7 您如果需要及时了解作业的执行结果是成功还是失败,可以通过数据开发的运维调度 界面进行查看,如图1-21所示。
图1-21 查看作业执行情况
步骤8 数据开发还支持配置通知管理,可以选择配置当作业运行异常/失败后,进行短信、邮 件、控制台等多种方式提醒,此处不再展开描述。
----结束
至此,基于电商BI报表的数据开发流程示例完成。此外,您还可以根据原始BI报表数 据,分析用户的年龄分布、性别比例、商品评价情况、购买情况、浏览情况等,为营 销决策、广告推荐、信用评级、品牌监控、用户行为预测等提供高质量的信息。
2 基于电影评分的数据集成与开发流程
2.1 示例场景说明
本实践通过DGC服务的数据集成CDM组件、数据开发DLF组件和数据仓库服务
(DWS)对电影评分原始数据进行分析,输出评分最高和最活跃Top10电影。您可以 学习到数据集成模块的数据迁移和数据开发模块的脚本开发、作业开发、作业调度等 功能,以及DWS SQL基本语法。
说明
本入门示例涉及DGC批量数据集成、管理中心和数据开发模块,DGC各版本均可以满足使用要 求(试用DGC的基础版时,需要在另购CDM集群后再操作本示例)。
操作流程如下:
1. 准备工作,包括使用DGC前的准备、数据源准备、数据湖准备和认证数据准备。
2. 创建数据迁移作业,OBS数据迁移到DWS。
3. 数据开发,包含创建DWS SQL脚本和开发作业。
–
创建DWS SQL脚本top_rating_movie(用于存放评分最高的Top10电影)
–
创建DWS SQL脚本top_active_movie(用于存放最活跃的Top10电影)
–
开发并调度作业,通过编排作业和配置作业调度策略,定期执行作业,使得
用户可以每天获取到最新的Top10电影结果。
2.2 步骤 1:准备工作
使用 DGC 前的准备
如果您是第一次使用DGC,请参考准备工作章节完成注册华为云帐号、购买DGC实 例、创建工作空间等一系列操作。然后进入到对应的工作空间,即可开始使用DGC。
为方便演示,本示例提供了用于模拟原始数据的部分数据。为了方便将源数据集成到 云上,我们需要先将样例数据存储为CSV文件,将CSV文件上传至OBS服务中。
步骤1 创建CSV文件(UTF-8无bom格式),文件名称为对应的数据表名,将后文提供的各样 例数据分别拷贝粘贴到不同CSV文件中,然后保存CSV文件。
以下是Windows下生成.csv文件的办法之一:
1. 使用文本编辑工具(例如Sublime Text,Notepad++等)新建一个文档,将后文 提供的样例数据拷贝进文档中。注意拷贝后检查下数据的行数及数据分行的正确 性。(注意,如果是从PDF文档中拷贝样例数据,单行的数据过长时会产生换 行,需手动重新调整为单行)
2. 选择“格式 > 以UTF-8无BOM格式编码”。
3. 选择“文件 > 另存为”。
4. 在弹出的对话框中输入文件名后,以CSV格式保存该文件。
步骤2 将源数据CSV文件上传到OBS服务。
1. 登录控制台,选择“存储 > 对象存储服务 OBS”,进入OBS控制台。
2. 单击“创建桶”,然后根据页面提示配置参数,创建一个名称为“fast-demo”的 OBS桶。
说明
为保证网络互通,OBS桶区域请选择和DGC实例相同的区域。如果需要选择企业项目,也 请选择与DGC实例相同的企业项目。
使用OBS控制台创建桶的操作,请参见《对象存储服务控制台指南》中的创建
桶。
3. 上传数据到名称为“fast-demo”的OBS桶中。
使用OBS控制台上传文件的操作,请参见《对象存储服务控制台指南》中的上传
文件。
----结束
本示例中涉及到两部分样例数据,分别为电影数据movies.csv和评分数据 ratings.csv。具体数据和说明如下:
● movies.csv:
movieId,movieTitle,videoReleaseDate,IMDbURL,unknown,Action,Adventure,Animation,Childrens,Comed y,Crime,Documentary,Drama,Fantasy,FilmNoir,Horror,Musical,Mystery,Romance,SciFi,Thriller,War,Wester n1,Toy Story (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Toy%20Story%20(1995),
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
2,GoldenEye (1995),1-Jan-95,http://us.imdb.com/M/title-exact?GoldenEye%20(1995), 0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
3,Four Rooms (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Four%20Rooms%20(1995), 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
4,Get Shorty (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Get%20Shorty%20(1995), 0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0
5,Copycat (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Copycat%20(1995), 0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0
6,Shanghai Triad (Yao a yao yao dao waipo qiao) (1995),1-Jan-95,http://us.imdb.com/Title?Yao+a+yao +yao+dao+waipo+qiao+(1995),0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
7,Twelve Monkeys (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Twelve%20Monkeys%20(1995), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0
8,Babe (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Babe%20(1995), 0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0
9,Dead Man Walking (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Dead%20Man%20Walking
%20(1995),0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
10,Richard III (1995),22-Jan-96,http://us.imdb.com/M/title-exact?Richard%20III%20(1995), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0
11,Seven (Se7en) (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Se7en%20(1995), 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0
12,"Usual Suspects, The (1995)",14-Aug-95,"http://us.imdb.com/M/title-exact?Usual%20Suspects,
%20The%20(1995)",0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0
13,Mighty Aphrodite (1995),30-Oct-95,http://us.imdb.com/M/title-exact?Mighty%20Aphrodite
%20(1995),0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
14,"Postino, Il (1994)",1-Jan-94,"http://us.imdb.com/M/title-exact?Postino,%20Il%20(1994)", 0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0
15,Mr. Holland's Opus (1995),29-Jan-96,http://us.imdb.com/M/title-exact?Mr.%20Holland's%20Opus
%20(1995),0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
16,French Twist (Gazon maudit) (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Gazon%20maudit
%20(1995),0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0
17,From Dusk Till Dawn (1996),5-Feb-96,http://us.imdb.com/M/title-exact?From%20Dusk%20Till
%20Dawn%20(1996),0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0
18,"White Balloon, The (1995)",1-Jan-95,http://us.imdb.com/M/title-exact?Badkonake%20Sefid
%20(1995),0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
19,Antonia's Line (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Antonia%20(1995), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
20,Angels and Insects (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Angels%20and%20Insects
%20(1995),0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0
21,Muppet Treasure Island (1996),16-Feb-96,http://us.imdb.com/M/title-exact?Muppet%20Treasure
%20Island%20(1996),0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0
22,Braveheart (1995),16-Feb-96,http://us.imdb.com/M/title-exact?Braveheart%20(1995), 0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0
23,Taxi Driver (1976),16-Feb-96,http://us.imdb.com/M/title-exact?Taxi%20Driver%20(1976), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0
24,Rumble in the Bronx (1995),23-Feb-96,http://us.imdb.com/M/title-exact?Hong%20Faan%20Kui
%20(1995),0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
25,"Birdcage, The (1996)",8-Mar-96,"http://us.imdb.com/M/title-exact?Birdcage,%20The%20(1996)", 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
26,"Brothers McMullen, The (1995)",1-Jan-95,"http://us.imdb.com/M/title-exact?Brothers
%20McMullen,%20The%20(1995)",0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
27,Bad Boys (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Bad%20Boys%20(1995), 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
28,Apollo 13 (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Apollo%2013%20(1995), 0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0
29,Batman Forever (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Batman%20Forever%20(1995), 0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0
30,Belle de jour (1967),1-Jan-67,http://us.imdb.com/M/title-exact?Belle%20de%20jour%20(1967), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
31,Crimson Tide (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Crimson%20Tide%20(1995), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0
32,Crumb (1994),1-Jan-94,http://us.imdb.com/M/title-exact?Crumb%20(1994), 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
33,Desperado (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Desperado%20(1995), 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0
34,"Doom Generation, The (1995)",1-Jan-95,"http://us.imdb.com/M/title-exact?Doom%20Generation,
%20The%20(1995)",0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0
35,Free Willy 2: The Adventure Home (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Free%20Willy
%202:%20The%20Adventure%20Home%20(1995),0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0 36,Mad Love (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Mad%20Love%20(1995), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0
37,Nadja (1994),1-Jan-94,http://us.imdb.com/M/title-exact?Nadja%20(1994), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
38,"Net, The (1995)",1-Jan-95,"http://us.imdb.com/M/title-exact?Net,%20The%20(1995)", 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0
39,Strange Days (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Strange%20Days%20(1995), 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0
40,"To Wong Foo, Thanks for Everything! Julie Newmar (1995)",1-Jan-95,"http://us.imdb.com/M/title- exact?To%20Wong%20Foo,%20Thanks%20for%20Everything!%20Julie%20Newmar%20(1995)", 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
41,Billy Madison (1995),1-Jan-95,http://us.imdb.com/M/title-exact?Billy%20Madison%20(1995), 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
42,Clerks (1994),1-Jan-94,http://us.imdb.com/M/title-exact?Clerks%20(1994),
45,Eat Drink Man Woman (1994),1-Jan-94,http://us.imdb.com/M/title-exact?Yinshi%20Nan%20Nu
%20(1994),0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0
46,Exotica (1994),1-Jan-94,http://us.imdb.com/M/title-exact?Exotica%20(1994), 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
47,Ed Wood (1994),1-Jan-94,http://us.imdb.com/M/title-exact?Ed%20Wood%20(1994), 0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0
48,Hoop Dreams (1994),1-Jan-94,http://us.imdb.com/M/title-exact?Hoop%20Dreams%20(1994), 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
49,I.Q. (1994),1-Jan-94,http://us.imdb.com/M/title-exact?I.Q.%20(1994), 0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0
50,Star Wars (1977),1-Jan-77,http://us.imdb.com/M/title-exact?Star%20Wars%20(1977), 0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0
数据说明如下:
表2-1 电影数据说明
字段名称 字段类型 字段说明
movieId INT 电影ID movieTitle VARCHAR 电影名 videoReleaseDate VARCHAR 电影发行日期 IMDbURL VARCHAR IMDb链接
unknown INT 未知,是则为1,否为0 Action INT 动作,是则为1,否为0 Adventure INT 冒险,是则为1,否为0 Animation INT 动画,是则为1,否为0 Childrens INT 儿童,是则为1,否为0 Comedy INT 喜剧,是则为1,否为0 Crime INT 犯罪,是则为1,否为0 Documentary INT 纪录片,是则为1,否为0 Drama INT 戏剧,是则为1,否为0 Fantasy INT 幻想,是则为1,否为0 FilmNoir INT 黑色,是则为1,否为0 Horror INT 恐怖,是则为1,否为0 Musical INT 音乐,是则为1,否为0 Mystery INT 神秘,是则为1,否为0 Romance INT 浪漫,是则为1,否为0 SciFi INT 科幻,是则为1,否为0 Thriller INT 惊悚,是则为1,否为0 War INT 战争,是则为1,否为0
字段名称 字段类型 字段说明
Western INT 西部,是则为1,否为0
● ratings.csv:
userId,movieId,rating,timestamp 210,40,3,891035994
224,29,3,888104457 308,1,4,887736532 7,32,4,891350932 10,16,4,877888877 99,4,5,886519097 115,20,3,881171009 138,26,5,879024232 243,15,3,879987440 293,5,3,888906576 162,25,4,877635573 135,23,4,879857765 62,21,3,879373460 59,23,5,888205300 43,14,2,883955745 19,4,4,885412840 5,2,3,875636053 72,48,4,880036718 224,26,3,888104153 299,14,4,877877775 151,10,5,879524921 6,14,5,883599249 250,7,4,878089716 268,2,2,875744173 292,11,5,881104093 181,3,2,878963441 145,15,2,875270655 1,33,4,878542699 276,2,4,874792436 18,26,4,880129731 87,40,3,879876917 272,12,5,879455254 296,20,5,884196921 5,17,4,875636198 128,15,4,879968827 287,1,5,875334088 65,47,2,879216672 1,20,4,887431883 290,50,5,880473582 45,25,4,881014015 109,8,3,880572642 157,25,3,886890787 301,33,4,882078228 62,12,4,879373613 276,40,3,874791871 269,22,1,891448072 10,7,4,877892210 244,17,2,880607205 222,26,3,878183043 185,23,4,883524249 207,13,3,875506839 8,22,5,879362183 222,49,3,878183512 200,11,5,884129542 90,25,5,891384789
268,21,3,875742822 262,28,3,879792220 90,22,4,891384357 270,25,5,876954456 194,23,4,879522819 161,48,1,891170745 58,9,4,884304328 79,50,4,891271545 221,48,5,875245462 223,11,3,891550649 292,9,4,881104148 16,8,5,877722736 17,13,3,885272654 148,1,4,877019411 280,1,4,891700426 110,38,3,886988574 90,12,5,891383241 239,9,5,889180446 311,9,4,884963365 151,13,3,879542688 2,50,5,888552084 8,50,5,879362124 286,44,3,877532173 85,25,2,879452769 274,50,5,878944679 217,27,1,889070011 181,14,1,878962392 297,25,4,874954497 1,47,4,875072125 6,23,4,883601365 222,22,5,878183285 314,28,5,877888346 291,15,5,874833668 94,24,4,885873423 83,43,4,880308690 43,40,3,883956468 44,15,4,878341343 158,24,4,880134261 151,12,5,879524368 66,1,3,883601324 5,1,4,875635748 207,25,4,876079113 109,1,4,880563619 227,50,4,879035347 181,1,3,878962392 213,13,4,878955139 121,14,5,891390014 117,15,5,880125887 85,13,3,879452866 313,22,3,891014870 43,5,4,875981421 11,38,3,891905936 72,28,4,880036824 115,8,5,881171982 95,1,5,879197329 145,22,5,875273021 66,7,3,883601355 267,17,4,878971773 25,25,5,885853415 103,24,4,880415847 87,9,4,879877931 49,47,5,888068715 135,39,3,879857931 269,13,4,891446662 99,50,5,885679998 306,14,5,876503995 291,7,5,874834481 312,28,4,891698300 184,36,3,889910195
305,11,1,886323237 198,7,4,884205317 104,7,3,888465972 293,39,3,888906804 256,25,5,882150552 92,15,3,875640189 1,17,3,875073198 214,42,5,892668130 82,14,4,876311280 305,50,5,886321799 223,8,2,891550684 91,28,4,891439243 315,13,4,879821158 269,9,4,891446246 217,7,4,889069741 49,7,4,888067307 87,2,4,879876074 268,1,3,875742341 262,47,2,879794599 84,12,5,883452874 264,33,3,886122644 224,20,1,888104487 200,24,2,884127370 92,24,3,875640448 276,38,3,874792574 286,34,5,877534701 49,38,1,888068289 311,5,3,884365853 269,47,4,891448386 194,4,4,879521397 57,28,4,883698324 108,50,4,879879739 207,4,4,876198457 181,16,1,878962996 94,9,5,885872684 234,20,4,891227979 68,7,3,876974096 13,14,4,884538727 98,47,4,880498898 53,24,3,879442538 239,10,5,889180338 63,20,3,875748004 276,43,1,874791383 272,48,4,879455143 116,7,2,876453915 26,25,3,891373727 62,24,4,879372633 295,47,5,879518166 63,50,4,875747292 49,17,2,888068651 310,24,4,879436242 7,44,5,891351728 326,22,4,879874989 213,12,5,878955409 222,29,3,878184571 249,11,5,879640868 217,22,5,889069741 189,1,5,893264174 234,50,4,892079237 296,48,5,884197091 81,3,4,876592546 151,15,4,879524879 59,12,5,888204260 246,8,3,884921245
7,28,5,891352341 41,28,4,890687353
数据说明如下:
表2-2 评分数据说明
字段名称 字段类型 字段说明
userId INT 用户ID movieId INT 电影ID rating INT 评分,5分制 timestamp VARCHAR 时间戳
数据湖准备
在本示例中,选择数据仓库服务(DWS)服务作为数据湖。
创建DWS集群的具体操作请参见创建集群。为确保DWS集群与DGC实例网络互通,
DWS集群需满足如下要求:
● DGC实例(指DGC实例中的CDM集群)与DWS集群处于不同区域的情况下,需要 通过公网或者专线打通网络。
● DGC实例(指DGC实例中的CDM集群)与DWS集群同区域情况下,同虚拟私有 云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或 安全组不同,还需配置路由规则及安全组规则,配置路由规则请参见如何配置路
由规则章节,配置安全组规则请参见如何配置安全组规则《虚拟私有云(VPC)使用
指南》中的“安全组 > 添加安全组规则”章节。● 此外,您还必须确保DWS集群与DGC工作空间所属的企业项目必须相同,如果不 同,您需要修改工作空间的企业项目。
创建DWS集群后,您需要在管理中心创建DWS连接,然后通过数据开发组件新建数据 库、数据库模式,再执行SQL来创建DWS表。操作步骤如下:
步骤1 在DGC控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。
图2-1 选择管理中心
步骤2 在左侧导航树上,单击“数据连接”,进入页面后,单击“创建数据连接”按钮。
图2-2 数据连接
步骤3 在弹出窗口中,配置数据连接参数,完成配置后,单击“确定”完成数据连接的创 建。参数配置如图2-3所示。
● 数据连接类型:数据仓库服务(DWS)
● 数据连接名称:dws_link
● 标签:可选参数。您可以输入新的标签名称,也可以在下拉列表中选择已有的标 签。
● 手动:关闭“手动”,“IP”和“端口”不需要手动填写。
● 集群名:选择所创建的DWS集群。
● 用户名:数据库的用户名,创建DWS集群时指定的用户名,默认为dbadmin。
● 密码:数据库的访问密码,创建DWS集群时指定的密码。
● KMS密钥:选择一个KMS密钥,使用KMS密钥对敏感数据进行加密。如果未创建 KMS密钥,请单击“访问KMS”进入KMS控制台创建一个密钥。
● 绑定Agent:需选择一个批量数据迁移集群作为连接代理,该集群和DWS集群必 须网络互通。本示例可选择创建DGC实例时自动创建的批量数据迁移集群。
图2-3 DWS 连接配置参数
步骤4 DWS连接创建完成后,跳转到数据开发页面。
图2-4 跳转到数据开发页面
步骤5 创建DWS数据库和数据库模式。
1. 在数据开发界面,在DWS连接上右键单击,创建一个数据库用于存放数据表,数 据库名称为“demo”。
图2-5 创建数据库
2. 展开DWS连接目录至demo数据库的数据库模式层级,然后再右键单击,创建数 据库模式用于存放数据表,数据库模式名称为“dgc”。
图2-6 创建数据库模式
步骤6 创建一个DWS SQL脚本,以通过DWS SQL语句来创建数据表。
图2-7 新建脚本
SET SEARCH_PATH TO dgc;
CREATE TABLE IF NOT EXISTS movies_item(
movieId INT, movieTitle VARCHAR, videoReleaseDate VARCHAR, IMDbURL VARCHAR, unknown INT, Action INT, Adventure INT, Animation INT, Childrens INT, Comedy INT, Crime INT, Documentary INT, Drama INT, Fantasy INT, FilmNoir INT, Horror INT, Musical INT, Mystery INT, Romance INT, SciFi INT, Thriller INT, War INT, Western INT );
CREATE TABLE IF NOT EXISTS ratings_item(
userId INT, movieId INT, rating INT,
timestamp VARCHAR );
CREATE TABLE IF NOT EXISTS top_rating_movie(
movieTitle VARCHAR, avg_rating float, rating_user_number int );
CREATE TABLE IF NOT EXISTS top_active_movie(
movieTitle VARCHAR, avg_rating float, rating_user_number int );
图2-8 创建数据表
关键参数说明:
● 数据连接:步骤3中创建的DWS数据连接。
● 数据库:步骤5中创建的数据库。
步骤8 脚本运行成功后,可以通过如下脚本检查数据表是否创建成功。确认数据表创建成功 后,该脚本后续无需使用,可直接关闭。
SELECT * FROM pg_tables;
----结束
认证数据准备
当您需要通过CDM迁移OBS数据时,需要通过AK/SK认证方式进行认证鉴权,因此,
我们必须先创建访问密钥(AK和SK)。
● Access Key Id(AK):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密 钥ID和私有访问密钥一起使用,对请求进行加密签名。
● Secret Access Key(SK):与访问密钥ID结合使用的密钥,对请求进行加密签 名,可标识发送方,并防止请求被修改。
在创建访问密钥前,请确保登录控制台的帐号已通过实名认证。
您可以通过如下方式获取访问密钥。
1. 登录控制台,在用户名下拉列表中选择“我的凭证”。
2. 进入“我的凭证”页面,选择“访问密钥 > 新增访问密钥”,如图2-9所示。
图2-9 单击新增访问密钥
3. 单击“确定”,根据浏览器提示,保存密钥文件。密钥文件会直接保存到浏览器 默认的下载文件夹中。打开名称为“credentials.csv”的文件,即可查看访问密钥
(Access Key Id和Secret Access Key)。
说明
● 每个用户仅允许新增两个访问密钥。
● 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控 制台界面获取。请在生成后妥善保管。
2.3 步骤 2:数据集成
OBS 数据迁移到 DWS
步骤1 登录DGC控制台。选择对应工作空间的“数据集成”模块,进入数据集成页面。
图2-10 选择数据集成
步骤2 进入DGC数据集成主页面,选择并进入“作业管理”。
图2-11 作业管理
步骤3 在作业管理界面,选择“连接管理 - 新建连接”,进入创建连接页面。
步骤4 在创建连接页面,选择“对象存储服务(OBS)”,新建CDM到OBS的连接,数据连 接名称为“obs_link”。
表2-3 OBS 连接的参数
参数名 说明 取值样例
名称 连接的名称,根据连接的数据源类型,用户可自定 义便于记忆、区分的连接名。
obs_link
OBS终端节 点
您可以通过以下任一方式获取Endpoint信息:
● OBS桶的Endpoint,可以进入OBS控制台概览 页,点击桶名称后查看桶的基本信息获取。
● 终端节点(Endpoint)即调用API的请求地址,
不同服务不同区域的终端节点不同。Endpoint可 从终端节点及区域说明获取。
这里支持用户输入桶级别的域名,例如:
test.xx.com,则在查询OBS桶的时候,只能查询到 test这个桶。
-
端口 数据传输协议端口,https是443,http是80。 443 OBS桶类型 用户下拉选择即可,一般选择为“对象存储”。 对象存储
参数名 说明 取值样例 访问标识(AK) AK和SK分别为登录OBS服务器的访问标识与密钥。
您需要先创建当前帐号的访问密钥,并获得对应的 AK和SK。
您可以通过如下方式获取访问密钥。
1. 登录控制台,在用户名下拉列表中选择“我的凭 证”。
2. 进入“我的凭证”页面,选择“访问密钥 > 新增 访问密钥”,如图2-12所示。
图2-12 单击新增访问密钥
3. 单击“确定”,根据浏览器提示,保存密钥文 件。密钥文件会直接保存到浏览器默认的下载文 件夹中。打开名称为“credentials.csv”的文 件,即可查看访问密钥(Access Key Id和Secret Access Key)。
说明
– 每个用户仅允许新增两个访问密钥。
– 为保证访问密钥的安全,访问密钥仅在初次生成时 自动下载,后续不可再次通过管理控制台界面获 取。请在生成后妥善保管。
-
密钥(SK) -
图2-13 创建 OBS 连接
步骤5 在创建连接页面,选择“数据仓库服务(DWS)”,新建CDM到DWS的连接,数据连 接名称为“dws_link”。
表2-4 DWS 连接参数
参数名 说明 取值样例
名称 连接的名称,根据连接的数据源类型,用户可自定
义便于记忆、区分的连接名。 dws_link 数据库服务
器 单击输入框后的“选择”,可获取用户的DWS实例
列表。 -
端口 配置为要连接的数据库的端口。DWS数据库端口默
认为8000。 8000
数据库名称 配置为要连接的数据库名称。 demo
用户名 待连接数据库的用户。该数据库用户需要有数据表
的读写权限,以及对元数据的读取权限。 dbadmin
密码 用户密码。 -
使用Agent 是否选择通过Agent从源端提取数据。 否
图2-14 创建 DWS 连接
步骤6 CDM到OBS和DWS的连接创建成功后,单击“表/文件迁移”,再单击“新建作业”。
图2-15 新建作业
步骤7 按照如下步骤完成作业参数的配置。
1. 如图2-16所示,配置作业名为movies_obs2dws,配置源端作业参数,然后配置目 的端作业参数。
说明
图2-16 作业配置
2. 在源端、目的作业配置区域,单击“显示高级属性”,在“高级属性”中,系统 提供了默认值,请根据实际业务数据的格式设置各项参数。
例如,本例中根据数据源准备中的样例数据格式,源端高级属性需注意以下参数 的设置,其他参数均保留默认值即可,如图2-17所示。目的端高级属性无需配 置。
– 字段分隔符:默认值为逗号,本示例需要保留默认值。
– 使用包围符:由于IMDbURL有的原始数据中包含“,”,需要修改默认值为
“是”。
– 首行为标题行:默认值为“否”,本示例首行是标题行,修改默认值为
“是”。
图2-17 源端高级属性
3. 单击“下一步”后,请参考以下说明配置字段映射,如图2-18所示,配置完成 后,单击“下一步”。
字段映射:在本示例中,由于数据迁移的目标表字段顺序和原始数据的字段顺序 是一样的,因此这里不需要调整字段映射的顺序。
如果目标表字段顺序和原始数据不一致,请一一将源字段指向含义相同的目的字 段。请将鼠标移至某一个字段的箭头起点,当光标显示为“+”的形状时,按住鼠 标,将箭头指向相同含义的目的字段,然后松开鼠标。
图2-18 字段映射
4. 根据需要配置任务的重试和定时执行、高级属性等。在本示例中仅需开启脏数 据,其他配置项保持默认即可。
图2-19 任务配置
单击“显示高级属性”,可配置“抽取并发数”以及“是否写入脏数据”,如图 2-19所示。
– 抽取并发数:设置同时执行的抽取任务数。并发抽取数取值范围为1-1000,
若配置过大,则以队列的形式进行排队。
CDM迁移作业的抽取并发量,与集群规格和表大小有关。
▪
按集群规格建议每1CUs(1CUs=1核4G)配置为4。▪
表每行数据大小为1MB以下的可以多并发抽取,超过1MB的建议单线程 抽取数据。– 是否写入脏数据:建议配置为“是”,然后参考图2-19配置相关参数。脏数 据是指与目的端字段不匹的数据,该数据可以被记录到指定的OBS桶中。用 户配置脏数据归档后,正常数据可以写入目的端,迁移作业不会因脏数据中 断。
在本示例中,“OBS桶”配置为在数据源准备中创建的桶“fast-demo”,您 需要前往OBS控制台,在桶中创建一个目录,例如err_data,然后再将“脏数 据目录”配置为该目录。
步骤8 单击“保存并运行”完成作业的创建。
返回“表/文件迁移”页面后,可在作业列表中查看到新建的作业。
图2-20 迁移作业运行结果
步骤9 参考步骤6~步骤8,再新建名为ratings_obs2dws的迁移作业,将ratings.csv数据迁移 到DWS的ratings_item表中。待作业运行成功后,数据迁移结束。
图2-21 数据迁移结果
步骤10 数据迁移结束后,您也可以跳转到数据开发页面,新建一个DWS SQL脚本,并分别执 行以下SQL语句检查DWS中的movies_item和ratings_item表数据是否符合预期。
● 查看movies_item表数据:
SET SEARCH_PATH TO dgc;
SELECT * FROM movies_item;
● 查看ratings_item表数据:
SET SEARCH_PATH TO dgc;
SELECT * FROM ratings_item;
图2-22 查看 DWS 表数据
----结束
2.4 步骤 3:数据开发
本步骤通过电影信息和评分信息的原始数据,分析评分最高的Top10电影和最活跃的 Top10电影,然后通过作业定期调度执行并将结果每日导出到表中,以支撑信息分析。
创建 DWS SQL 脚本 top_rating_movie(用于存放评分最高的 Top10 电影)
评分最高Top10电影的计算方法是:先计算出每部电影的总评分和参与评分的用户数,
过滤掉参与评分的用户数小于3的记录,返回电影名称、平均评分和参与评分用户数。
步骤1 登录DGC控制台。选择对应工作空间的“数据开发”模块,进入数据开发页面。
图2-23 选择数据开发
步骤2 创建一个DWS SQL脚本,以通过DWS SQL语句来创建数据表。
图2-24 新建脚本
步骤3 在新建脚本弹出的SQL编辑器中输入如下SQL语句,从movies_item和ratings_item表 中计算出评分最高的Top10电影,将结果存放到top_rating_movie表。
SET SEARCH_PATH TO dgc;
insert
overwrite into top_rating_movie select
a.movieTitle,
b.ratings / b.rating_user_number as avg_rating, b.rating_user_number
from
movies_item a, (
select movieId,
sum(rating) ratings,
count(1) as rating_user_number from
ratings_item group by movieId ) b
where
rating_user_number > 3 and a.movieId = b.movieId order by
avg_rating desc limit
10
图2-25 脚本(top_rating_movie)
关键参数说明:
● 数据连接:步骤3中创建的DWS数据连接。
● 数据库:步骤5中创建的数据库。
步骤4 脚本调试无误后,点击“保存并提交版本”提交该脚本,脚本名称为
“top_rating_movie”。在后续开发并调度作业引用该脚本。
步骤5 脚本保存完成且运行成功后,您可通过如下SQL语句查看top_rating_movie表数据。您 还可以参考图2-26,下载或转储表数据。
SET SEARCH_PATH TO dgc;
SELECT * FROM top_rating_movie
图2-26 查看 top_rating_movie 表数据
----结束
创建 DWS SQL 脚本 top_active_movie(用于存放最活跃的 Top10 电影)
最活跃Top10电影的计算方法是:平均评分大于3.5中用户评分数最多的10部电影。
步骤1 登录DGC控制台。选择对应工作空间的“数据开发”模块,进入数据开发页面。
图2-27 选择数据开发
步骤2 创建一个DWS SQL脚本,以通过DWS SQL语句来创建数据表。
图2-28 新建脚本
步骤3 在新建脚本弹出的SQL编辑器中输入如下SQL语句,从movies_item和ratings_item表 中计算出最活跃的Top10电影,将结果存放到top_active_movie表。
SET SEARCH_PATH TO dgc;
insert
overwrite into top_active_movie select
* from ( select
a.movieTitle,
b.ratingSum / b.rating_user_number as avg_rating, b.rating_user_number
from
movies_item a, (
select movieId,
sum(rating) ratingSum, count(1) as rating_user_number from
ratings_item group by movieId ) b
where
a.movieId = b.movieId ) t
where
t.avg_rating > 3.5 order by
rating_user_number desc limit
图2-29 脚本(top_active_movie)
关键参数说明:
● 数据连接:步骤3中创建的DWS数据连接。
● 数据库:步骤5中创建的数据库。
步骤4 脚本调试无误后,点击“保存并提交版本”提交该脚本,脚本名称为
“top_active_movie”。在后续开发并调度作业引用该脚本。
步骤5 脚本保存完成且运行成功后,您可通过如下SQL语句查看top_active_movie表数据。您 还可以参考图2-30,下载或转储表数据。
SET SEARCH_PATH TO dgc;
SELECT * FROM top_active_movie
图2-30 查看 top_active_movie 表数据
----结束
开发并调度作业
假设OBS中“movie”和“rating”表是每日更新的,我们希望每天更新Top10电影,
那么这里可以使用DLF作业编排和作业调度功能。
步骤1 登录DGC控制台。选择对应工作空间的“数据开发”模块,进入数据开发页面。
图2-31 选择数据开发
步骤2 创建一个DLF批处理作业,作业名称为“topmovie”。
图2-32 新建作业
图2-33 配置作业
步骤3 在作业开发页面,拖动2个CDM Job节点、3个Dummy节点和2个DWS SQL节点到画布 中,选中连线图标 并拖动,编排图2-34所示的作业。
图2-34 连接和配置节点属性
关键说明:
● Begin(Dummy节点):不执行任何操作,只作为起始点的标识。
● movies_obs2dws(CDM Job节点):在节点属性中,选择步骤2:数据集成中的 CDM集群,并关联CDM作业“movies_obs2dws”。
● ratings_obs2dws(CDM Job节点):在节点属性中,选择步骤2:数据集成中的 CDM集群,并关联CDM作业“ratings_obs2dws”。
● Waiting(Dummy节点):不执行任何操作,作为等待前侧节点执行结束的标 识。
● top_rating_movie(DWS SQL节点):在节点属性中,关联创建DWS SQL脚本 top_rating_movie中开发完成的DWS SQL脚本“top_rating_movie”。
● top_active_movie(DWS SQL节点):在节点属性中,关联创建DWS SQL脚本 top_active_movie中开发完成的DWS SQL脚本“top_active_movie”。
● Finish(Dummy节点):不执行任何操作,只作为结束点的标识。
步骤4 作业编排完成后,单击 ,测试运行作业。
步骤5 如果作业运行正常,单击画布空白处,在右侧的“调度配置”页面,配置作业的调度 策略。
图2-35 调度配置
说明:
● 2022/02/09至2022/02/28,每天1点00分执行一次作业。
● 依赖属性:可以配置为依赖其他作业运行,本例不涉及,无需配置。
● 跨周期依赖:可以选择配置为依赖上一周期或者不依赖,此处配置为不依赖即 可。
步骤6 最后保存并提交版本(单击 ),执行调度作业(单击 )。实现作业每天自动运 行,Top10电影的结果自动保存到“top_active_movie”和“top_rating_movie”表。
步骤7 您如果需要及时了解作业的执行结果是成功还是失败,可以通过数据开发的运维调度 界面进行查看,如图2-36所示。
图2-36 查看作业执行情况
步骤8 数据开发还支持配置通知管理,可以选择配置当作业运行异常/失败后,进行短信、邮 件、控制台等多种方式提醒,此处不再展开描述。
----结束
至此,基于电影评分的数据集成与开发流程示例完成。此外,您还可以根据原始数 据,分析不同类型电影的评分、浏览情况等,为营销决策、广告推荐、用户行为预测 等提供高质量的信息。
3 基于出租车出行数据的数据治理流程
3.1 示例场景说明
本示例是一个DGC全流程入门教程,旨在介绍如何在DGC平台完成端到端的全流程数 据运营。
本案例基于某市的出租车出行数据,选择MRS Hive作为数据湖底座,使用DGC实施全 流程数据治理,然后经过数据安全将标准化数据脱敏后,最后通过数据服务进行数据 开放。期望通过实施数据治理达到以下目标:
● 数据标准化、模型标准化
● 统一统计口径,提供高质量数据报告
● 数据质量监控告警
● 统计每天收入
● 统计某月收入
● 统计不同支付类型收入占比
流程简介
DGC典型的端到端开发流程如下图所示:
图3-1 DGC 使用流程
本入门指导将参考如表3-1所示的流程,实现示例场景的数据治理和运营。
表3-1 DGC 数据运营流程
主流程 说明 子任务 操作指导
步骤1:流程设
计
在使用DGC前,您需要进行业务调研和需求分析设 计。
需求分析、业 务调研与业务 流程设计
需求分析 业务调研 流程设计 步骤2:准备工
作
如果您是第一次使用 DGC,请先完成创建DGC 实例、创建工作空间等一 系列操作。
使用DGC前的
准备
使用DGC前的准备
模拟源数据,本示例源端 数据为OBS文件。
除了获取数据源的连接地 址等信息,还需确保数据 源所在的主机和华为云网 络互通。
准备数据源
准备数据源
根据业务场景选择符合需 求的云服务或数据仓库作 为数据湖,用于存储原始 数据和数据治理过程中的 数据,并进行数据开发、
服务和运营。
准备数据湖
准备数据湖
在管理中心创建数据 连接
创建数据库
创建数据表
主流程 说明 子任务 操作指导
步骤3:数据集
成
通过DGC平台将源数据上传或者接入到云上。
● 批量数据迁移:可以 将离线或历史数据迁 移到云上。提供同构/
异构数据源之间批量 数据迁移的服务,支 持单表/文件迁移、整 库迁移、增量迁移,
支持自建和云上的文 件系统,关系数据 库,数据仓库,
NoSQL,大数据云服 务,对象存储等数据 源。
● 实时数据接入:可以 将实时数据接入到云 上。
批量数据迁移 实时数据接入
(本例不涉 及)
创建集群
新建数据迁移的源连 接、目的连接 新建表/文件迁移作 业
步骤4:数据资
产采集
为了在DGC平台中对迁移 到云上的原始数据层进行 管理和监控,必须先对其 元数据进行采集并监控。元数据采集
采集并监控元数据
步骤5:规范设 计
规范设计以关系建模、维 度建模理论支撑实现规范 化、可视化、标准化数据 模型开发,定位于数据治 理流程设计落地阶段,输 出成果用于指导开发人员 实践落地数据治理方法 论。
准备工作
添加审核人
管理配置中心
主题设计主题设计
标准管理
新建码表并发布
新建数据标准并发布
关系建模
关系建模:新建SDI
层和DWI层两个模型
维度建模
维度建模:在DWR
层新建并发布维度 维度建模:在DWR 层新建并发布事实表
指标设计
指标设计:新建并发
布技术指标
数据集市建设
维度建模:在DM层 新建并发布汇总表 步骤6:数据开
发
可管理多种大数据服务,
提供一站式的大数据开发
数据管理
数据管理
主流程 说明 子任务 操作指导 发、作业开发、作业调
度、运维监控等操作,轻 松完成整个数据的处理分 析流程。
运维调度
运维调度
步骤7:数据质 量监控
对业务指标和数据指标进 行监控。您可从完整性、
有效性、及时性、一致 性、准确性、唯一性六个 维度进行单列、跨列、跨 行和跨表的分析。支持数 据的标准化,能够根据数 据标准自动生成标准化的 质量规则。支持周期性的 监控。
业务指标监控
监控业务指标
数据质量监控查看质量作业
步骤8:数据资
产管理
在DGC数据资产模块中,您可以查看数据地图。
数据地图
查看业务资产和技术
资产 步骤9:数据安
全管理
数据安全为数据湖提供数 据生命周期内统一的数据 使用保护能力。在数据安 全模块,您可以进行访问 权限管理、敏感数据识 别、数据脱敏和数据水印 管理等。
访问权限管理 本示例不涉及。
敏感数据识别 本示例不涉及。
数据脱敏
创建密级
创建数据识别规则 新建脱敏策略 创建静态脱敏任务
数据水印管理 本示例不涉及。步骤10:数据服
务API开发
统一管理对内对外的API服务,提供快速将数据表 生成数据API的能力,同 时支持将现有的API快速 注册到数据服务平台以统 一管理和发布。
购买数据服务 专享集群
购买数据服务专享集 群
设置API分配
配额
设置API分配配额
添加审核人
添加审核人
新建API并发布
创建API并发布API
调用API
调用API
3.2 步骤 1:流程设计
本入门指南以某市出租车出行数据为例,统计某出租车供应商2017年度的运营数据。
需求分析
通过需求分析,可以提炼出数据治理流程的实现框架,支撑具体数据治理实施流程的 设计。
在本示例场景下,当前面临的数据问题如下:
● 未建立标准化模型
● 数据字段命名不标准、不规范
● 数据内容不标准,数据质量不可控
● 统计口径不一致,困扰业务决策
通过DGC实施数据治理,期望能够达到以下目标:
● 数据标准化、模型标准化
● 统一统计口径,提供高质量数据报告
● 数据质量监控告警
● 统计每天收入
● 统计某月收入
● 统计不同支付类型收入占比
业务调研
在开始使用DGC前,您可以通过业务调研,明确业务过程中所需的DGC组件功能,并 分析后续的业务负载情况。
表3-2 业务调研表 序
号 收 集 项
需收集信息描述 调研结果 填写说明
1 工 作 空 间
企业大数据相关部门 的组织和关系调查
本示例不涉及 用于合理规划工作空间,降 低空间相互依赖的复杂度 各组织部门之间对数
据、资源的访问控制
本示例不涉及 涉及到用户的权限和资源权 限控制
2 数 据 集 成
有哪些数据源要迁 移,数据源版本
CSV格式的数据,
存储于OBS桶 - 每种数据源的数据全
量数据规模
2,114 字节 -
每种数据源每天的增 量数据规模
本示例不涉及 -
迁移目的端数据源种
类以及版本 迁移到MRS
Hive3.1 - 数据的迁移周期:
天、小时、分钟还是 实时迁移
天 -
100MB -
序 号
收 集 项
需收集信息描述 调研结果 填写说明
数据库类迁移,调研 表的个数,最大表的 规模
本示例不涉及,
本示例需要从 OBS文件迁移到 数据库
了解数据库迁移的作业规 模,了解最大表的迁移时间 是否可接受
文件类迁移,文件的 个数,有没有单文件 超过TB级文件
本示例的CSV文件 仅1个,未超过TB 级
-
3 数 据 开 发
是否需要作业编排调 度?
是 -
编排调度会涉及哪些 服务,例如MRS、
DWS、CDM等?
本示例涉及DGC 数据集成和数据 质量、MRS Hive
了解作业的场景,用于进一 步调查平台能力与客户场景 匹配度
作业数量规模是多
少? 本示例作业数量
在20个以内 大致了解作业的规模,通常 用算子数来描述,可通过表 的数量估计
每日作业调度次数是 多少?
没有特殊要求,
次数不限 根据DGC各销售版本的调度 限额,确定DGC的版本 数据开发人员的数量
是多少? 1个 -
4 规 范 设 计
数据现状,有哪些数
据源,多少张表? 本示例的CSV文件
仅1个 原始端分析, 了解数据来源 与整体概况
业务需求,有哪些业 务,有什么需求, 想 要获得什么价值?
数据标准化、模 型标准化,并灵 活统计收入情况
目的端分析,了解数据治理 以及数字化是为了什么
数据调研,数据概 况,数据标准程度,
行业标准概况?
本示例不涉及 过程端分析,了解数据治理 过程需要做到的标准与质量 的遵从
5 数 据 质 量
有哪些需求,需要获 得什么价值?
监控数据质量 支持更多数据源和更多规则 的监控
作业数量规模是多 少?
本示例仅1个 用户可手动创建几十个作 业,也可以在规范设计中配 置自动生成数据质量作业。
如果调用数据质量监控的创 建接口,则可创建超过100 个质量作业
用户的使用场景? 对DWI层数据进 行标准化清洗
一般在数据加工前后,对数 据的质量通过六大维度的规 则进行质量监控,当发现不 符合规则的异常数据时向用 户发送报警