
# MySQL数据迁移到OBS
#### 操作场景
CDM支持表到OBS的迁移，本章节以MySQL--\>OBS为例，介绍如何通过CDM将表数据迁移到OBS中。流程如下：
1. [创建CDM集群并绑定EIP]
2. [创建MySQL连接]
3. [创建OBS连接]
4. [创建迁移作业]
 
#### 前提条件
- 已获取OBS的访问域名、端口，以及AK、SK。
- 已获取连接MySQL数据库的IP地址、端口、数据库名称、用户名、密码，且该用户拥有MySQL数据库的读写权限。
- 已在CDM集群的"作业管理 \> 连接管理 \> 驱动管理"页面，上传了MySQL数据库驱动。
 
 #### 创建CDM集群并绑定EIP
1. 如果是独立CDM服务，参考[创建集群](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0018.html)创建CDM集群；如果是作为DataArts Studio服务CDM组件使用，参考[创建集群](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0576.html)创建CDM集群。
   
   关键配置如下：
   CDM集群的规格，按待迁移的数据量选择，一般选择cdm.medium即可，满足大部分迁移场景。
   
   
2. CDM集群创建完成后，选择集群操作列的"绑定弹性IP"，CDM通过EIP访问MySQL。 
   图1集群列表   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002239778293.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   如果用户对本地数据源的访问通道做了SSL加密，则CDM无法通过弹性IP连接数据源。
   
   
 
 #### 创建MySQL连接
1. 在CDM集群管理界面，单击集群后的"作业管理"，选择"连接管理 \> 新建连接"，进入连接器类型的选择界面，如[图2]所示。
   
   图2选择连接器类型   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001448285829.png "点击放大")
   
   
2. 选择"MySQL"后单击"下一步"，配置MySQL连接的参数。 
   单击"显示高级属性"可查看更多可选参数，具体请参见[配置云数据库MySQL/MySQL数据库连接](https://support.huaweicloud.com/usermanual-cdm/cdm_01_1211.html)。这里保持默认，必填参数如[表1]所示。
    表1MySQL连接参数 
   | 参数名             | 说明                                                                                                                                                    | 取值样例      |
   |:---|:---|:---|
   | 名称              | 输入便于记忆和区分的连接名称。                                                                                                                                       | mysqllink |
   | 数据库服务器          | MySQL数据库的IP地址或域名。                                                                                                                                     | -         |
   | 端口              | MySQL数据库的端口。                                                                                                                                          | 3306      |
   | 数据库名称           | MySQL数据库的名称。                                                                                                                                          | sqoop     |
   | 用户名             | 拥有MySQL数据库的读、写和删除权限的用户。                                                                                                                               | admin     |
   | 密码              | 用户的密码。                                                                                                                                                | -         |
   | 使用本地API         | 使用数据库本地API加速（系统会尝试启用MySQL数据库的local_infile系统变量）。                                                                                                       | 是         |
   | 使用Agent         | Agent功能待下线，无需配置。                                                                                                                                      | -         |
   | local_infile字符集 | MySQL通过local_infile导入数据时，可配置编码格式。                                                                                                                     | utf8      |
   | 驱动版本            | CDM连接关系数据库前，需要先上传所需关系数据库的JDK8版本.jar格式驱动。MySQL的驱动请从<https://downloads.mysql.com/archives/c-j/>选择5.1.48版本下载，从中获取mysql-connector-java-5.1.48.jar，然后进行上传。 | -         |
      
   
   
3. 单击"保存"回到连接管理界面。 
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   如果保存时出错，一般是由于MySQL数据库的安全设置问题，需要设置允许CDM集群的EIP访问MySQL数据库。
   
   
 
 #### 创建OBS连接
1. 单击CDM集群后的"作业管理"，进入作业管理界面，再选择"连接管理 \> 新建连接"，进入选择连接器类型的界面，如[图3]所示。
   
   图3选择连接器类型   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001566677846.png "点击放大")
   
   
2. 连接器类型选择"对象存储服务（OBS）"后，单击"下一步"配置OBS连接参数，如[图5]所示。
   
   - 名称：用户自定义连接名称，例如"obslink"。
   
   - OBS服务器、端口：配置为OBS实际的地址信息。
   
   - 访问标识（AK）、密钥（SK）：登录OBS的AK、SK。
     您可以通过如下方式获取访问密钥。
     1. 登录控制台，在用户名下拉列表中选择"我的凭证"。
     
     2. 进入"我的凭证"页面，选择"访问密钥 \> 新增访问密钥"，如[图4]所示。
        图4新增访问密钥   
        ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002613707359.png "点击放大")
        
        
     
     3. 单击"确定"，根据浏览器提示，保存密钥文件。密钥文件会直接保存到浏览器默认的下载文件夹中。打开名称为"credentials.csv"的文件，即可查看访问密钥（Access Key Id和Secret Access Key）。
        ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
        - 每个用户仅允许新增两个访问密钥。
        
        - 为保证访问密钥的安全，访问密钥仅在初次生成时自动下载，后续不可再次通过管理控制台界面获取。请在生成后妥善保管。
          
       
   
   
   图5创建OBS连接   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0297214966.png)
   
   
3. 单击"保存"回到连接管理界面。
 
 #### 创建迁移作业
1. 选择"表/文件迁移 \> 新建作业"，开始创建从MySQL导出数据到OBS的任务。 
   图6创建MySQL到OBS的迁移任务   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0285399810.jpg "点击放大")
   - 作业名称：用户自定义便于记忆、区分的任务名称。
   
   - 源端作业配置
     - 源连接名称：选择[创建MySQL连接]中的"mysqllink"。
     
     - 使用SQL语句：否。
     
     - 模式或表空间：待抽取数据的模式或表空间名称。
     
     - 表名：要抽取的表名。
     
     - 其他可选参数一般情况下保持默认即可。
      
   
   - 目的端作业配置
     - 目的连接名称：选择[创建OBS连接]中的"obslink"。
     
     - 桶名：待迁移数据的桶。
     
     - 写入目录：写入数据到OBS服务器的目录。
     
     - 文件格式：迁移数据表到文件时，文件格式选择"CSV格式"。
     
     - 高级属性里的可选参数一般情况下保持默认即可。
      
   
   
   
   
2. 单击"下一步"进入字段映射界面，CDM会自动匹配源和目的字段，如[图7]所示。
   
   - 如果字段映射顺序不匹配，可通过拖拽字段调整。
   
   - CDM的表达式已经预置常用字符串、日期、数值等类型的字段内容转换，详细请参见[字段转换](https://support.huaweicloud.com/bestpractice-dataartsstudio/dataartsstudio_05_0012.html)。
   
   
   图7表到文件的字段映射   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0285437455.jpg "点击放大")
   
   
3. 单击"下一步"配置任务参数，一般情况下全部保持默认即可。 
   该步骤用户可以配置如下可选功能：
   - 作业失败重试：如果作业执行失败，可选择是否自动重试，这里保持默认值"不重试"。
   
   - 作业分组：选择作业所属的分组，默认分组为"DEFAULT"。在CDM"作业管理"界面，支持作业分组显示、按组批量启动作业、按分组导出作业等操作。
   
   - 是否定时执行：如果需要配置作业定时自动执行，可打开此配置。这里保持默认值"否"。
   
   - 抽取并发数：设置同时执行的抽取任务数。CDM支持并发抽取MySQL数据，如果源表配置了索引，可调大抽取并发数提升迁移速率。
   
   - 是否写入脏数据：如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中，以便后面查看，可通过该参数配置，写入脏数据前需要先配置好OBS连接。针对文件到表类迁移的数据，建议配置写入脏数据。
   
   - 作业运行完是否删除：这里保持默认值"不删除"。根据使用场景，也可配置为"删除"，防止迁移作业堆积。
    
   
   
4. 单击"保存并运行"，回到作业管理界面，在作业管理界面可查看作业执行进度和结果。
5. 作业执行成功后，单击作业操作列的"历史记录"，可查看该作业的历史执行记录、读取和写入的统计数据。 
   在历史记录界面单击"日志"，可查看作业的日志信息。
   
   
 
