随着公司业务的增多,云数据库 RDS 下的 MySQL 数据库的表越来越多,想要把它全部迁移到 MaxCompute 中进行计算分析,但又愁要配置太多次同步任务。如何能将大量的数据表一次性上传到 MaxCompute 中呢?通过大数据开发套件的整库迁移功能,便可快速完成 MySQL 数据整库迁移到 MaxCompute,从而节省同步时间,提高工作效率。 **下面介绍一个适用于中小企业用户,高效率低成本的数据同步方案:** 对于自建或云数据库 RDS 的 MySQL 数据库中的数据,都可以通过整库迁移功能,快速同步到 MaxCompute 中进行存储与分析,流程图如下: ![25](https://yqfile.alicdn.com/7a5368026bbfba5e6ba60bd19cbd19ef63501d8c.png) [云数据库 RDS ](https://help.aliyun.com/product/26090.html "云数据库 RDS 版"):RDS 是一种稳定可靠、可弹性伸缩的在线数据库服务,本实验主要使用 [云数据库 MySQL 版](https://help.aliyun.com/document_detail/26124.html)。 [MaxCompute](https://www.aliyun.com/product/odps?spm=5176.100239.blogcont81533.14.9738FG):原名 ODPS,是由阿里云自主研发的一款服务,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,它适用于海量数据的存储、计算,商业智能等领域。 [大数据开发套件](https://data.aliyun.com/product/ide?spm=5176.8142029.388261.287.CyJbmt):大数据开发套件提供全面托管的工作流服务,一站式开发管理的界面,帮助企业快速搭建数据中心。 ## 实验目的和前期说明 ## 实验目的: 通过大数据开发套件的整库迁移功能,快速把云数据库中的数据同步到 MaxCompute 中。 前期说明: 用户拥有阿里云官网实名认证账号,并且创建好账号 Access Key。 ## 实验前的准备工作 ## ###开通并创建 MaxCompute 项目 1 . 阿里云实名认证账号访问 [https://www.aliyun.com/product/odps](https://www.aliyun.com/product/odps) ,根据自身需求进行购买,开通 MaxCompute; 2 . 点击开通成功页面的管理控制台,进入 MaxCompute 的 [控制台页面](https://workbench.data.aliyun.com/console?spm=5176.8205274.748138.10.EPOGqB#/); 3 . 创建项目。进入控制台页面后导航至 **大数据开发套件 — 项目列表**,点击 **创建项目**,如图所示: 4 . 在弹出框中选择区域和付费方式,输入项目名称: ##准备同步数据 ###创建 RDS 实例 1 . 登录 [RDS 管理控制台](https://rds.console.aliyun.com/?spm=5176.doc26117.2.3.2e1IAl); 2 . 在 **实例列表** 页面,单击 **新建实例**,进入 **创建** 页面; 3 . 选择包年包月或按量付费,示例选择包年包月。关于计费方式的选择,请参见 [收费项目及价格说明](https://help.aliyun.com/document_detail/45020.html) 中的计费方式; 4 . 根据自身需求选择基本配置、网络类型、规格、存储空间、购买时长和购买量等实例配置,详情请参见:[创建实例中的选择实例配置](https://help.aliyun.com/document_detail/26117.html?spm=5176.doc26126.6.575.jWOdAe#h2-u64CDu4F5Cu6B65u9AA4); 5 . 单击立即购买,进入订单确认页面; 6 . 阅读关系型数据库 RDS 服务条款后,根据后续提示完成支付流程。 ###设置白名单 1 . 登录 [RDS 管理控制台](https://rds.console.aliyun.com/?spm=5176.doc26117.2.3.2e1IAl),选择目标实例; 2 . 在实例左侧菜单中选择 **数据安全性**; 3 . 在数据安全性页面的默认分组后单击 **修改**,如下图所示: 4 . 在修改白名单分组页面删除默认白名单 127.0.0.1,填写自定义白名单后,单击 **确定**,如下图所示: 组内白名单:填写可以访问数据库的 IP 地址或者 IP 段,IP 地址或者 IP 段间用英文逗号分隔。详情请参见:[设置白名单中的操作步骤](https://help.aliyun.com/document_detail/43185.html?spm=5176.doc26117.6.576.2e1IAl#h2-u64CDu4F5Cu6B65u9AA4)。 ### 创建账号和数据库 1 . 登录 [RDS 管理控制台](https://rds.console.aliyun.com/?spm=5176.doc26117.2.3.2e1IAl),选择目标实例; 2 . 选择左侧菜单中的 **账号管理**,单击 创建账号,如下图所示: 3 . 输入要创建的账号信息,单击 **确定**,如下图所示: 4 . 选择菜单中的 **数据库管理**,单击 **创建数据库**,如下图所示: 5 . 输入要创建的数据库信息,单击 **确定**,如下图所示: ###登录数据库 进入数据库管理页面,点击上侧 **登录数据库**,在弹出页面填写数据库用户名和密码,如下图所示: ###创建表并准备数据 1 . 成功登录数据库后,点击 SQL 操作下的 SQL 窗口,如下图所示: 2 . 输入建表语句,点击执行,示例如下: ```sql CREATE TABLE `a1` ( `id` int(11) NULL, `col1` varchar(32) NULL, `col2` varchar(32) NULL, `col3` varchar(32) NULL, `col4` varchar(32) NULL ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci; ``` 3 . 根据自身需求写入数据即可,insert 语句如下: `INSERT INTO table_name(col_name,...) values(expr,...)` ##整库迁移配置 ###新增数据源 1 . 登录到大数据开发套件 [数据集成产品页](https://di.shuju.aliyun.com/?spm=5176.doc53854.2.2.6oozun),单击左侧导航栏离线同步—数据源,进入数据源管理页面,如下图所示: 2 . 点击右上角的 **新增数据源**,添加一个面向整库迁移的 MySQL 数据源 mysql_demo,填写相关信息,如下图所示: 3 . 点击 **测试连通性** 验证数据源访问正确无误后,确认并保存此数据源。 ###整库迁移 1 . 进入数据源列表页面,找到新增的数据源,点击对应 MySQL 数据源后的 **整库迁移**,即可进入对应数据源的整库迁移功能界面,如下图所示: 2 . 点击右上角 **高级设置** 按钮,您可以根据自身需求选择转换规则。比如 MaxCompute 端建表时统一增加了 ods_ 这一前缀,如下图所示: 3 . 根据自身需求选择需要迁移的数据表、同步方式、日期字段、同步并发配置、开始时间和同步数量,如下图所示: 4 . 点击 a1 表后对应的查看任务,会跳转到数据集成的任务开发界面。如下图所示: 由上图可以看到:源头 a1 表对应的 MaxCompute 表 ods_a1 创建成功,列的名字和类型也符合之前映射转换配置。在左侧目录树 mysql_demo 目录下,会有对应的所有整库迁移任务,任务命名规则是: mysql2odps 源表名,如上图红框部分所示。 5 . 此时便成功将一个 MySQL 数据源 mysql_demo 整库迁移到 MaxCompute 的工作。这些任务会根据配置的调度周期(默认天调度)被调度执行,您也可以使用 DataWorks DataIde 调度补数据功能完成历史数据的传输。