全部产品
Search
文档中心

数据传输服务 DTS:配置数据订阅任务

更新时间:May 17, 2024

数据订阅功能可以帮助您获取数据库的实时增量数据,您可以根据自身业务需求自由消费增量数据,并写入任意目标端,适配各类业务场景,例如缓存更新、业务异步解耦、异构数据源数据实时同步及含复杂ETL的多种业务场景。本文将介绍在DTS专属集群中如何创建RDS MySQL数据订阅任务。

前提条件

注意事项

类型

说明

源库限制

  • 待订阅的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致订阅到的重复数据。

  • 如订阅对象为表级别,则单次订阅任务仅支持至多500张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待订阅的表,配置多个订阅任务,或者配置整库的订阅任务。

  • Binlog日志:

    • binlog_row_image参数需为full,查看方式,请参见查看实例参数。否则预检查阶段提示报错,且无法成功启动数据订阅任务。

    • DTS要求源数据库的本地Binlog日志保存24小时以上,否则DTS可能因无法获取Binlog而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Binlog日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 若源实例为只读实例或临时实例,您需确保该实例有记录事务的日志。

其他限制

  • 请确认DTS对数据类型为FLOAT或DOUBLE的列的订阅精度是否符合业务预期。DTS会通过ROUND(COLUMN,PRECISION)来读取这两类列的值。如果没有明确定义其精度,DTS对FLOAT的订阅精度为38位,对DOUBLE的订阅精度为308位。

  • 由于使用pt-online-schema-change等类似工具执行在线DDL变更不会被订阅到,客户端在将消费到的数据写入目标表时可能会因为表结构不一致而导致写入失败。

  • 若您订阅的单行数据超过16MB,则不支持消费,否则可能会导致消费客户端内存OOM(Out of Memory)。

操作步骤

  1. 进入DTS专属集群页面

  2. 工作台右侧,选择专属集群所在地域。

  3. 在目标专属集群操作列,选择配置任务 > 配置订阅任务

  4. 配置源库信息消费网络类型

    警告

    选择源实例后,建议您仔细阅读页面上方显示的使用限制,否则可能会导致任务失败或无法消费订阅数据。

    类别

    配置

    说明

    任务名称

    DTS会自动生成一个订阅名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。

    源库信息

    选择已有连接信息

    您可以按实际需求,选择是否使用已有实例。

    • 如使用已有实例,下方数据库信息将自动填入,您无需重复输入。

    • 如不使用已有实例,您需要输入下方的数据库信息。

    数据库类型

    选择MySQL

    接入方式

    选择云实例

    实例地区

    源RDS MySQL实例所属地域。在创建专属集群时已指定,不支持更改。

    是否跨阿里云账号

    本示例选择不跨账号

    RDS实例ID

    选择RDS MySQL实例ID。

    数据库账号

    填入RDS MySQL数据库的只读账号,或具备REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和SELECT权限的自定义账号。

    数据库密码

    填入该数据库账号对应的密码。

    连接方式

    根据需求选择非加密连接SSL安全连接。如果设置为SSL安全连接,您需要提前开启RDS MySQL实例的SSL加密功能,详情请参见设置SSL加密

    消费网络类型

    网络类型

    消费网络类型目前仅支持专有网络,请选择对应的专有网络虚拟交换机

    说明

    网络类型任务配置完成后不可修改,在消费订阅的数据时要使用对应的网络类型消费订阅的数据。

  5. 配置完成后,单击页面右下角的测试连接以进行下一步

    如果源数据库是阿里云数据库实例(例如RDS MySQL云数据库MongoDB版等),DTS会自动将对应地区DTS服务的IP地址添加到阿里云数据库实例的白名单;如果源数据库是ECS上的自建数据库,DTS会自动将对应地区DTS服务的IP地址添到ECS的安全规则中,您还需手动在ECS上的自建数据库中添加对应地区DTS服务的IP地址,以允许来自DTS服务器的访问;如果源数据库是IDC自建数据库或其他云数据库,则需要您手动添加对应地区DTS服务的IP地址,以允许来自DTS服务器的访问。DTS服务的IP地址,请参见DTS服务器的IP地址段

    警告

    DTS自动添加或您手动添加DTS服务的公网IP地址段可能会存在安全风险,一旦使用本产品代表您已理解和确认其中可能存在的安全风险,并且需要您做好基本的安全防护,包括但不限于加强账号密码强度防范、限制各网段开放的端口号、内部各API使用鉴权方式通信、定期检查并限制不需要的网段,或者使用通过内网(专线/VPN网关/智能网关)的方式接入。

  6. 配置任务对象。

    1. 对象配置页面,配置待订阅的对象。

      配置

      说明

      需要订阅的数据类型

      需要订阅的数据类型默认已勾选,且不支持修改。

      • 数据更新

        订阅已选择对象的增量数据更新,包含数据的INSERT、DELETE和UPDATE操作。

      • 结构更新

        订阅整个实例所有对象的结构创建、删除及修改,您需要使用数据订阅客户端过滤所需的数据。

      源库对象

      源库对象列表中,选择待订阅对象,单击图标向右小箭头,将其移动到已选择对象列表中。

      说明

      订阅对象支持选择的粒度为库、表。

      • 如果选择整个库作为订阅对象,那么该库中新增对象的增量数据也可以被订阅到。

      • 如果选择某个表作为订阅对象,那么只有这个表的增量数据可以被订阅到。此时如果需要加入一个新的表作为订阅对象,您需要将其加入至订阅对象中,详情请参见修改订阅对象

    2. 单击下一步高级配置,进行高级参数配置。

      配置

      说明

      选择调度该任务的专属集群

      固定为当前的专属集群,且不支持修改。

      源库、目标库无法连接后的重试时间

      在订阅任务连接失败时,DTS会立即进行持续的重试连接,默认持续重试时间为720分钟,您也可以在取值范围(10~1440分钟)内自定义重试时间,建议设置30分钟以上。如果DTS在设置的时间内重新连接上源库,订阅任务将自动恢复。否则,订阅任务将失败。

      说明
      • 针对相同源库的多个DTS实例,如DTS实例A和DTS实例B,设置网络重试时间时A设置30分钟,B设置60分钟,则重试时间以低的30分钟为准。

      • 由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源库释放后尽快释放DTS实例。

      源库、目标库出现其他问题后的重试时间

      在订阅任务启动后,若源库出现非连接性的其他问题(如DDL或DML执行异常),则DTS会报错并会立即进行持续的重试操作,默认持续重试时间为10分钟,您也可以在取值范围(1~1440分钟)内自定义重试时间,建议设置10分钟以上。如果DTS在设置的重试时间内相关操作执行成功,订阅任务将自动恢复。否则,订阅任务将会失败。

      重要

      源库、目标库出现其他问题后的重试时间的值需要小于源库、目标库无法连接后的重试时间的值。

      环境标签

      您可以根据实际情况,选择用于标识实例的环境标签。本示例无需选择。

      是否去除正反向任务的心跳表sql

      根据业务需求选择是否在DTS实例运行时,在源库中写入心跳SQL信息。

      • :不在源库中写入心跳SQL信息,DTS实例可能会显示有延迟。

      • :在源库中写入心跳SQL信息,可能会影响源库的物理备份和克隆等功能。

      监控告警

      是否设置告警,当订阅失败或延迟超过阈值后,将通知告警联系人。

  7. 上述配置完成后,单击页面右下角的下一步保存任务并预检查

    您可以将鼠标光标移动至下一步保存任务并预检查按钮上,然后单击气泡中的预览OpenAPI调用,查看调用API接口配置该实例时的参数信息。

    说明
    • 在订阅任务正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动订阅任务。

    • 如果预检查失败,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。

    • 如果预检查产生警告:

      • 对于不可以忽略的检查项,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。

      • 对于可以忽略无需修复的检查项,您可以依次单击点击确认告警详情确认屏蔽确定重新进行预检查,跳过告警检查项重新进行预检查。如果选择屏蔽告警检查项,可能会导致数据不一致等问题,给业务带来风险。

  8. 预检查通过率显示为100%时,单击下一步-选择DTS实例规格

  9. 信息配置区域配置任务的链路规格,最少配置1DU,最多配置剩余可用数。

  10. 配置完成后,阅读并勾选《数据传输(按量付费)服务条款》

  11. 单击启动任务,订阅任务正式开始。

    您可以在集群任务列表中筛选目标任务,并查看任务的进度。

后续步骤

成功运行订阅任务后,您需要新增消费组,并根据下游客户端选择订阅数据消费方式。

  1. 消费组的创建和管理,请参见新增消费组

  2. 根据消费客户端类型,选择订阅数据的消费方式: