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