在配置数据同步或迁移任务对象时,DTS支持通过名称映射功能,设置任务对象(库、表、列)在目标库实例中的名称。您可以使用此功能将数据同步或迁移到目标库实例的指定对象中,或在目标库实例中创建一个与任务对象结构相同但名称不同的对象。
使用场景
场景 | 说明 |
在目标库实例中创建一个新对象并接收任务数据。 |
|
指定目标库实例中接收数据的对象,例如将多张库表聚合成大表。 | 需要提前在目标库实例中创建用于接收数据的对象,并确保数据的兼容性。
|
在目标库实例中创建一个新对象。 | 仅迁移任务支持,迁移类型需只勾选库表结构迁移。 |
前提条件
任务处于对象配置阶段,且需要执行库表列映射操作。进入对象配置阶段的方法,请参见同步方案概览和迁移方案概览中的相关配置文档。
建议迁移类型或同步类型勾选所有选项,否则可能会导致同步或迁移结果不符合预期。
旧版配置页需处于配置任务对象及高级配置阶段。
注意事项
任务一旦启动,请勿再执行库表列映射操作,否则可能导致数据丢失或任务失败。
Tair或Redis实例仅支持库名映射,指定接收数据的库(DB 0~DB 255)。
源数据库类型为Tair/Redis时,不支持批量映射。
目标数据库类型为DataHub时,不支持库名映射。
目标数据库类型为Kafka时,若您使用映射功能修改了表名称,数据将会被写入到您填写的Topic中。您须确保在表名称中填写的Topic名称在目标Kafka实例中真实存在,否则将会导致任务失败。
若任务对象选择的粒度为整库,则仅支持对库名进行映射。
若您需要使用表名或列名映射:源数据库类型为MongoDB时,任务对象的选择粒度需为集合;源数据库类型为Tair/Redis时,任务对象的选择粒度需为Redis DB;源数据库为其他类型的数据库时,任务对象的选择粒度需为表。
如果使用了库表列名映射功能,可能会导致依赖这个对象的其他对象同步或迁移失败。
库表列名单个映射
将任务对象从源库对象移动到已选择对象区域框中。
打开库或表的映射界面。
右键单击已选择对象区域的目标对象。
将鼠标指针放在目标对象上,然后单击目标对象后面出现的编辑按钮。
在弹出的对话框中,修改该对象在目标库实例中的名称。
说明在执行库或表名映射时,部分实例(请以控制台实际界面为准)还支持新增附加列和筛选增量任务的SQL(DML和DDL)功能。
如果库名映射和表名映射选中的语句不同,以表名映射时选择的语句为准。
您还可以在编辑表对话框中,配置条件过滤任务数据。更多信息,请参见设置过滤条件。
库名映射
在弹出的编辑Schema对话框中,设置该数据库在目标库实例中的名称。
说明源和目标数据库类型均为SQLServer时,弹出的是编辑库名对话框。
表名映射
在弹出的编辑表对话框中,设置该数据表在目标库实例中的名称。
列名映射
在弹出的编辑表对话框中的列区域,取消选中全表同步,然后设置对应的列在目标库实例中的名称。
说明修改列名后,您可以将鼠标放置在列名后的,查看原列名。
单击确定。
根据提示完成后续操作。
库表列名批量映射
将任务对象从源库对象移动到已选择对象区域框中。
单击已选择对象区域右上角的批量编辑。
在批量编辑对话框中,根据需求批量映射库或表的名称。
根据需求选择批量编辑的类型。本案例选择为选择所有的库和表。
在选择编辑对象框中,勾选需要编辑的对象。
单击选择编辑类型区域的对象名称页签。
说明在执行批量映射时,部分实例(请以控制台实际界面为准)还支持新增附加列和筛选增量任务的SQL(DML和DDL)功能。
根据需求选择生效范围。
在原有重命名基础上修改:表示批量修改后的库表列的名称是在原来的重命名基础上修改的。
在原名基础上修改:表示批量修改后的库表列的名称是在原名称基础上修改的。
选择库表名更改的规则,并设置更改后的库或表名称。
名称中添加前缀或后缀:选择库表名更改规则选择为名称添加前后缀,并输入前缀和后缀。
统一更新名称:选择库表名更改规则选择为统一更名,并输入更改后的名称。
名称中统一减少某部分:选择库表名更改规则选择为名称中统一减少,并输入需要减少的关键词。
单击应用,添加设置好的批量映射规则。
单击确定。
根据提示完成后续操作。
同步或迁移部分列
将待同步或迁移的表,从源库对象移动到已选择对象区域框中。
右键单击已选择对象区域的目标对象,打开表的映射界面。
在弹出的编辑表对话框中的列区域,取消选中全表同步。
取消选中无需同步或迁移的列。
单击确定。
根据提示完成后续操作。
常见问题
如何过滤不需要同步或迁移的列?
使用列名映射,取消选中全表同步,然后取消选中对应列的复选框。
列名映射是否支持修改列的类型?
不支持。
批量编辑的规则是否支持修改?
不支持。您可以单击目标规则后的删除该映射规则,然后重新添加规则。
为什么批量编辑的规则不见了?
可能是您在设置好批量映射规则后没有单击应用,或者误删除了规则。