本场景介绍使用 DTS 创建 MariaDB、Percona 的数据订阅任务操作指导。因 MariaDB、Percona 的数据订阅操作一致,如下以 MariaDB 为例进行介绍。
前提条件
已准备好待订阅的源端数据库,并且数据库版本符合要求,请参见 数据订阅支持的数据库。
已在源端实例中开启 Binlog。
已在源端实例中创建订阅账号,需要账号权限如下:REPLICATION CLIENT、REPLICATION SLAVE、PROCESS 和全部对象的 SELECT 权限。
具体授权语句如下:
create user '账号' IDENTIFIED BY '密码';grant SELECT, REPLICATION CLIENT,REPLICATION SLAVE,PROCESS on *.* to '账号'@'%';flush privileges;
约束限制
订阅的消息保存在 DTS 内置 Kafka(单 Topic)中,目前默认保存时间为最近1天,单 Topic 的最大存储为500G,当数据存储时间超过1天,或者数据量超过500G时,内置 Kafka 都会开始清除最先写入的数据。所以请用户及时消费,避免数据在消费完之前就被清除。
数据消费的地域需要与订阅任务所属的地域相同。
当前不支持 geometry 相关的数据类型。
订阅任务过程中,如果进行修改订阅对象等操作会发生任务重启,重启后可能会导致用户在 kafka 客户端消费数据时出现重复。
DTS 是按最小数据单元进行传输的,增量数据每标记一个 checkpoint 位点就是一个数据单元,如果重启时,刚好一个数据单元传输已完成,则不会导致数据重复;如果重启时,一个数据单元还正在传输中,那么再次启动后需要重新拉取这个数据单元,以保证数据完整性,这样就会导致数据重复。
用户如果对重复数据比较关注,请自行在消费数据时设置去重逻辑。
支持订阅的 SQL 操作
操作类型 | 支持的 SQL 操作 |
DML | INSERT、UPDATE、DELETE |
DDL | CREATE DATABASE、DROP DATABASE、CREATE TABLE、ALTER TABLE、DROP TABLE、RENAME TABLE |
操作步骤
1. 登录 DTS 控制台,在左侧导航选择数据订阅,单击新建数据订阅。
2. 在新建数据订阅页,选择相应配置,单击立即购买。
计费模式:支持包年包月和按量计费。
地域:源库为腾讯云数据库,这里的地域需与源数据库实例的地域保持一致。源库为非腾讯云数据库,这里的地域选择与数据消费的地域保持一致,如果数据消费地域无特殊要求,这里选择离源数据库最近的一个地域即可。
数据库:请选择数据库类型。
版本:选择 kafka 版,支持通过 Kafka 客户端直接消费。
订阅实例名称:编辑当前数据订阅实例的名称。
3. 购买成功后,返回数据订阅列表,单击操作列的配置订阅对刚购买的订阅进行配置,配置完成后才可以进行使用。
4. 在配置数据库订阅页面,选择源数据库相应配置,完成后单击连通性测试,测试通过后单击下一步。
配置项 | 说明 |
实例类型 | 购买时选择的数据库类型。 建议选择主库进行订阅,订阅服务对源库的压力非常小。 |
接入类型 | 公网:源数据库可以通过公网 IP 访问。 云主机自建:源数据库部署在 腾讯云服务器 CVM 上。 专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。 VPN接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。 云数据库:源数据库属于腾讯云数据库实例。 云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。 |
公网 | 主机地址:源数据库 IP 地址或域名。 端口:源数据库使用的端口。 |
云主机自建 | 云主机实例:云服务器 CVM 的实例 ID。 端口:源数据库使用的端口。 |
专线接入 | 私有网络专线网关:专线接入时只支持私有网络专线网关,请确认网关关联网络类型。 私有网络:选择私有网络专线网关和 VPN 网关关联的私有网络和子网。 主机地址:源数据库 IP 地址。 端口:源数据库使用的端口。 |
VPN 接入 | VPN 网关:VPN 网关,请选择通过 VPN 网关接入的 VPN 网关实例。 私有网络:选择私有网络专线网关和 VPN 网关关联的私有网络和子网。 主机地址:源数据库 IP 地址。 端口:源数据库使用的端口。 |
云数据库 | 云数据库实例:源数据库的实例 ID。 建议选择主库进行订阅,订阅服务对源库的压力非常小。 源数据库为腾讯云数据库 MariaDB 时,支持选择灾备/只读实例。 |
云联网 | 主机地址:源数据库的主机 IP 地址。 端口:源数据库使用的端口。 私有网络云联网:云联网实例名称。 接入 VPC:接入 VPC 指的是云联网中接入订阅链路的 VPC。请在云联网关联的所有 VPC 中,选择除了源数据库所属 VPC 外的其他 VPC。
例如,广州地域数据库作为源数据库,则接入 VPC 选择其他地域,如成都 VPC 或者上海 VPC。 子网:已选择 VPC 网络的子网名称。 接入 VPC 地域:购买任务时选择的源数据库地域与接入 VPC 地域需要保持一致,如果不一致,DTS 会将购买任务中选择的源数据库地域,改为接入 VPC 地域。 |
账号/密码 | 账号/密码:源数据库的账号、密码。 |
5. 在订阅类型和对象选择页面,选择订阅类型,单击保存配置。
配置项 | 说明 |
订阅类型 | 数据更新:订阅源库全部对象的数据更新,包括数据 INSERT、UPDATE、DELETE 操作。 结构更新:订阅源库全部对象的结构创建、修改和删除。 全实例:订阅源库全部对象的数据更新和结构更新。 |
Kafka 版本 | 显示 DTS 内置 Kafka 的版本,不可修改。 |
Topic 分区数量 | 设置数据投递到内置 kafka 中 Topic 的分区数量,增加分区数量可提高数据写入和消费的速度。单分区可以保障消息的顺序,多分区无法保障消息顺序,如果您对消费到消息的顺序有严格要求,请选择分区数量为1。 |
Topic 分区策略 | 按表名分区:将相同表名的数据写入同一个分区中。 表名 + 主键分区:将相同主键的数据会写入同一个分区。适用于热点数据的表,可以将热表数据分散到不同分区中,提升并发消费效率。 |
6. 在预校验页面,预校验任务预计会运行2分钟 - 3分钟,预校验通过后,单击启动完成数据订阅任务配置。
说明:
7. 订阅任务进行初始化,预计会运行3分钟 - 4分钟,初始化成功后进入运行中状态。
8. 新增消费组,数据订阅 Kafka 版支持用户创建多个消费组(单个订阅任务最多支持创建10个消费组),进行多点消费。数据订阅 Kafka 版消费依赖于 Kafka 的消费组,所以在消费数据前需要创建消费组。
9. 订阅实例进入运行中状态之后,就可以开始消费数据。Kafka 的消费需要进行密码认证,具体示例请参考 数据消费 Demo,我们提供了多种语言的 Demo 代码,也对消费的主要流程和关键的数据结构进行了说明。