数据集成(Data Integration)是阿里集团对外提供的可跨异构数据存储系统的、可靠、安全、低成本、可弹性扩展的数据同步平台,为20+种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。详细的数据源类型列表请参见:支持数据源类型。所以用户可以通过数据集成(Data Integration)向云产品 RDS-MySQL 进行数据的导入和数据导出。
准备工作
流程概述:
步骤1:数据源端新建表
步骤2:新添加数据源
步骤3:向导模式或脚本模式配置同步任务
步骤4:运行同步任务,检查目标端的数据质量
如何为数据源创建表可以使用建表语句,也可以直接通过客户端建表,所以不同的数据源可以参考相应的数据库的官方文档创建表格。
项目管理员创建 RDS-MySQL 数据源,具体步骤如下:
以开发者身份进入阿里云数加平台>大数据开发套件>管理控制台,单击对应项目操作栏中的进入工作区。
点击顶部菜单栏中数据集成模块的数据源。
点击新增数据源。
在新建数据源话弹出框中,选择数据源类型为 RDS-MySQL。
选择以 RDS 实例形配置该 MySQL 数据源。
选择以 RDS 实例形式配置该 MySQL 数据源:
上图中的配置项具体说明如下:
数据源名称: 由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过 60 个字符 。
数据源描述: 对数据源进行简单描述,不得超过 80 个字符 。
数据源类型:当前选择的数据源类型(RDS-MySQL 的 RDS 实例形式)。
RDS实例ID:该 MySQL 数据源的实例 ID。
RDS实例购买者ID:该 MySQL 数据源的实例购买者 ID。
数据库名:该数据源对应的数据库名。
用户名/密码:数据库对应的用户名和密码。
完成上述信息项的配置后,单击测试连通性。
测试连通性通过后,单击确定。
其他的数据源的配置请参见:数据源配置。
通过数据集成导入数据以向导模式 MaxCompute 同步到 RDS-MySQL 为例:
新建同步任务,如下图所示:向导模式:向导模式是可视化界面配置同步任务, 一共涉及到五步,选择来源,选择目标,字段映射,通道控制,预览保存。在每个不同的数据源之间,这几步的界面可能有不同的内容,向导模式可以转换成脚本模式。
脚本模式:进入脚本界面你可以选择相应的模板,此模板包含了同步任务的主要参数,将相关的信息填写完整,但是脚本模式不能转化成向导模式。
选择来源:选择 MaxCompute (原ODPS) 数据源及源头表 mysql,数据浏览默认是收起的,选择后点击下一步,如下图所示:
选择目标:
导入前准备语句:执行数据同步任务之前率先执行的 SQL 语句,目前向导模式只允许执行一条 SQL 语句,脚本模式可以支持多条 SQL 语句,例如清除旧数据。
导入后准备语句:执行数据同步任务之后执行的 SQL 语句,目前向导模式只允许执行一条 SQL 语句,脚本模式可以支持多条 SQL 语句,例如加上某一个时间戳。
主键冲突: 选择导入模式,可以支持 insert/replace/insert ignore 方式,insert 指当主键/唯一性索引冲突,数据集成视为脏数据进行处理。
replace 指没有遇到主键/唯一性索引冲突时,与 insert 行为一致,当主键/唯一性索引冲突时会用新行替换原有行所有字段。
insert ignore 指当主键/唯一性索引冲突,数据集成将直接忽略更新丢弃,并且不记录!
映射字段:点击下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧“源头表字段”和右侧“目标表字段”为一一对应的关系 ,如下图所示。
可以输入常量,输入的值需要使用英文单引号包括,如'abc'、'123'等;
可以配合调度参数使用,如 ${bdp.system.bizdate} 等;
可以输入你要同步的分区列,如分区列有 pt 等;
如果您输入的值无法解析,则类型显示为'未识别';
不支持配置 odps 函数。
通道控制点击下一步,配置作业速率上限和脏数据检查规则,如下图所示:作业速率上限:是指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。
作业并发数:作业速率上限=作业并发数*单并发的传输速率
当作业速率上限已选定的情况下,应该如何选择作业并发数?
① 如果你的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响;
② 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数
预览保存:完成以上配置后,上下滚动鼠标可查看任务配置,如若无误,点击保存,如下图所示:脚本模式配置同步任务
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {
"plugin": "odps",
"parameter": {
"datasource": "odps_first",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
"table": "mysql",//表名
"partition": "pt=${bdp.system.bizdate}",//分区
"column": [
"id",
"name"
]
}
},
"writer": {
"plugin": "mysql",
"parameter": {
"datasource": "l_RDS_mysql",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
"table": "`writer`",
"preSql": [],//导入前准备语句
"postSql": [],//导入后准备语句
"writeMode": "replace",//主键冲突
"column": [
"id",
"name"
]
}
},
"setting": {
"speed": {
"mbps": 5,//任务的同步的数率的上限
"concurrent": 5//并发的数目
}
}
}
}
通过数据集成导出数据以向导模式配置 RDS-MySQL 同步到 MaxCompute (原ODPS) 为例:
选择来源:过滤条件:将要同步数据的筛选条件,暂时不支持 limit 关键字过滤;SQL 语法随着所选择的数据源不同而不同;点此查看系统参数文档
切分主键:MySQL Reader 进行数据抽取时,如果指定 splitPk,表示用户希望使用 splitPk 代表的字段进行数据分片,数据同步因此会启动并发任务进行数据同步,这样可以大大提供数据同步的效能。
推荐 splitPk 用户使用表主键,因为表主键通常情况下比较均匀,因此切分出来的分片也不容易出现数据热点;
目前 splitPk 仅支持整型数据切分,不支持字符串、浮点、日期等其他类型 。如果用户指定其他非支持类型,忽略 plitPk 功能,使用单通道进行同步;
如果 splitPk 不填写,包括不提供 splitPk 或者 splitPk 值为空,数据同步视作使用单通道同步该表数据 。
选择目标:选择 MaxCompute 数据源及目标表 mysql,选择后点击下一步,如下图所示:
映射字段:点击下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧“源头表字段”和右侧“目标表字段”为一一对应的关系 ,如下图所示
通道控制点击下一步,配置作业速率上限和脏数据检查规则,如下图所示:
预览保存:
完成以上配置后,上下滚动鼠标可查看任务配置,如若无误,点击保存,如下图所示:
脚本模式配置同步任务
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {
"plugin": "mysql",
"parameter": {
"datasource": "l_RDS_mysql",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
"where": "",
"splitPk": "",//切分键
"connection": [
{
"table": [//源端表名
"`writer`"
],
"datasource": "l_RDS_mysql"
}
],
"connectionTable": "`writer`",
"column": [
"id",
"name"
]
}
},
"writer": {
"plugin": "odps",
"parameter": {
"datasource": "odps_first",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
"table": "mysql",//目标表名
"truncate": true,
"partition": "pt=${bdp.system.bizdate}",
"column": [
"id",
"name"
]
}
},
"setting": {
"speed": {
"mbps": "1",//并发数
"concurrent": "1"//任务的同步的数率的上限
}
}
}
}
注意:同步任务保存后,直接点击运行任务会立刻运行或点击右边的提交,将同步任务提交到调度系统中,调度系统会按照配置属性在从第二天开始自动定时执行,相关调度的配置请参考下面的文档:调度配置介绍。
其他的配置同步任务详细信息请参考下面的文档:
在文档使用中是否遇到以下问题
更多建议
匿名提交