DTS数据订阅 | 《DTS控制台入门一本通》第四章

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云服务器ECS,u1 2核4GB 1个月
简介: 本章重点介绍DTS数据订阅

上一章:DTS数据迁移 | 《DTS控制台入门一本通》第三章(下篇)
下一章:DTS数据同步 | 《DTS控制台入门一本通》第五章

点击免费下载
《DTS控制台入门一本通》>>>

test

也可以PC端点击https://developer.aliyun.com/topic/download?id=803 下载

数据订阅其实就是通过 API 获取 DTS 缓存模块的数据,在 DTS数据迁移章节, DTS 缓存模块的数据只能由 DTS 写入模块获取然后写入目标端数据库。数据订阅把 这个 DTS 写入模块进行了开放,我们可以借助 DTS 提供的 DTS 缓存模块的 API 进 行增量数据的获取。要使用 DTS 数据订阅来获取 DTS 的缓存模块的增量数据,需 要新购 DTS 数据订阅实例,这也就意味着,您拥有 DTS 数据迁移并不能对 DTS 缓 存模块进行订阅。购买后,会显示到 DTS 数据订阅的任务列表,如下图 4-1。DTS 数据订阅之前分为新版和旧版,旧版已经在 2020 年 3 月 31 日下线,现在只有新版, 本章节将对新版 DTS 数据订阅的功能进行详细的说明。注意:

● DTS 数据订阅只能订阅增量数据,无法订阅全量数据。

image.png

4.1创建数据订阅页面

要创建数据订阅 DTS 实例,需要点击图 4-1 标记①处的“创建数据订阅”功能。点击后,跳转到创建页面,如下图 4-2。下面对这个页面的选择项做详细的
说明。

image.png

4.1.1商品类型

商品类型是指购买的数据库 DTS 产品的计费类型,预付费是指包年包月,按年 或者月进行计费,费用需要提前支付。后付费是按量付费,即按小时进行计费(按小 时计费的意思是只有当这个 DTS 被创建并且被您配置运行后,就会按小时进行计费。 只创建出来不配置不会进行计费)

4.1.2功能

当选择预付费时,这里只能选择数据同步和数据订阅,数据同步我们会在“第五 章 DTS 数据同步”章节说明。当选择后付费时,这里还会多一个数据迁移的选项, 在这里创建数据迁移时,提示是收费的,请注意。这个收费只有在您配置 DTS 迁移 选择增量时才会进行收费,不进行增量迁移不会收费。

4.1.3数据订阅类型

当功能选择数据订阅后,我们需要选择订阅的实例类型,即您需要 DTS 获取哪 一种数据库类型的增量数据,目前 DTS 支持的订阅数据库类型为 MySQL、DRDS、 Oracle、POLARDB。

4.1.4源实例地域-订阅

要订阅的数据库实例所在的地域,这里一定要选择正确,因为这决定了 DTS 使 用哪里的订阅服务器去连接您的源端数据库。 配置选择完成后,点击支付,等待创建,创建完成后,如下图 4-3。新创建的实例,默认并没有新版订阅的标记。

image.png

4.2任务列表

图 4-1 标记②的处为所选择地域的任务列表。展示了当前地域下运行中,未配置以及异常等状态的订阅任务,具体功能如下。

4.2.1配置订阅通道

创建出来未配置的实例,默认是没有“新版订阅”的标识的,只有当配置完后,才会显示“新版订阅的标识”,点击配置订阅通道配置订阅,跳转到新的页面,如下图 4-4。各配置项的详细说明如下。

image.png

4.2.1.1 实例类型

该处实例类型与“3.3.1 实例类型”介绍的含义相同。

4.2.1.2 RDS 实例 ID

由于我们在“4.1.3 订阅实例类型”创建时,选择的是 MySQL,我们在 “4.2.1.1 实例类型”选择的是 RDS 实例,则需要我们填写 RDS 实例 ID,如果我们 选择的 RDS 是 5.7 及以上的 RDS 实例,则还需要填写 RDS 的数据库账号和数据库 密码。当选择的是 RDS 5.6 实例时则不需要,如下图 4-5。原因在于针对 RDS5.6 实 例,DTS 会在 RDS 内部创建专属于 DTS 的迁移账户,而对于 RDS5.7 及以上的, DTS 并不会这样做,非常推荐您使用 RDS5.7 及以上的高权限账户进行配置。

image.png

image.png

4.2.1.3 数据库账号 / 数据库密码

由于 DTS 要获取数据库的增量数据,数据库的账号权限一定要具备增量日志的获取权限,具体参考“3.3.5 数据库账号”和“3.3.11.2 源库权限检查”。

4.2.1.4 消费网络类型

分为经典网络和专有网络,这里的选择代表的是您后面使用 Client 订阅数据的时 候,如何配置。当 DTS 订阅创建完成后,会生成 2 个地址:公网和私网,如“4.2.2  订阅 ID/ 名称”章节的图 4-9。如果选择经典网络,生成的私网地址就是一个经典网 络的地址(要访问该私网地址需要同地域经典网络的 ECS),如果选择的是专有网络, 生成的私网地址就是一个专有网络的地址(要访问该私网地址需要同低于同 VPC 的 ECS)。

4.2.1.5 授权白名单并进入下一步

当配置完后,点击“授权白名单并进入下一步”进入下一页面(功能说明参考 “3.3.9 授权白名单并进入下一步”),如下图 4-6。该页面的订阅数据类型包括正常的 数据更新以及对象结构更新,当把对象从左侧选择到右侧后,不支持数据迁移的库表 列映射。需要注意的是如下 3 点:

● 数据更新,只订阅 insert,update,delete 这类操作

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

● 如果选择整个库作为订阅对象,那么该库中新增对象的增量数据也可以被订阅到。如果选择某个表作为订阅对象,那么只有这个表的增量数据可以被订阅到。此时如果需要加入一个新的表作为订阅对象,您需要将其加入至订阅对象中,具体参考“4.2.5 修改订阅对象”章节。

image.png

4.2.1.6 保存并预检查

该功能与“3.3.11 预检查并启动”含义相同。如下图 4-7。

image.png

image.png

4.4.2订阅 ID/名称

显示 DTS 任务的 ID 以及名称,点击这个超链接后,进入任务详情页面,如下图 4-9。

4.2.2.1 订阅配置

该页面是 DTS 数据订阅的配置信息展示页面。其中基本信息页面的账户为 rdsdt_dtsacct,这是由于我选择的 RDS 是 5.6 实例,DTS 使用的内部账号进行的 订阅。“订阅 Topic”、“网络”这两个地方非常重要,后面进行“Client 下游消费” 时会用到。重点说下“网络”:

● 公网是任何地方都可达的,只要消费 Client 程序部署的这台主机可以访问公网 即可。

● 私网的使用有特殊的限制,私网分为经典网络私网和 VPC 网络私网,取决于 “4.2.1.4 消费网络类型”章节如何配置的消费类型。经典网络私网可以让 部署在经典网络 ECS 上的消费 Client 进行链接与消费。VPC 网络私网可以 让部署在专有网络 ECS(这个 ECS 所在的 VPC 需要与部署 DTS 时选择的 VPC 相同,如图 4-5)上的消费 Client 进行链接与消费。

4.2.2.2 订阅数据

该页面可以查看已经订阅的数据,这些数据保存在 DTS 缓存模块中,如下图4-10。这个页面不支持 Oracle 订阅的数据查看。

image.png

4.2.2.3 性能监控

该页面展示了 DTS 订阅的拓扑图以及监控指标,如下图 4-11。从拓扑图里可 以看到,这个拓扑图其实就是我们在“第四章 DTS 数据订阅”讨论的内容,只是 把 DTS 数据迁移的采集模块和缓存模块单独拿出来了,DTS 数据迁移的 DTS 增量 写入模块变成了“下游消费 Client”。

在“3.4.1.3.4 增量迁移延迟的定位与处理”章节的定位和排查方法,也可以 用到这里,DTS 数据订阅客户遇到问题最多的是订阅消费延迟,也就是下游消费 Client 消费 DTS 缓存的增量数据有延迟,比如 DTS 缓存的增量数据是 2020-06- 13 15:00:00,而下游消费 Client 只消费到 2020-06-13 12:00:00 的增量数据,这就差了 3 个小时。出现这种情况的原因一般是很多客户的下游消费 Client 里面并不 只是单纯的进行数据消费,还会对这些消费的数据进行业务上的逻辑处理,从而导致 这样的延迟出现。如遇这种情况,强烈建议将业务逻辑处理与消费逻辑分离,保证下 游消费 Client 可以实时的消费到数据,这样也可以避免因消费延迟过大导致增量缓存 模块数据过期的问题。

image.png

4.2.2.4 监控报警

该功能与“3.4.1.4 监控报警”章节功能相同。如下图 4-12 和图 4-13。

image.png

4.2.2.5 数据消费

要使用 Client 进行订阅的消费(获取缓存模块的增量数据),需要先在数据消费页面(如下图 4-14)创建消费组。

image.png

4.2.2.5.1 新增消费组

如下图 4-15,新增消费组时需要填写 3 个信息:消费组名称、账号、密码。这 三个信息可以随意填写,点击确定后,该页面会显示“消费组 ID/ 名称”、“堆积记录 数”、“消息延迟”等信息,如下图 4-16。请注意如下 2 点:

● 您可以创建多个消费组,给不同的下游消费 Client 使用,您也可以把一个消 费组给不同的下游消费 Client 使用(注意 kafka 中 SUBSCRIBE_MODE_ NAME 参数设置)。

● 只有当下游 Client 客户端开始进行消费时,这些堆积记录数,消息延迟才会 显示。

image.png

image.png

4.2.2.5.2 消费位点

如下图 4-17,下游开始消费后,消费位点会进行展示。消费时间点是指“下游 消费 Client”对这个 DTS 订阅的缓存模块的增量数据消费的位点,如“4.2.2.3 性 能监控”所述。由于我暂停了下游消费 client,所以此时的消费位点一直在 7 月 1 日 15:21:56。堆积记录数和消息延迟都很大。当重新启动下游消费 Client 时,消费位 点会随着 Client 的消费而推进,如下图 4-18。

image.png

4.2.2.5.3 堆积记录数

该消费组,有多少记录数没有被下游消费 Client 消费。

4.2.2.5.4 消息延迟

该消费组的订阅数据延迟情况

4.2.3 消费时间点

此处,新版订阅的消费时间点一直为空,因为新版的消费时间点可能有多个(多 个消费组),具体的消费时间点需要查看“4.2.2.5.1 新增消费组”页面。

4.2.4 数据范围

数据范围是指 DTS 的缓存模块里的增量数据的范围(默认 7 天),超过这个范围 的增量数据已经过期,无法订阅。故当订阅不在数据范围内的增量数据时,下游消费 Client 会出现异常。具体异常我们会在“4.3 使用 Client 订阅数据”讨论。

4.2.5 修改订阅对象

当我们要新增 DTS 的订阅对象时,可以点击该功能进行添加。

4.2.6 新增消费组

该功能与“4.2.2.5.1 新增消费组”章节功能相同。 4.2.7 更多 如下图 4-19,更多功能也包含了多个功能项。重点说明如下节点。

image.png

4.2.7.1 查看示例代码

要进行数据订阅的数据消费,需要使用下游消费 Client,这个下游消费 Client 可 以使用 0.11 版本至 1.1 版本的 Kafka 客户端消费订阅数据,DTS 也提供了 MySQL 数据订阅的消费示例代码,点击可以跳转到 github,获取 MySQL 的消费示例代码。 示例代码的配置,我们会在“4.3 使用 Client 订阅数据”讨论,请注意如下 1 点:

● 示例代码,只是针对 MySQL 数据订阅进行消费的,Oracle 数据订阅的不适 用,您还需要编写 Oracle 的示例代码。

4.2.7.2 释放订阅

后付费(按量付费)的 DTS 订阅实例,支持手动释放。预付费 ( 包年包月 ) 的 DTS 订阅实例不支持手动释放。

4.2.7.3 重新配置

如果需要重新配置当前的 DTS 订阅实例,可以使用该功能。

4.3 使用 Client 订阅数据

本章节,我们以 DTS 提供的示例代码为例,讨论如何配置下游消费 Client,进 行数据的消费。

4.3.1 下载示例代码

点击“4.2.7.1 查看示例代码”,示例代码一般在这个地址:https://github.com/LioRoger/subscribe_example?spm=5176.2020520151.6108.d2.3e0a75b02MxgZf

4.3.2 导入示例代码

解压示例代码后,使用 Eclipse 导入示例代码(也可使用其他工具),该示例代 码是基于 Maven 的,所以要提前配置好 Maven。导入步骤如下图 4-20、图 4-21、 图 4-22。

image.png
image.png
image.png

4.3.3 配置 Client

导入完成后,会看到如下图 4-23 的结构图找到。

image.png

打开该文件,打开后,配置如下图 4-24 部分设置。

其中有如下 7 个重点配置项: USER_NAME:是指在“4.2.2.5.1 新增消费组”章节创建消费组时填写的账号。

PASSWORD_NAME:是指在“4.2.2.5.1 新增消费组”章节创建消费组时 填写的密码。

SID_NAME:是指在“4.2.2.5.1 新增消费组”章节创建消费组后,页面显示 的“消费组 ID/ 名称”中的 ID。

GROUP_NAME:此处,填写消费组 ID。

KAFKA_TOPIC:是指在“4.2.2 订阅 ID/ 名称”章节图 4-9 中的“订阅 Topic”。

KAFKA_BROKER_URL_NAME:是指在“4.2.2 订阅 ID/ 名称”章节图 4-9 中的“网络”。此处使用的是公网,您也可以使用内网,使用内网有条件限制,请参 考章节“4.2.1.4 消费网络类型”与“4.2.2.1 订阅配置”。

INITIAL_CHECKPOINT_NAME:用来设置消费 Client 启动时的消费的时间 点。这里如果设置的时间点不在数据 DTS 订阅的数据范围,会出现异常。

USE_CONFIG_CHECKPOINT_NAME:用于设置当这个消费 Client 启动 时,是否用 INITIAL_CHECKPOINT_NAME 的值来重置消费时间点,当第一次 Client 启动时,消费 Client 的消费时间点也会随着消费数据进行推进(推进的时间点 在 INITIAL_CHECKPOINT_NAME 之后),此时如何停止这个消费 Client 再次启 动,就会有 2 个选择:继续按照之前消费的时间点继续消费或者重新按照 INITIAL_ CHECKPOINT_NAME 设置的时间点重新消费。这个参数就是用来控制这两个选项 的,true 的话表示每次启动都重置这个订阅 Client 的消费时间点(重置成 INITIAL_ CHECKPOINT_NAME),false 的话则继续消费(从上一次消费 Client 停止时的消 费时间点继续)。

SUBSCRIBE_MODE_NAME: 这 个 配 置 项 用 来 指 定 消 费 的 模 式, 分 为 assign 和 subscribe,这两个设置是 kafka 的设置,不再此赘述。

image.png

4.3.4 启动 Client

配置完成后,启动 Client,如下图 4-25。启动后,Console 窗口会打印 log 信息。

image.png

4.3.5 打印消费信息

为了确定订阅数据正常,可以在 Console 窗口打印出 Client 订阅到的数据信息,此时需要 Demo 代码中的一个注释,如下图 4-26,把 log.info(ret) 的注释去掉。重新启动。

image.png

重新启动后,当源端数据库出现增量数据更新时,Client 会消费这个 SQL 然后
在 Console 窗口打印出来,如下图 4-27。可以看到插入记录,指的是在 a 列(表的
列名)写入了一个值为 2。

image.png

相关文章
|
1月前
|
SQL 分布式计算 监控
在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
【2月更文挑战第32天】在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
17 6
|
1月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
3月前
DTS数据传输延迟可能有多种原因
【1月更文挑战第16天】【1月更文挑战第79篇】DTS数据传输延迟可能有多种原因
54 2
|
2月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
29 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
11天前
|
消息中间件 存储 数据库
RabbitMQ入门指南(二):架构和管理控制台的使用
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容。
33 0
RabbitMQ入门指南(二):架构和管理控制台的使用
|
1月前
|
缓存 关系型数据库 数据库
如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败了
【2月更文挑战第29天】如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败了
15 3
|
1月前
|
关系型数据库 MySQL OLAP
数据传输DTS写入问题之无法获取数据如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
1月前
|
存储 Java 关系型数据库
数据传输DTS数据问题之数据写入异常如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
数据传输DTS数据问题之数据写入异常如何解决
|
1月前
|
关系型数据库 MySQL 数据处理
数据传输DTS延迟问题之数据延迟如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
340 1
|
6月前
|
存储 Java 数据库连接
云数据仓库ADB不管是jdbc写入或者dts同步,均会存在丢数据的情况?
云数据仓库ADB不知道是不是磁盘出问题了不管是jdbc写入或者dts同步,均会存在丢数据的情况?
55 2