通过数据订阅功能,您可以实时订阅增量数据,轻松帮助业务实现轻量级缓存更新、业务异步解耦、含ETL逻辑的数据实时同步等场景。本文介绍如何创建PolarDB MySQL版数据订阅通道。

前提条件

PolarDB MySQL版集群已开启Binlog功能,详情请参见如何开启Binlog

注意事项

  • 由于使用gh-ost或pt-online-schema-change等类似工具执行在线DDL变更不会被订阅到,客户端在将消费到的数据写入目标表时可能会因为表结构不一致而导致写入失败。
  • 如果订阅的源数据库还处于其他任务中(例如该数据库还存在于某个正在运行的数据迁移任务中),您可能会订阅到订阅对象以外的数据,此类场景中,您需要手动在订阅客户端中过滤掉不需要的数据。

操作步骤

  1. 购买数据订阅通道,详情请参见购买数据订阅任务
    说明 购买时,需选择订阅实例类型PolarDB,并选择待订阅的PolarDB集群所属地域。
  2. 登录数据传输控制台
  3. 在左侧导航栏,单击数据订阅
  4. 数据订阅列表页面上方,选择订阅通道所属地域。
  5. 定位至已购买的数据订阅通道,单击配置订阅通道
  6. 配置数据订阅的源库信息和网络类型。配置源库信息和网络类型
    类别配置说明
    订阅名称DTS会自动生成一个订阅名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
    源库信息实例类型固定为PolarDB实例,不可变更。
    数据库类型固定为PolarDB,不可变更。
    实例地区购买数据订阅通道时选择的源实例地域,不可变更。
    PolarDB实例ID选择待订阅的PolarDB MySQL版集群ID。
    数据库账号填入PolarDB MySQL版集群的数据库账号。
    说明 账号需要具备REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和待订阅对象的SELECT权限。
    数据库密码填入该数据库账号对应的密码。
    网络类型设置数据订阅实例所属的网络类型。
    • 经典网络

      如果设置为经典网络,无需其他配置。关于经典网络介绍请参见经典网络

    • 专有网络

      如果设置为专有网络,您还需要选择专有网络虚拟交换机。关于专有网络介绍请参见专有网络

    说明
    • 建议配置同部署数据订阅客户端的ECS实例属于同一网络。例如ECS是专有网络,那么此处的网络类型选择为专有网络并指定ECS所属的专有网络虚拟交换机
    • 通过内网地址进行数据订阅时,网络延迟最小。
  7. 上述配置完成后,单击授权白名单并进入下一步

    DTS会自动将对应地区DTS服务的IP地址添加到阿里云数据库实例的白名单。DTS服务的IP地址,请参见DTS服务器的IP地址段

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

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

    • 结构更新

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

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

    订阅对象框中将想要订阅的对象选中,单击向右小箭头图标将其移动到已选择对象框。

    说明 订阅对象支持选择的粒度为库、表。
  9. 上述配置完成后,单击页面右下角的保存并预检查
    说明
    • 在订阅任务正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动订阅任务。
    • 如果预检查失败,单击具体检查项后的提示图标,查看失败详情。根据提示修复问题后,重新进行预检查。
  10. 预检查对话框中显示预检查通过后,关闭预检查对话框。

下一步

配置完成后,数据订阅通道会进入初始化阶段,这个阶段一般会持续1分钟左右。初始化完成后即可进行如下操作:

  1. 新增消费组
  2. 使用Kafka客户端消费订阅数据
  3. 使用SDK示例代码消费订阅数据