• 沒有找到結果。

使用 DGC 前的准备

如果您是第一次使用DGC,请参考准备工作章节完成注册华为云帐号、购买DGC实 例、创建工作空间等一系列操作。然后进入到对应的工作空间,即可开始使用DGC。

本入门示例,为了演示DGC数据治理的全流程,华为云帐号需要具有DGC的所有执行 权限。

准备数据源

本入门指南以某市出租车出行数据为例,统计某出租车供应商2017年度的运营数据。

本示例演示数据来自:https://data.cityofnewyork.us/Transportation/2017-Yellow-Taxi-Trip-Data/biws-g3hs。

为方便演示,本示例提供了用于模拟原始数据的部分出行数据。为了方便将源数据集 成到云上,我们需要先将样例数据存储为CSV文件,将CSV文件上传至OBS服务中,然 后再使用DGC批量数据迁移将数据迁移到其他云服务中。

步骤1 创建一个CSV文件(UTF-8无bom格式),文件名称为

“2017_Yellow_Taxi_Trip_Data.csv”,将后文提供的样例数据拷贝粘贴到CSV文件 中,然后保存CSV文件。

以下是Windows下生成.csv文件的办法之一:

1. 使用文本编辑工具(例如Sublime Text,Notepad++等)新建一个文档,将后文 提供的样例数据拷贝进文档中。注意拷贝后检查下数据的行数及数据分行的正确 性。(注意,如果是从PDF文档中拷贝样例数据,单行的数据过长时会产生换 行,需手动重新调整为单行)

2. 选择“格式 > 以UTF-8无BOM格式编码”。

3. 选择“文件 > 另存为”。

4. 在弹出的对话框中输入文件名“2017_Yellow_Taxi_Trip_Data”后,以CSV格式保 存该文件。

步骤2 将源数据CSV文件上传到OBS服务。

1. 登录控制台,选择“存储 > 对象存储服务 OBS”,进入OBS控制台。

2. 单击“创建桶”,然后根据页面提示配置参数,创建一个名称为“fast-demo”的 OBS桶。

说明

为保证网络互通,OBS桶区域请选择和DGC实例相同的区域。如果需要选择企业项目,也 请选择与DGC实例相同的企业项目。

使用OBS控制台创建桶的操作,请参见《对象存储服务控制台指南》中的创建

桶。

3. 上传数据到名称为“fast-demo”的OBS桶中。

使用OBS控制台上传文件的操作,请参见《对象存储服务控制台指南》中的上传

文件。

----结束

部分样例数据如下。

VendorID,tpep_pickup_datetime,tpep_dropoff_datetime,passenger_count,trip_distance,RatecodeID,store_and_

fwd_flag,PULocationID,DOLocationID,payment_type,fare_amount,extra,mta_tax,tip_amount,tolls_amount,im provement_surcharge,total_amount

2,02/14/2017 04:08:11 PM,02/14/2017 04:21:53 PM,1,0.91,1,N,237,163,2,9.5,1,0.5,0,0,0.3,11.3 2,02/14/2017 04:08:11 PM,02/14/2017 04:19:29 PM,2,1.03,1,N,237,229,1,8.5,1,0.5,2.06,0,0.3,12.36 1,02/14/2017 04:08:12 PM,02/14/2017 04:19:44 PM,1,1.6,1,N,186,163,2,9,1,0.5,0,0,0.3,10.8 1,02/14/2017 04:08:12 PM,02/14/2017 04:19:15 PM,1,1.2,1,N,48,48,2,8.5,1,0.5,0,0,0.3,10.3 2,02/14/2017 04:08:12 PM,02/14/2017 04:13:38 PM,5,0.61,1,N,161,162,1,5.5,1,0.5,2.19,0,0.3,9.49 2,02/14/2017 04:08:12 PM,02/14/2017 05:35:11 PM,1,19.31,2,N,152,132,1,52,4.5,0.5,12.57,5.54,0.3,75.41 1,02/14/2017 04:08:13 PM,02/14/2017 04:20:53 PM,1,1.9,1,N,236,143,1,10.5,1,0.5,1.85,0,0.3,14.15 2,02/14/2017 04:08:13 PM,02/14/2017 04:15:54 PM,1,0.61,1,N,48,164,1,6.5,1,0.5,1.66,0,0.3,9.96 2,02/14/2017 04:08:13 PM,02/14/2017 04:41:40 PM,1,6.04,1,N,244,262,1,25,1,0.5,6.7,0,0.3,33.5 2,02/14/2017 04:08:13 PM,02/14/2017 04:17:31 PM,1,1.39,1,N,170,234,1,8,1,0.5,1,0,0.3,10.8 2,02/14/2017 04:08:14 PM,02/14/2017 04:54:11 PM,2,10.12,1,N,140,189,1,37.5,1,0.5,7,0,0.3,46.3 2,02/14/2017 04:08:14 PM,02/14/2017 04:13:56 PM,1,0.71,1,N,179,7,2,5.5,1,0.5,0,0,0.3,7.3

2,02/14/2017 04:08:14 PM,02/14/2017 05:04:24 PM,1,18.1,2,N,263,132,1,52,4.5,0.5,15.71,5.54,0.3,78.55 2,02/14/2017 04:08:14 PM,02/14/2017 04:08:47 PM,1,0.02,1,N,231,231,2,2.5,1,0.5,0,0,0.3,4.3

2,02/14/2017 04:08:15 PM,02/14/2017 04:18:13 PM,1,1.34,1,N,100,162,1,8,1,0.5,1.2,0,0.3,11 1,02/14/2017 04:08:16 PM,02/14/2017 04:19:01 PM,1,1.8,1,N,239,151,1,9,1,0.5,2.15,0,0.3,12.95

3-3 出租车行程数据

序号 字段名称 字段描述

1 VendorID 供应商编号

取值如下:

1=A Company 2=B Company 2 tpep_pickup_datetime 上车时间 3 tpep_dropoff_datetime 下车时间 4 passenger_count 乘客人数 5 trip_distance 行驶距离

6 ratecodeid 费率代码

取值如下:

1=Standard rate 2=JFK

3=Newark

4=Nassau or Westchester 5=Negotiated fare

6=Group ride 7 store_fwd_flag 存储转发标识 8 PULocationID 上车地点 9 DOLocationID 下车地点 10 payment_type 付款方式代码

取值如下:

1=Credit card 2=Cash 3=No charge 4=Dispute 5=Unknown 6=Voided trip 11 fare_amount 车费

12 extra 加收

13 mta_tax MTA税

14 tip_amount 手续费 15 tolls_amount 通行费 16 improvement_surcharge 改善附加费

序号 字段名称 字段描述 17 total_amount 总车费

准备数据湖

在使用DGC前,您需要根据业务场景选择符合需求的云服务或数据仓库作为DGC的数 据湖底座,用于存储原始数据和数据治理过程中的数据,并进行数据开发、服务和运 营。使用DGC数据集成,您可以将源数据迁移到多种云服务中。DGC集成了丰富的数 据引擎,支持对接所有华为云的数据湖与数据库云服务,也支持对接企业传统数据 库。DGC平台当前支持的数据湖产品请参见DGC支持的数据源章节。

本示例选择MapReduce服务(MRS)的Hive组件作为DGC平台的数据湖底座。您需要 先创建一个MRS安全集群(即开启“Kerberos认证”的MRS集群,数据安全组件不支 持对接MRS普通集群),具体操作请参见创建集群。

为确保MRS集群与DGC实例网络互通,MRS集群需满足如下要求:

● MRS集群必须包含Hive组件。

● 如需使用基于DGC规范设计的数据标准自动生成质量作业的功能,MRS集群版本 必须是2.0.3及以上版本,集群必须包含Hive和Spark组件,集群总节点数至少4 个。本示例需要使用该功能,因此必须满足这个条件。

● 需确保MRS集群和DGC实例之间网络互通,网络互通需满足如下条件:

– DGC实例(指DGC实例中的CDM集群)与MRS集群处于不同区域的情况下,

需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定 EIP,MRS集群可以访问公网且防火墙规则已开放连接端口。

– DGC实例(指DGC实例中的CDM集群)与MRS集群同区域情况下,同虚拟私 有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但子 网或安全组不同,还需配置路由规则及安全组规则,配置路由规则请参见如

何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。

– 此外,还需确保该MRS集群与DGC工作空间所属的企业项目相同,如果不 同,您需要修改工作空间的企业项目。

说明

由于创建MRS集群时仅支持自动创建安全组,建议您可以先创建MRS安全集群,然后在购 买DGC实例时选择同虚拟私有云、同子网、以及MRS集群自动创建的安全组(以“mrs_集 群名_随机字符”命名),以确保DGC实例和MRS集群网络默认互通。

如果您已购买DGC实例,然后才开始创建MRS集群,则您需要在“虚拟私有云 VPC”服务 控制台的“访问控制 > 安全组”界面对MRS集群创建的安全组(以“mrs_集群名_随机字 符”命名)添加规则,放通入方向的DGC实例安全组,详情请参见如何配置安全组规则章 节。

在管理中心创建数据连接

3-3 选择管理中心

步骤2 在左侧导航树上,单击“数据连接”,进入页面后,单击“创建数据连接”按钮。

3-4 数据连接

步骤3 在弹出窗口中,配置数据连接参数,完成配置后,单击“确定”完成数据连接的创 建。

此处以创建MapReduce服务 (MRS Hive)数据连接类型为例,参数配置如图3-5所 示。

注意

MRS的策略中,admin用户是默认的管理页面用户,这个用户无法作为使用Kerberos 认证集群的认证用户来使用。因此如果要为使用Kerberos认证的MRS集群创建连接,

需要执行如下操作:

1. 使用admin用户访问MRS Manager。

2. 参见创建用户章节,创建一个专有用户作为Kerberos认证用户。

3. 使用新建用户访问MRS Manager,更新初始密码。

● 数据连接类型:MapReduce服务(MRS Hive)。

● 数据连接名称:mrs_hive_link。

● 标签:可选参数。您可以输入新的标签名称,也可以在下拉列表中选择已有的标 签。

● 集群名:选择已有的MRS集群。

● 用户名:步骤3.2中新建的Kerberos认证用户。

● 密码:Kerberos认证用户对应的密码。

KMS密钥:选择一个KMS密钥,使用KMS密钥对敏感数据进行加密。如果未创建 KMS密钥,请单击“访问KMS”进入KMS控制台创建一个密钥。

● 连接方式:通过代理连接。

● 绑定Agent:需选择一个批量数据迁移集群作为连接代理,该集群和MRS集群必 须处于相同的区域、可用区、VPC和子网,并且安全组规则允许两者网络互通。

本示例可选择创建DGC实例时自动创建的批量数据迁移集群。

如需连接MRS 2.x版本的集群,请选择2.x版本的批量数据迁移集群作为Agent代 理。

3-5 创建 MRS Hive 数据连接

----结束

创建数据库

根据数据湖治理落地流程,建议您在数据湖中为SDI层、DWI层、DWR层和DM层分别 创建一个数据库,从而对数据进行分层分库。数据分层是后面在规范设计中将涉及到 的概念,此处先简单了解即可,在规范设计时将深入了解与操作。

● SDI (Source Data Integration),又称贴源数据层。SDI是源系统数据的简单落 地。

● DWI (Data Warehouse Integration),又称数据整合层。DWI整合多个源系统数 据,对源系统进来的数据进行整合、清洗,并基于三范式进行关系建模。

● DWR (Data Warehouse Report),又称数据报告层。DWR基于多维模型,和DWI 层数据粒度保持一致。

● 您可以在DGC数据开发模块中,可视化方式创建数据库,具体操作请参见新建数

据库章节。

● 您可以通过在DGC数据开发模块或MRS客户端上,开发并执行用于创建数据库的 SQL脚本,从而创建数据库。在DGC数据开发模块开发脚本的具体操作请参见开

发SQL脚本章节;在MRS客户端开发脚本的具体操作请参见从零开始使用Hive章

节。创建数据库的Hive SQL命令如下所示:

--创建SDI贴源层数据库

CREATE DATABASE demo_sdi_db;

--创建DWI多源整合层数据库 CREATE DATABASE demo_dwi_db;

--创建DWR明细数据层数据库 CREATE DATABASE demo_dwr_db;

--创建DM数据集市层数据库 CREATE DATABASE demo_dm_db;

创建数据表

基于样例数据,创建一个原始表,用于存储原始数据。从文件迁移到数据库的场景,

您需要预先创建目标数据表。由于本示例的数据源源端为OBS上的CSV文件,而非数据 库,在使用DGC数据集成将数据迁移上云时,不支持自动创建目标表的功能,因此,

您需要在目的端(MRS服务)先建好表。

说明

在使用DGC进行批量数据迁移时,关系型数据库之间的迁移和关系型数据库到Hive的迁移支持 自动创建目标表。这种情况下可以不提前在目的端数据库中预先创建目标表。

执行如下SQL语句,在demo_sdi_db数据库中,创建一个原始表,用于存储原始数据。

在本示例中,您可以参考以下任一一种方式在MRS Hive中创建数据表。

● 您可以在DGC数据开发模块中,可视化方式创建数据表,具体操作请参见新建数

据表章节。

● 您可以通过在DGC数据开发模块或MRS客户端上,开发并执行用于创建数据表的 SQL脚本,从而创建数据表。在DGC数据开发模块开发脚本的具体操作请参见开

发SQL脚本章节;在MRS客户端开发脚本的具体操作请参见从零开始使用Hive章

节。在demo_sdi_db数据库中创建一个原始数据表的Hive SQL命令如下所示:

DROP TABLE IF EXISTS `sdi_taxi_trip_data`;

CREATE TABLE demo_sdi_db.`sdi_taxi_trip_data` ( `VendorID` BIGINT COMMENT '',

`tpep_pickup_datetime` TIMESTAMP COMMENT '', `tpep_dropoff_datetime` TIMESTAMP COMMENT '', `passenger_count` BIGINT COMMENT '',

`trip_distance` DECIMAL(10,2) COMMENT '', `ratecodeid` BIGINT COMMENT '',

`store_fwd_flag` STRING COMMENT '', `PULocationID` STRING COMMENT '', `DOLocationID` STRING COMMENT '', `payment_type` BIGINT COMMENT '', `fare_amount` DECIMAL(10,2) COMMENT '', `extra` DECIMAL(10,2) COMMENT '', `mta_tax` DECIMAL(10,2) COMMENT '', `tip_amount` DECIMAL(10,2) COMMENT '', `tolls_amount` DECIMAL(10,2) COMMENT '',

`improvement_surcharge` DECIMAL(10,2) COMMENT '', `total_amount` DECIMAL(10,2) COMMENT ''

);