数据订阅

最近更新时间:2019-04-23 15:42:27

订阅原理

数据订阅会通过模拟从库向主库获取对应 binlog 内容进行分析,大概架构图如下,通过解析 binlog,按照订阅通道配置的库表进行分析,所以几乎对主库没有影响。
image1

注意:

  • 目前订阅的消息内容默认会保留最近3天。
  • 以实例为单位订阅,后续新增的库表也是会在原有订阅通道出现,不需要对原订阅通道进行新增配置操作。
  • 以库为单位订阅,后续该库下的新增的表也是会在原有订阅通道出现,不需要对原订阅通道进行新增配置操作。此种方案下,如果需要新增库,需要进行新增配置操作。
  • 数据订阅服务目前仅支持 TencentDB For MySQL5.6。
  • 数据订阅暂不支持 view,触发器和外键。
  • 数据订阅初次配置需要对相关 binlog_row_image 参数做调整,会根据符合条件自动 kill 老的 session 使参数立即生效。
  • 数据订阅目前支持的字符集包括 latin1、utf8、utf8mb4。

功能说明

数据传输服务 DTS 提供了基于 binlog 的增量数据订阅功能,仅需几步简单操作,即可订阅 TencentDB 的增量更新数据:

  1. 在腾讯云 DTS 控制台购买并创建 TencentDB 实例的订阅通道。
  2. 使用 DTS 数据订阅 SDK 连接这个订阅通道,订阅并消费增量数据。

具体功能案例说明

拉取对应订阅表的变化至本地文件
拉取对应订阅表的变化至 Redis
拉取对应订阅表的变化至 Kafka

创建数据订阅通道

  1. 登录 DTS 控制台,进入【数据订阅】页面。
  2. 单击左上角【新建数据订阅】开始订阅通道配置。
  3. 选择源 TencentDB 实例所在地域。
  4. 开通成功后,返回控制台,为刚才购买的数据订阅通道初始化配置。
  5. 选择源 TencentDB 实例。
  6. 选择所需的同步类型及库表。
    • DTS 数据订阅的订阅对象粒度细分为库、表,即用户可以选择订阅某些库或者是订阅某几张表。
    • DTS 将订阅数据类型细分为数据更新、结构更新。如果只选择订阅对象及数据更新的话,那么只能订阅到 insert/delete/update 三种数据变更内容,如果需要订阅结构更新(DDL),那么需要选择订阅数据类型中的结构变更。
      一旦订阅了结构更新,那么 DTS 会将整个 TencentDB 实例的所有结构变更拉取出来,用户需要使用 SDK 过滤需要的数据。
  7. 选择完订阅对象后,即可启动订阅通道。

修改消费时间点

DTS 支持在消费的过程中,随时修改消费时间点。一旦修改完消费时间点,那么下游 SDK 拉取到的增量数据从修改后的消费时间点开始。修改的消费时间点必须在订阅通道的数据范围之内。
DTS 目前只支持在控制台修改消费点,不支持在 SDK 中指定消费位点。

修改消费时间点操作步骤如下:

  1. 停止 SDK 消费进程。
  2. 修改消费时间点。
    当需要修改通道消费时间点时,将鼠标挪至通道的消费时间点上,会出现【配置】字样,单击进入修改页面。

  3. 重启 SDK 消费进程。
    当修改完消费位点后,即可重启本地的 SDK 消费进程,此时 SDK 会从修改的消费位点开始订阅增量数据。

修改订阅对象

DTS 支持在订阅消费的过程中,动态增加/减少订阅对象。

  • 如果增加了订阅对象,那么修改完成后,订阅通道会从当前时间拉取新增订阅对象的增量数据。
  • 如果减少订阅对象,那么修改完成后,SDK 中将无法再订阅到这个对象的数据。

修改订阅对象操作步骤如下:

  1. 修改订阅对象入口。
  2. 修改订阅对象。

使用 SDK 消费数据

请参见 SDK 使用指南