全部产品
Search
文档中心

数据传输服务 DTS:库表列名映射

更新时间:Aug 28, 2024

在配置数据同步或迁移任务对象时,DTS支持通过名称映射功能,设置任务对象(库、表、列)在目标库实例中的名称。您可以使用此功能将数据同步或迁移到目标库实例的指定对象中,或在目标库实例中创建一个与任务对象结构相同但名称不同的对象。

使用场景

场景

说明

在目标库实例中创建一个新对象并接收任务数据。

  • 迁移任务:迁移类型需勾选库表结构迁移,且全量迁移增量迁移至少选其一。

  • 同步任务:同步类型默认已勾选增量同步,您还需勾选库表结构同步,请根据实际情况选择是否勾选全量同步

指定目标库实例中接收数据的对象,例如将多张库表聚合成大表。

需要提前在目标库实例中创建用于接收数据的对象,并确保数据的兼容性。

  • 迁移任务:迁移类型无需勾选库表结构迁移

  • 同步任务:同步类型无需勾选库表结构同步

在目标库实例中创建一个新对象。

仅迁移任务支持,迁移类型需只勾选库表结构迁移

前提条件

任务处于对象配置阶段,且需要执行库表列映射操作。进入对象配置阶段的方法,请参见同步方案概览迁移方案概览中的相关配置文档。

说明
  • 建议迁移类型同步类型勾选所有选项,否则可能会导致同步或迁移结果不符合预期。

  • 旧版配置页需处于配置任务对象及高级配置阶段。

注意事项

  • 任务一旦启动,请勿再执行库表列映射操作,否则可能导致数据丢失或任务失败。

  • Tair或Redis实例仅支持库名映射,指定接收数据的库(DB 0~DB 255)。

  • 源数据库类型为Tair/Redis时,不支持批量映射。

  • 目标数据库类型为DataHub时,不支持库名映射。

  • 目标数据库类型为Kafka时,若您使用映射功能修改了表名称,数据将会被写入到您填写的Topic中。您须确保在表名称中填写的Topic名称在目标Kafka实例中真实存在,否则将会导致任务失败。

  • 若任务对象选择的粒度为整库,则仅支持对库名进行映射。

  • 若您需要使用表名或列名映射:源数据库类型为MongoDB时,任务对象的选择粒度需为集合;源数据库类型为Tair/Redis时,任务对象的选择粒度需为Redis DB;源数据库为其他类型的数据库时,任务对象的选择粒度需为表。

  • 如果使用了库表列名映射功能,可能会导致依赖这个对象的其他对象同步或迁移失败。

库表列名单个映射

  1. 将任务对象从源库对象移动到已选择对象区域框中。

  2. 打开库或表的映射界面。

    • 右键单击已选择对象区域的目标对象。

    • 将鼠标指针放在目标对象上,然后单击目标对象后面出现的编辑按钮。

  3. 在弹出的对话框中,修改该对象在目标库实例中的名称。

    说明
    • 在执行库或表名映射时,部分实例(请以控制台实际界面为准)还支持新增附加列和筛选增量任务的SQL(DML和DDL)功能。

    • 如果库名映射和表名映射选中的语句不同,以表名映射时选择的语句为准。

    • 您还可以在编辑表对话框中,配置条件过滤任务数据。更多信息,请参见设置过滤条件

    • 库名映射

      在弹出的编辑Schema对话框中,设置该数据库在目标库实例中的名称。

      说明

      源和目标数据库类型均为SQLServer时,弹出的是编辑库名对话框。

      image.png

    • 表名映射

      在弹出的编辑表对话框中,设置该数据表在目标库实例中的名称。

      image.png

    • 列名映射

      在弹出的编辑表对话框中的区域,取消选中全表同步,然后设置对应的列在目标库实例中的名称。

      说明

      修改列名后,您可以将鼠标放置在列名后的image.png,查看原列名。

      image.png

  4. 单击确定

  5. 根据提示完成后续操作。

库表列名批量映射

  1. 将任务对象从源库对象移动到已选择对象区域框中。

  2. 单击已选择对象区域右上角的批量编辑

  3. 批量编辑对话框中,根据需求批量映射库或表的名称。

    image

    1. 根据需求选择批量编辑的类型。本案例选择为选择所有的库和表

    2. 选择编辑对象框中,勾选需要编辑的对象。

    3. 单击选择编辑类型区域的对象名称页签。

      说明

      在执行批量映射时,部分实例(请以控制台实际界面为准)还支持新增附加列和筛选增量任务的SQL(DML和DDL)功能。

    4. 根据需求选择生效范围。

      • 在原有重命名基础上修改:表示批量修改后的库表列的名称是在原来的重命名基础上修改的。

      • 在原名基础上修改:表示批量修改后的库表列的名称是在原名称基础上修改的。

    5. 选择库表名更改的规则,并设置更改后的库或表名称。

      • 名称中添加前缀或后缀:选择库表名更改规则选择为名称添加前后缀,并输入前缀和后缀。

      • 统一更新名称:选择库表名更改规则选择为统一更名,并输入更改后的名称。

      • 名称中统一减少某部分:选择库表名更改规则选择为名称中统一减少,并输入需要减少的关键词。

    6. 单击应用,添加设置好的批量映射规则。

    7. 单击确定

  4. 根据提示完成后续操作。

同步或迁移部分列

  1. 将待同步或迁移的表,从源库对象移动到已选择对象区域框中。

  2. 右键单击已选择对象区域的目标对象,打开表的映射界面。

  3. 在弹出的编辑表对话框中的区域,取消选中全表同步

    image

  4. 取消选中无需同步或迁移的列。

  5. 单击确定

  6. 根据提示完成后续操作。

常见问题

  • 如何过滤不需要同步或迁移的列?

    使用列名映射,取消选中全表同步,然后取消选中对应列的复选框。

  • 列名映射是否支持修改列的类型?

    不支持。

  • 批量编辑的规则是否支持修改?

    不支持。您可以单击目标规则后的image.png删除该映射规则,然后重新添加规则。

  • 为什么批量编辑的规则不见了?

    可能是您在设置好批量映射规则后没有单击应用,或者误删除了规则。