说明:
数据传输服务 DTS 提供基于 binlog 的增量数据订阅功能,仅需几步简单操作,即可订阅云数据库 TencentDB 的增量更新数据。
1. 在 DTS 控制台 购买并创建 TencentDB 实例的订阅通道。
2. 使用 DTS 数据订阅 SDK 连接订阅通道,订阅并消费增量数据。
订阅原理
数据订阅通过模拟从库向主库获取对应 binlog 内容进行分析,架构图如下,通过解析 binlog,按照订阅通道配置的库表进行分析,对主库几乎无影响。n
订阅的消息内容目前默认保留最近1天。
以实例为单位订阅,后续新增的库表也会在原有订阅通道出现,不需要对原订阅通道进行新增配置操作。
以库为单位订阅,后续该库下的新增的表也会在原有订阅通道出现,不需要对原订阅通道进行新增配置操作。此方案下,如果需要新增库,需要进行新增配置操作。
数据订阅服务目前支持云数据库 MySQL 5.6、MySQL 5.7。
数据订阅暂不支持视图,触发器和外键。
数据订阅初次配置时会自动调整相关 binlog_row_image 和 binlog_format 参数,参数调整后,数据订阅会自动 kill 实例中存在的连接使参数立即生效,且数据订阅还会执行 flush tables 获取订阅数据的表结构;这可能会影响您的数据库请求,请您知晓并评估对业务的影响。
操作步骤
步骤1:创建数据订阅通道
1. 登录 DTS 控制台,在左侧导航选择数据订阅,单击新建数据订阅。
2. 在新建数据订阅页,选择相应配置,单击立即购买。
3. 开通成功后,返回数据订阅列表,单击初始化配置,为已购买的数据订阅通道初始化配置。
4. 在配置页,选择源 TencentDB 实例,单击下一步。n
5. 选择所需的同步类型及库表。
数据订阅的订阅对象粒度细分为库、表,即用户可以选择订阅某些库或者是订阅某几张表。
订阅数据类型细分为数据更新、结构更新、全实例。n 只选择数据更新及订阅对象时,只能订阅到 insert、delete、update 三种数据变更内容。n 如需订阅结构更新(DDL),需要选择同步类型中的结构变更。一旦订阅结构更新,那么 DTS 会将整个 TencentDB 实例所有结构变更拉取出来,用户需要使用 SDK 过滤需要的数据。n 选择全实例即数据更新+结构更新。n
6. 确定订阅对象和类型后,单击启动即可启动订阅通道。
步骤2:修改消费时间起点
DTS 支持在消费的过程中,随时修改消费时间起点。一旦修改完消费时间起点,那么下游 SDK 拉取到的增量数据从修改后的消费时间起点开始。
说明
DTS 目前只支持在控制台修改消费点,不支持在 SDK 中指定消费点。
修改步骤如下:
1. 停止 SDK 消费进程。n在 数据订阅 列表,单击订阅 ID 或操作列的查看订阅详情,进入订阅详情页,“消费者来源(IP)”为无,即为进程已停止。
2. 修改消费时间起点。n在 数据订阅 列表,将鼠标移至订阅的消费时间起点上,会出现“修改消费时间起点”图标,单击图标进入修改页。
说明
修改的消费时间起点必须在订阅通道的数据范围之内。
3. 重启 SDK 消费进程。n修改完消费时间起点后,即可重启本地的 SDK 消费进程,此时 SDK 会从修改的消费点开始订阅增量数据。
步骤3:修改订阅对象
DTS 支持在订阅消费的过程中,动态增加或减少订阅对象。
如果增加了订阅对象,那么修改完成后,订阅通道会从当前时间拉取新增订阅对象的增量数据。
如果减少了订阅对象,那么修改完成后,SDK 中将无法再订阅到这个对象的数据。
修改步骤如下:
1. 在 数据订阅 列表,选择操作列的更多 > 修改订阅对象,进入订阅配置页。
2. 在订阅配置页,修改订阅对象,单击保存。n