摘要:本文以SQLServer为例,实测免费数据同步工具Tapdata Cloud。SQL Server关系数据库管理系统是一个全面的数据库平台,安全性可用性能高,方便易用,广泛应于ERP系统、商业智能、垂直领域零售等场景。很多公司需要将SQL Server数据同步到ES 、Oracle、MySQL、PG、SQL Server、MongoDB、达梦、Kafka、GP、MQ、ClickHouse、TiDB等数据库。

实测背景

前两天有同学提到需要将SQL Server中的数据实时的同步到MySQL中的需求,由于自己对SQL Server数据同步也很感兴趣但一直没有机会实操,恰好趁这个机会学习验证了一下,并把过程记录下来,方便新人尽快上手少走弯路。

据官方介绍,Tapdata Cloud 是一款异构数据库实时同步云平台,支持多款常见数据库之间的相互同步,包括Oracle、MySQL、PG、SQL Server、MongoDB、ES 、达梦、Kafka、GP、MQ、ClickHouse、Hazelcast Cloud、ADB MySQL、ADB PostgreSQL、KunDB、TiDB、Dummy DB等。本次实操采用Tapdata Cloud实现将SQL Server数据同步到MySQL,过程中主要以实操步骤为主,方便读者操作参考。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_sqlserver(△ Tapdata Cloud 目前支持的数据源)

第一步:配置SQL Server连接

  1. 点击 Tapdata Cloud 操作后台左侧菜单栏的【连接管理】,然后点击右侧区域【连接列表】右上角的【创建连接】按钮,打开连接类型选择页面,然后选择SQL Server

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_sqlserver_02

2.在打开的连接信息配置页面依次输入需要的配置信息

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_oracle_03

【连 接 名 称】:设置连接的名称,多个连接的名称不能重复

【连接类型】:

  • 源头和目标:此数据连接在Tapdata中能同时作为源和目标使用
  • 源头:此数据连接在Tapdata中只能作为源使用,不能作用为目标
  • 目标:此数据连接在Tapdata中只能作为目标使用,不能作用为源

【数据库地址】:数据库 IP / Host

【端          口】:数据库端口

【数据库名称】:tapdata 数据库连接是以一个 db 为一个数据源。这里的 db 是指一个数据库实例中的 database,而不是一个 schema。

【账          号】:可以访问数据库的账号

【密          码】:数据库账号对应的密码

【Schema】:数据库的schema

【时 间 时 区】:默认使用该数据库的时区;若指定时区,则使用指定后的时区设置

第二步:配置 MySQL 连接

  1. 同第一步操作,点击左侧菜单栏的【连接管理】,然后点击右侧区域【连接列表】右上角的【创建连接】按钮,打开连接类型选择页面,然后选择 MySQL

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_oracle_04

2.在打开的连接信息配置页面依次输入需要的配置信息,配置完成后测试连接保存即可。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_oracle_05

第三步:选择同步模式-全量/增量/全+增

进入Tapdata Cloud 操作后台任务管理页面,点击添加任务按钮进入任务设置流程

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_数据库_06

根据刚才建好的连接,选定源端与目标端。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_数据_07

根据数据需求,选择需要同步的库、表,如果你对表名有修改需要,可以通过页面中的表名批量修改功能对目标端的表名进行批量设置。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_数据_08

在以上选项设置完毕后,下一步选择同步类型,平台提供全量同步、增量同步、全量+增量同步,设定写入模式和读取数量。

如果选择的是全量+增量同步,在全量任务执行完毕后,Tapdata Agent 会自动进入增量同步状态。在该状态中,Tapdata Agent 会持续监听源端的数据变化(包括:写入、更新、删除),并实时的将这些数据变化写入目标端。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_oracle_09

点击任务名称可以打开任务详情页面,可以查看任务详细信息。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_数据_10

点击任务监控可以打开任务执行详情页面,可以查看任务进度/里程碑等的具体信息。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_oracle_11

第四步:进行数据校验

一般同步完成后,我都习惯性进行一下数据校验,防止踩坑。

​Tapdata Cloud​​ 有三种校验模式,我常用最快的快速count校验 ,只需要选择到要校验的表,不用设置其他复杂的参数和条件,简单方便。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_数据库_12

如果觉得不够用,也可以选择表全字段值校验 ,这个除了要选择待校验表外,还需要针对每一个表设置索引字段。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_sql_13

在进行表全字段值校验时,还支持进行高级校验。通过高级校验可以添加JS校验逻辑,可以对源和目标的数据进行校验。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_数据_14

还有一个校验方式关联字段值校验 ,创建关联字段值校验时,除了要选择待校验表外,还需要针对每一个表设置索引字段。

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_sqlserver_15

至此,SQL Server中的数据已经被成功同步到MySQL,低代码的配置页面简直不要太友好,数据同步也是实时的。

实操下来最直观的感受就是Tapdata Cloud的配置操作非常灵活简单。简洁的可视化界面,使用了目前非常流行的拖拉拽的操作方式来实现数据的自动同步,即使是不会编程的普通业务人员也能进行完整的操作,而对于有编程基础的业内人员来说,则可以大大的节省时间和精力。以建表这个功能为例,用户无需关心复杂的表结构,直接在操作台选择所需同步的目标表,省去了非常多不必要的麻烦,摆脱平日束缚,更多专注于核心业务。

很多同学可能会担心同步的数据安全问题,一开始我也有这样的担忧。后来了解到 Tapdata Cloud 采用了采用了多种网络安全措施, TCM + Tapdata Agent 架构实现用户的数据不流经平台即可达到数据同步,有相当不错的安全性。在用户体验上,也可以给到不错的评分。架构图如下:

单挑kettle/datax,实测免费数据同步工具Tapdata Cloud如何实时同步SQLServer,Oracle,MySQL,PG,MongoDB,达梦,TiDB,ES等异构数据库_oracle_16

当然,对于工具是否好用的问题我们已经得出了肯定的答案,但它到底是否适合你的业务数据,只有自己去体验一下才能知道了。

其他数据库的同步操作跟上述分享的步骤类似

包括 Oracle、MySQL、PG、SQL Server、MongoDB、ES 、达梦、Kafka、GP、MQ、ClickHouse、Hazelcast Cloud、ADB MySQL、ADB PostgreSQL、KunDB、TiDB、Dummy DB 等主流数据库的实时同步方式也都是先配置源和目标的连接,然后新建任务选择同步模式:全量/增量/全量+增量,因为步骤相同,其他就不再贴图说明了。创建连接的时候,DB2、Sybase、Gbase 几个数据库显示正在开发中,从支持的数据源来说已经超越了大部分同类工具了​

相比kettle和datax,Tapdata Cloud 采用全流程图形化界面,应用端采用B/S架构,所有操作在浏览器内就可以完成,不需要额外的开发和生产发布,非专业的数据人也能用起来。而且基于日志的采集方式对数据库无侵入性,同步也无需担心对原系统造成不良影响。Tapdata Cloud 迭代挺勤快,除了数据同步,覆盖了常见的数据源,听说数据开发也排上日程了,已远远超出了我们原本对数据同步工具的理解。