步骤1：准备工作

示例场景说明

```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

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

准备数据源（源端）

• 云上DAYU批量数据迁移集群绑定EIP地址（即弹性公网IP）。
• 源端数据源所在的主机可以访问Internet。
• 获取源端数据源的公网连接地址、数据库端口、数据库账户（具有读写权限）及密码。
• 源端数据源所在的主机，防火墙规则出方向允许数据库端口流出，入方向允许DAYU批量数据迁移集群绑定的EIP访问。

1. 创建一个CSV文件（UTF-8无bom格式），文件名称为“2017_Yellow_Taxi_Trip_Data.csv”，将示例场景说明中的样例数据拷贝粘贴到CSV文件中，然后保存CSV文件。

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

2. 选择格式 > 以UTF-8无BOM格式编码
3. 选择文件 > 另存为
4. 在弹出的对话框中输入文件名后，单击保存

出于标识的目的，输入文件名的时候，建议将文件后缀设为.csv。

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

1. 登录控制台，在左上角单击“服务列表”按钮，选择存储 > 对象存储服务 OBS，进入OBS控制台。
2. 在页面右上角单击“创建桶”，然后根据页面提示配置参数，创建一个名称为“dayu-demo-obs”的OBS桶。

其中，区域请选择和DAYU实例相同的区域。

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

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

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

准备数据湖（目的端）

1. 选择数据湖。关于如何选择，请参见选择数据湖

在本示例中，我们选择数据湖探索（DLI）服务作为数据湖。

2. 创建数据库。

在使用DAYU数据集成将数据迁移上云之前，我们需要在目的端（DLI服务）创建目标数据库。在本示例中，创建一个名称为“transport”的数据库，在DLI服务中创建数据库的操作，请参见创建数据库

注意，DLI服务和DAYU实例必须在相同的区域和可用区。

3. （可选）创建表。

由于本示例的数据源源端为本地CSV文件，而非数据库，在使用DAYU数据集成将数据迁移上云之前，需要在目的端（DLI服务）先创建好目标表，用于存储原始数据。

如果源端数据源为MySQL、PostgreSQL等数据库类型，则无需在目的端预先创建目标表，因为在使用DAYU数据集成进行数据迁移时会自动创建。

您可以参见创建数据库和表在DLI中创建表。由于本示例表字段个数较多，在完成DLI数据库的创建后，建议使用SQL语句创建表。编写如下SQL语句，在transport数据库中，创建一个源数据表，用于存储原始数据，再创建一个脏数据表，用于存储一些无效数据、错误数据或者不符合标准和规范的数据。

```DROP TABLE IF EXISTS `taxi_trip_data_temp`;
DROP TABLE IF EXISTS `taxi_trip_data_err`;

CREATE TABLE IF NOT EXISTS taxi_trip_data_temp(
`VendorID` STRING COMMENT '',
`tpep_pickup_datetime` TIMESTAMP COMMENT '',
`tpep_dropoff_datetime` TIMESTAMP COMMENT '',
`passenger_count` SMALLINT COMMENT '',
`trip_distance` FLOAT COMMENT '',
`ratecodeid` STRING COMMENT '',
`store_fwd_flag` STRING COMMENT '',
`PULocationID` STRING COMMENT '',
`DOLocationID` STRING COMMENT '',
`payment_type` STRING COMMENT '',
`fare_amount` FLOAT COMMENT '',
`extra` FLOAT COMMENT '',
`mta_tax` FLOAT COMMENT '',
`tip_amount` FLOAT COMMENT '',
`tolls_amount` FLOAT COMMENT '',
`improvement_surcharge` FLOAT COMMENT '',
`total_amount` FLOAT COMMENT ''
);

CREATE TABLE IF NOT EXISTS taxi_trip_data_err(
`VendorID` STRING COMMENT '',
`tpep_pickup_datetime` TIMESTAMP COMMENT '',
`tpep_dropoff_datetime` TIMESTAMP COMMENT '',
`passenger_count` SMALLINT COMMENT '',
`trip_distance` FLOAT COMMENT '',
`ratecodeid` STRING COMMENT '',
`store_fwd_flag` STRING COMMENT '',
`PULocationID` STRING COMMENT '',
`DOLocationID` STRING COMMENT '',
`payment_type` STRING COMMENT '',
`fare_amount` FLOAT COMMENT '',
`extra` FLOAT COMMENT '',
`mta_tax` FLOAT COMMENT '',
`tip_amount` FLOAT COMMENT '',
`tolls_amount` FLOAT COMMENT '',
`improvement_surcharge` FLOAT COMMENT '',
`total_amount` FLOAT COMMENT ''
);```

选择数据湖

DAYU平台当前支持的数据湖产品主要有以下几种，在本示例中，我们选择数据湖探索（DLI）服务。

DWS是基于Shared-nothing分布式架构，具备MPP大规模并行处理引擎，兼容标准ANSI SQL 99和SQL 2003，同时兼容PostgreSQL/Oracle数据库生态，为各行业PB级海量大数据分析提供有竞争力的解决方案。

MapReduce服务（MRS HBase）

HBase是一个开源的、面向列（Column-Oriented）、适合存储海量非结构化数据或半结构化数据的、具备高可靠性、高性能、可灵活扩展伸缩的、支持实时数据读写的分布式存储系统。

MapReduce服务（MRS Hive）

MySQL

MySQL是目前最受欢迎的开源数据库之一，其性能卓越，架构成熟稳定，支持流行应用程序，适用于多领域多行业，支持各种WEB应用，成本低，中小企业首选。

SparkSQL

Spark是一个开源的，并行数据处理框架，能够帮助用户简单的开发快速、统一的大数据应用，对数据进行协处理、流式处理、交互式分析等等。

RDS

RDS是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。DAYU平台目前仅支持RDS中的MySQL和PostgreSQL数据库。

*必选