通过DTS将RDS的数据实时同步至DataHub

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

准备工作

  • 创建一个数据库和表,您可以选择使用阿里云的RDS数据库,也可以在本地服务器上自建数据库。本案例以华东1区的RDS MySQL数据库为例,数据库表的名称为datav_test,字段及数据如下图所示。

  • 登录阿里云Datahub控制台,选择华东1,单击创建Project,创建一个Datahub项目(本案例的项目名称为dts_test)。

数据同步

  1. 进入阿里云DTS控制台,单击左侧菜单栏中的数据同步
  2. 单击创建同步作业,购买数据传输服务实例,配置如下图所示。

注意

 - **源实例**选择**MySQL**,**目标实例**选择**Datahub**。
 - 源实例区域和目标实例区域以及同步作业实例区域需保持一致。
  1. 购买成功后,返回控制台,单击实例右侧的配置同步链路
  2. 选择同步通道的源及目标实例,如下图所示,完成后单击授权白名单并进入下一步

  1. 选择同步对象。选择需要同步的表,单击 > 图标按钮。

  1. 单击预检查并启动,启动预检查。如果预检查成功,系统会显示如下对话框。

  1. 单击关闭,返回数据同步页面,单击页面右上角的刷新,查看实例状态。此时正常情况下,实例状态应该显示为初始化中

说明:初始化的时间依赖于同步表的数量大小。

  1. 当初始化完成后,同步链路即进入同步中的状态,此时源跟目标实例的同步链路才真正建立完成。单击页面右上角的刷新,查看实例的同步概况。

  1. 进入阿里云Datahub控制台,单击项目右侧的查看,进入Topic页面,可以看到已经同步完成的表的名称即为topic的名称。

  1. 单击topic右侧的查看,选择Schema,查看已经同步完成的表的结构。

数据采集

说明:由于Datahub同步的是增量数据,因此您必须在数据库中增加一条或多条数据,才能同步到Datahub中。此案例采用手动插入数据的方式,仅作为参考,在实际应用中,您表中的数据应该是实时写入的。

  1. 登录您的数据库,在表中插入一条数据,如下图所示。

  1. 回到阿里云Datahub控制台,单击topic右侧的查看,选择Shards
  2. 单击某个shard右侧的数据抽样
  3. Shard数据抽样页面,指定一个时间(该时间要小于等于最新数据时间,否则无法抽取数据),单击抽样,查看数据同步结果。

常见问题

  1. DTS 数据同步失败,如何处理?

可能原因:同步链路规格配置不合适导致。

解决方法:参考数据同步规格说明,选择合适的规格,重新创建同步作业。

  1. Datahub 中单击数据抽样,抽样数据为空,如何处理?

可能原因:

  • 指定的时间大于最新数据时间
  • 数据库中不存在增量数据。

解决方法:

  1. 在进行数据抽样时,设置指定的时间小于等于最新数据时间,再次单击抽样,查看数据是否为空。

    • 是,执行下一步。
    • 否,问题解决。
  2. 在您的数据库中插入一条或多条数据,重新回到Datahub控制台,对数据进行抽样。

    如果问题仍然无法解决,请在控制台上提交工单,或者直接联系阿里云技术支持工程师。
    

(本文作者为阿里云大数据产品文档工程师)

相关文章
|
1月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
44 1
|
1月前
|
SQL 监控 关系型数据库
MySQL怎么全局把一张表的数据回滚
MySQL怎么全局把一张表的数据回滚
128 2
|
27天前
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
148 0
|
1月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
47 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
1月前
|
关系型数据库 MySQL 数据库
mysql 里创建表并插入数据
【10月更文挑战第5天】
119 1
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
49 3
|
8天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
114 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
8天前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
42 14
|
11天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
43 9
|
23天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。