更新时间:2024-10-18 GMT+08:00

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服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。

    关键配置如下:

    CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。

  2. CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问MySQL。

    如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。

创建MySQL连接

  1. 在CDM集群管理界面,单击集群后的“作业管理”,选择连接管理 > 新建连接,进入连接器类型的选择界面,如图1所示。

    图1 选择连接器类型

  2. 选择“MySQL”后单击“下一步”,配置MySQL连接的参数。

    单击“显示高级属性”可查看更多可选参数,具体请参见配置云数据库MySQL/MySQL数据库连接。这里保持默认,必填参数如表1所示。

    表1 MySQL连接参数

    参数名

    说明

    取值样例

    名称

    输入便于记忆和区分的连接名称。

    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. 单击“保存”回到连接管理界面。

    如果保存时出错,一般是由于MySQL数据库的安全设置问题,需要设置允许CDM集群的EIP访问MySQL数据库。

创建OBS连接

  1. 单击CDM集群后的“作业管理”,进入作业管理界面,再选择连接管理 > 新建连接,进入选择连接器类型的界面,如图2所示。

    图2 选择连接器类型

  2. 连接器类型选择“对象存储服务(OBS)”后,单击“下一步”配置OBS连接参数,如图4所示。

    • 名称:用户自定义连接名称,例如“obslink”
    • OBS服务器、端口:配置为OBS实际的地址信息。
    • 访问标识(AK)、密钥(SK):登录OBS的AK、SK。
      您可以通过如下方式获取访问密钥。
      1. 登录控制台,在用户名下拉列表中选择“我的凭证”。
      2. 进入“我的证”页面,选择访问密钥 > 新增访问密钥,如图3所示。
        图3 单击新增访问密钥
      3. 单击“确定”,根据浏览器提示,保存密钥文件。密钥文件会直接保存到浏览器默认的下载文件夹中。打开名称为“credentials.csv”的文件,即可查看访问密钥(Access Key Id和Secret Access Key)。
        • 每个用户仅允许新增两个访问密钥。
        • 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台界面获取。请在生成后妥善保管。
    图4 创建OBS连接

  3. 单击“保存”回到连接管理界面。

创建迁移作业

  1. 选择表/文件迁移 > 新建作业,开始创建从MySQL导出数据到OBS的任务。

    图5 创建MySQL到OBS的迁移任务
    • 作业名称:用户自定义便于记忆、区分的任务名称。
    • 源端作业配置
      • 源连接名称:选择创建MySQL连接中的“mysqllink”
      • 使用SQL语句:否。
      • 模式或表空间:待抽取数据的模式或表空间名称。
      • 表名:要抽取的表名。
      • 其他可选参数一般情况下保持默认即可。
    • 目的端作业配置
      • 目的连接名称:选择创建OBS连接中的“obslink”
      • 桶名:待迁移数据的桶。
      • 写入目录:写入数据到OBS服务器的目录。
      • 文件格式:迁移数据表到文件时,文件格式选择“CSV格式”
      • 高级属性里的可选参数一般情况下保持默认即可。

  2. 单击“下一步”进入字段映射界面,CDM会自动匹配源和目的字段,如图6所示。

    • 如果字段映射顺序不匹配,可通过拖拽字段调整。
    • CDM的表达式已经预置常用字符串、日期、数值等类型的字段内容转换,详细请参见字段转换
    图6 表到文件的字段映射

  3. 单击“下一步”配置任务参数,一般情况下全部保持默认即可。

    该步骤用户可以配置如下可选功能:
    • 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”
    • 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。
    • 是否定时执行:如果需要配置作业定时自动执行,可打开此配置。这里保持默认值“否”
    • 抽取并发数:设置同时执行的抽取任务数。CDM支持并发抽取MySQL数据,如果源表配置了索引,可调大抽取并发数提升迁移速率。
    • 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。针对文件到表类迁移的数据,建议配置写入脏数据。
    • 作业运行完是否删除:这里保持默认值“不删除”。根据使用场景,也可配置为“删除”,防止迁移作业堆积。

  4. 单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。
  5. 作业执行成功后,单击作业操作列的“历史记录”,可查看该作业的历史执行记录、读取和写入的统计数据。

    在历史记录界面单击“日志”,可查看作业的日志信息。