一、前提条件
·已准备好待订阅的腾讯云数据库。
·建议在源端实例中创建只读账号,可参考如下语法进行操作。源库为腾讯云 MongoDB 的,也可 在 MongoDB 控制台创建只读账号。
# 创建全实例只读账号use admindb.createUser({ user: "username", pwd: "password", roles:[ {role: "readAnyDatabase",db: "admin"} ]})# 创建指定库只读账号use admindb.createUser({ user: "username", pwd: "password", roles:[ {role: "read",db: "指定库的库名"} ]})
二、订阅配置步骤
1. 登录 DTS 控制台,在左侧导航选择数据订阅,单击新建数据订阅。
2. 在新建数据订阅页,选择相应配置,单击立即购买。
| 参数名称 | 配置方式 |
| 计费模式 | 支持包年包月和按量计费。计费详情请参见 数据传输服务计费模式。 |
| 地域 | DTS 订阅服务的地域需要与源数据库实例所属地域保持一致。 |
| 数据库 | 选择 MongoDB。 |
| 版本 | 默认为 Kafka 版。 |
| 标签 | 给数据订阅服务指定标签,可选。 |
| 订阅实例名称 | 创建后命名:创建数据订阅服务之后,系统随机分配实例名称,用户可以再自行修改名称。立即命名:在下方输入框,直接设置数据订阅服务名称。 |
| 自动续费 | 建议勾选。若不勾选,请关注服务到期预警信息。具体信息,请参见 欠费说明。 |
| 购买时长 | 购买时长越长,享受的优惠越多。 |
| 购买数量 | 单次购买最多支持10个任务。 |
3. 购买成功后,返回数据订阅列表,选择刚才购买的任务,在操作列单击配置订阅。
4. 在配置数据库订阅页面,配置源库信息后,单击测试连通性,通过后单击保存并下一步。
·接入类型:目前仅支持云数据库。
·云数据库实例:选择云数据库实例 ID。
·数据库账号/密码:添加订阅实例的账号和密码,账号具有只读权限。
5. 在订阅类型和对象选择页面,选择订阅参数后,单击保存并下一步。
| 参数 | 说明 |
| 订阅类型 | 默认 Change Stream,不可修改。 |
| 订阅数据格式 | 当前仅支持 JSON 格式。 |
| 订阅级别 | 订阅级别,包括全实例、库和集合。全实例:订阅全实例数据。库:订阅库级别的数据,选择后,下面的任务设置中,只能选择一个库。集合:订阅集合级别的数据,选择后,下面的任务设置中,只能选择一个集合。 |
| 任务设置 | 订阅级别选择“库”和“集合”后需要配置。勾选需要订阅的库、集合。仅支持选择一个库或者一个集合。 |
| 输出聚合设置 | 勾选后,聚合管道的执行顺序由页面上的配置顺序决定。更多聚合管道信息及其使用示例,请参见 MongoDB 页面文档。 |
| Topic 分区数量 | 设置 Topic 分区数量,增加分区数量可提高数据写入和消费的速度。单分区可以保障消息的顺序,多分区无法保障消息顺序,如果你对消费到消息的顺序有严格要求,请选择分区数量为1。 |
| Topic 分区策略 | 当 Topic 分区数量不为1时,可以设置分区策略。按集合名分区:将源库的订阅数据按照集合名进行分区,设置后相同集合名的数据会写入同一个 Kafka 分区中。自定义分区策略:先通过正则表达式对订阅数据中的库名和集合名进行匹配,匹配到的数据再按照集合名分区、集合名 + objectid 分区。 |
6. 在预校验页面,预校验任务预计会运行2分钟 – 3分钟,预校验通过后,单击启动完成数据订阅任务配置。
注意:说明:
注意:如果校验失败,请参见 校验不通过处理方法 进行修正,并重新进行校验。
7. 订阅任务进行初始化,预计会运行3分钟 – 4分钟,初始化成功后进入运行中状态。
三、后续操作
创建完订阅任务后,需要进行数据消费操作,详情请参见 消费 MongoDB 订阅数据。
1. 新增消费组。
数据订阅的消费依赖于 Kafka 的消费组,所以在消费数据前需要创建消费组。数据订阅 Kafka 版支持用户创建多个消费组(单个订阅任务最多支持创建10个消费组),进行多点消费。
2. 消费订阅数据。
订阅任务进入运行中状态之后,就可以开始消费数据。Kafka 的消费需要进行密码认证,具体内容请参考上述链接中的 Demo,我们提供了多种语言的 Demo 代码,也对消费的主要流程和关键的数据结构进行了说明。