更新时间:2024-04-29 GMT+08:00

步骤2:准备工作

使用DataArts Studio前的准备

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

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

准备数据源

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

本示例演示的原始数据来自于NYC开放数据平台

为方便演示,您无需获取原始数据,本示例提供了模拟原始数据的样例数据供您使用。您可以参考下文的样例数据准备方法,将样例数据存储为CSV文件,将CSV文件上传至OBS服务中,然后再使用DataArts Studio数据集成将样例数据集成到其他云服务中。

样例数据准备方法如下:

  1. 创建一个CSV文件(UTF-8无bom格式),文件名称为“2017_Yellow_Taxi_Trip_Data.csv”,将后文提供的样例数据复制粘贴到CSV文件中,然后保存CSV文件。

    以下是Windows下生成.csv文件的办法之一:
    1. 使用文本编辑工具(例如记事本等)新建一个txt文档,将后文提供的样例数据复制进文档中。注意复制后检查数据的行数及数据分行的正确性(注意,如果是从PDF文档中复制样例数据,单行的数据过长时会产生换行,需手动重新调整为单行)。
    2. 单击文件 > 另存为,在弹出的对话框中,“保存类型”选择为“所有文件(*.*)”,在“文件名”处输入文件名和.csv后缀,选择UTF-8编码格式(不能带BOM),则能以CSV格式保存该文件。

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

    1. 登录控制台,选择存储 > 对象存储服务 OBS,进入OBS控制台。
    2. 单击“创建桶”,然后根据页面提示配置参数,创建一个名称为“fast-demo”的OBS桶。

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

      使用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,improvement_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
2,02/14/2017 04:08:16 PM,02/14/2017 04:15:57 PM,1,1.06,1,N,68,170,1,6.5,1,0.5,1,0,0.3,9.3
2,02/14/2017 04:08:16 PM,02/14/2017 04:20:08 PM,2,1.5,1,N,161,142,1,9,1,0.5,2.16,0,0.3,12.96
2,02/14/2017 04:08:16 PM,02/14/2017 04:11:56 PM,1,0.62,1,N,87,88,2,4.5,1,0.5,0,0,0.3,6.3
2,02/14/2017 04:08:16 PM,02/14/2017 04:13:20 PM,1,0.88,1,N,262,236,2,5.5,1,0.5,0,0,0.3,7.3
数据说明如下:
表1 出租车行程数据

序号

字段名称

字段描述

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

总车费

准备数据湖

在使用DataArts Studio前,您需要根据业务场景选择符合需求的云服务或数据库作为数据湖底座,由数据湖底座提供存储和计算的能力,DataArts Studio基于数据湖底座进行一站式数据开发、治理和服务。

DataArts Studio平台支持对接如DLI、DWS、MRS Hive等云服务,也支持对接如MySQL、Oracle等传统数据库,支持程度各有不同,详情请参见DataArts Studio支持的数据源章节。

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

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

  • MRS集群必须包含Hive组件。
  • 如需使用基于DataArts Studio数据架构的数据标准自动生成质量作业的功能,MRS集群版本必须是2.0.3及以上版本,集群必须包含Hive和Spark组件,集群总节点数至少4个。本示例需要使用该功能,因此必须满足这个条件。
    如果选择集群后连接失败,请检查MRS集群与作为Agent的CDM实例是否网络互通。网络互通需满足如下条件:
    • DataArts Studio实例(指DataArts Studio实例中的CDM集群)与MRS集群处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,MRS集群可以访问公网且防火墙规则已开放连接端口。
    • DataArts Studio实例(指DataArts Studio实例中的CDM集群)与MRS集群同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但子网或安全组不同,还需配置路由规则及安全组规则,配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。
    • 此外,还需确保该MRS集群与DataArts Studio工作空间所属的企业项目相同,如果不同,您需要修改工作空间的企业项目。

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

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

在管理中心创建数据连接

准备好数据湖之后,在DataArts Studio管理中心模块中创建数据连接,以便连接作为数据湖的云服务。

  1. 参考访问DataArts Studio实例控制台登录DataArts Studio管理控制台。
  2. DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。
  3. “数据连接”页面,单击“创建数据连接”按钮。

    图1 数据连接

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

    此处创建MapReduce服务 (MRS Hive)数据连接,参数配置如图2所示。

    • 数据连接类型:MapReduce服务(MRS Hive)。
    • 数据连接名称:mrs_hive_link。
    • 标签:可选参数。您可以输入新的标签名称,也可以在下拉列表中选择已有的标签。
    • 集群名:选择已有的MRS集群。
    • 用户名:新建的Kerberos认证用户。注意,MRS的策略中,admin用户是默认的管理页面用户,这个用户无法作为使用Kerberos认证集群的认证用户来使用。因此如果要为使用Kerberos认证的MRS集群创建连接,需要执行如下操作:
      1. 使用admin账户登录MRS服务的Manager页面。
      2. 在Manager页面选择“系统 > 权限 > 安全策略 > 密码策略”,单击“新增密码策略”,添加一个永不过期的密码策略。
        • “密码策略名”可配置为“neverexp”。
        • “密码有效期(天)”配置为“0”,表示永不过期。
        • 密码失效提前提醒天数”配置为“0”。
        • 其他参数保持默认即可。
      3. 在Manager页面选择“系统 > 权限 > 用户”,单击“添加用户”,添加一个专有用户作为kerberos认证用户,密码策略选择为永不过期策略“neverexp”,并且为这个用户添加用户组和分配角色权限,用户组选择superGroup,角色建议全选,然后根据页面提示完成用户的创建。
        • MRS 3.1.0及之后版本集群,所创建的用户至少需具备Manager_viewer的角色权限才能在管理中心创建连接;如果需要对应组件的进行库、表、数据的操作,还需要添加对应组件的用户组权限。
        • MRS 3.1.0版本之前的集群,所创建的用户需要具备Manager_administrator或System_administrator权限,才能在管理中心创建连接。
        • 仅具备Manager_tenant或Manager_auditor权限,无法创建连接。
      4. 使用新建的用户登录Manager页面,并更新初始密码,否则会导致创建连接失败。
      5. 同步IAM用户。
        1. 登录MRS管理控制台。
        2. 选择“集群列表 > 现有集群”,选中一个运行中的集群并单击集群名称,进入集群信息页面。
        3. “概览”页签的基本信息区域,单击“IAM用户同步”右侧的“同步”进行IAM用户同步
          • 当IAM用户的用户组的所属策略从MRS ReadOnlyAccess向MRS CommonOperations、MRS FullAccess、MRS Administrator变化时,由于集群节点的SSSD(System Security Services Daemon)缓存刷新需要时间,因此同步完成后,请等待5分钟,等待新修改策略生效之后,再进行提交作业。否则,会出现提交作业失败的情况。
          • 当IAM用户的用户组的所属策略从MRS CommonOperations、MRS FullAccess、MRS Administrator向MRS ReadOnlyAccess变化时,由于集群节点的SSSD缓存刷新需要时间,因此同步完成后,请等待5分钟,新修改策略才能生效。
    • 密码:Kerberos认证用户对应的密码。
    • KMS密钥:选择一个KMS密钥,使用KMS密钥对敏感数据进行加密。如果未创建KMS密钥,请单击“访问KMS”进入KMS控制台创建一个密钥。
    • 连接方式:通过代理连接。
    • 绑定Agent:需选择一个数据集成集群作为连接代理,该集群和MRS集群必须处于相同的区域、可用区、VPC和子网,并且安全组规则允许两者网络互通。本示例可选择创建DataArts Studio实例时自动创建的数据集成集群。

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

    图2 创建MRS Hive数据连接

创建数据库

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

  • SDI (Source Data Integration),又称贴源数据层。SDI是源系统数据的简单落地。
  • DWI (Data Warehouse Integration),又称数据整合层。DWI整合多个源系统数据,对源系统进来的数据进行整合、清洗,并基于三范式进行关系建模。
  • DWR (Data Warehouse Report),又称数据报告层。DWR基于多维模型,和DWI层数据粒度保持一致。
  • DM (Data Mart),又称数据集市。DM面向展现层,数据有多级汇总。

创建数据库的操作,一般您需要在数据湖产品中完成。

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

  • 您可以在DataArts Studio数据开发模块中,可视化方式创建数据库,具体操作请参见新建数据库章节。
  • 您可以通过在DataArts Studio数据开发模块或MRS客户端上,开发并执行用于创建数据库的SQL脚本,从而创建数据库。在DataArts Studio数据开发模块开发脚本的具体操作请参见开发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文件,而非数据库,在使用DataArts Studio数据集成将数据迁移上云时,不支持自动创建目标表的功能,因此,您需要在目的端(MRS服务)先建好表。

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

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

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

  • 您可以在DataArts Studio数据开发模块中,可视化方式创建数据表,具体操作请参见新建数据表章节。
  • 您可以通过在DataArts Studio数据开发模块或MRS客户端上,开发并执行用于创建数据表的SQL脚本,从而创建数据表。在DataArts Studio数据开发模块开发脚本的具体操作请参见开发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 ''
    );