写点什么

如何借助 CDC 快速实现实时数据传输?

作者:RestCloud
  • 2023-10-13
    广东
  • 本文字数:2140 字

    阅读完需:约 7 分钟

如何借助CDC快速实现实时数据传输?

一、CDC(Change Data Capture)概念

CDC 即变化数据捕获,指的是一种数据同步技术,它能够实时地捕获数据更改信息,并将捕获的数据传输到目标数据库中,从而确保数据库的数据更新与备份的一致性。我们在进行数据同步传输时,如果只捕获最近产生变化的数据,后续再进行数据操作时就会非常高效。


二、CDC 同步数据好处

1、不用 CDC 同步数据情况

不使用 CDC 技术的数据同步方式的情况下,数据同步就只能通过定期的批量导入、导出或者定时对源数据库进行增量查询,标记相关数据在同步到目标数据库。


这种方式缺陷在于实时性差,效率低下,数据库负载高,容易出现脏数据等情况,不适用于高频数据变更场景。而 CDC 同步数据则几乎完美解决这些痛点,能够方便快捷的实现实时数据传输。

2、CDC 优势

CDC 主要应用于企业级或生产环境中的数据同步场景,使用 CDC 技术可以为企业带来优势。


首先,它可以提高数据库的可靠性。由于数据库中所有的更改都被记录下来,并可以随时恢复到任何时间点,因此数据库可以更轻松地检测到数据更改的错误或故障,并快速恢复。


其次,CDC 技术可以提高数据库的可扩展性。由于它可以轻松地将更改保存到新的位置,并确保新的位置中的数据是完整的,因此可以更轻松地扩展数据库,以满足业务的增长需求。


三、CDC 同步数据方法

CDC 实时传输数据方案有三种类型,即数据库自带 CDC 功能,结合第三方 CDC 工具实现数据集成和自定义开发。

1、数据库自带 CDC 功能

部分数据库提供了内置的 CDC 功能,例如 Oracle 的 LogMiner 和 SQL Server 的 Change Data Capture。通过配置和启用这些功能,可以实现对数据库事务日志的实时监控和解析,捕获变更数据,并将其传输到目标数据库。这种方式通常具有较高的性能和可靠性,但是缺点也很明显,难以实现不同库表之间的数据同步,泛用性较差。

2、第三方 CDC 工具

市面上也有一些第三方 CDC 工具,如 Debezium、Canal、FlinkCDC、ETLCloud CDC 等。这些工具可以与多种数据库进行集成,并通过读取事务日志或使用数据库提供的 API,实时捕获和传输变更数据。它们通常提供了易于配置和管理的界面,可以满足各种数据同步需求。难点在于不同工具有不同的学习成本,使用难度也有区别,一个个试起来有些麻烦。

3、自定义开发

如果数据库不提供内置的 CDC 功能,或者需要实现更定制化的 CDC 逻辑,可以考虑自行开发。具体实现方式包括监控数据库的事务日志,解析并过滤出变更数据,然后将其传输到目标数据库。这需要对数据库事务日志的结构和格式有一定的了解,并编写相应的程序来监控和解析。而且开发存在一定难度,需要耗费大量的人力以及时间。


四、CDC 结合第三方工具实现实时数据传输

这里就演示一下我正在使用的一款国产 CDC 工具进行实时数据传输。


ETLCloud 社区版是开放平台来的,安装过程非常简单,大家可以根据自己的需求选择不同的安装方式,我这里给出官网下载地址,按照帮助文档安装即可。官网下载地址


(官网下载页面)


我这里进入平台,通过 CDC 方式进行实时数据传输,平台首页如下图所示:

(ETLCloud 社区版平台首页)


使用平台功能前要先在数据源管理模块中配置连接要使用的数据源,平台支持市面上常见的大部分关系型、消息型以及大数据型数据源,配置过程只用填写相关的基本信息即可。另一方面监听表需要开启数据库 cdc,方式在帮助文档中有相关教程。数据源有配置模板可以参考,如下图:

(MySQL 数据源配置模板)


(SQL Server 数据源配置模板)

测试链接成功后,我们回到平台首页,点击进入实时数据集成模块,点击左侧数据库监听器,新增监听器,进行监听器配置。


按照提示填写内容,源数据库即我们之前在数据源管理中配置的数据源,可以通过载入快速下拉选择数据源及库表;

(监听器配置页面)


接收端配置,有四种数据传输模式,这里直接选择最方便的“直接传输到目标库方式”,其它方式可以自行前往官网文档了解。目标数据库同理是我们在数据源管理中配置的数据源,下拉选取即可。

(接收端配置页面)


高级配置,我们采集模式选择“全量+增量”,其他默认。

(高级配置页面)


配置完毕后,点击保存,启动监听器之前,我先展示一下选取的测试监听表以及数据实时传输目标表。

(监听原表-MySQL 中 10w 条左右测试数据)


(数据传输目标表-SQL Server 中空表,与源表表结构相同)


启动刚刚配置好的监听器,查看数据同步情况:


(数据传输情况-初始同步的全量数据)


(同步后目标表数据)


手动删除修改源表 1 条数据后:



手动删除源表 18 条数据后:



手动新增 1 条源表数据后:



最终目标表效果:

整体体验下来非常简单方便,全程可视化点击操作,不用编写任何代码,有兴趣的可以自行使用了解。而且还有个好处,可以加入官方的社区群寻求帮助,产品有一个专门的团队在社区群中提供问题解决帮助,使用过程中遇到的问题可以直接询问相关老师,可以省去不少麻烦。

五、总结

综上所述,CDC技术是一种极具价值的实时数据传输同步技术。它可以帮助企业确保数据库的数据完整性和可靠性,提高数据库的可扩展性,可以实现高效、实时的数据传输。


想要通过 CDC 快速实现实时数据传输,选择合适的 CDC 工具或自主开发程序是十分重要的,可以将 CDC 技术无缝集成到你的系统中,使得数据同步更加方便、安全、快速。当然,CDC 技术也需要考虑一些问题,如源数据库性能消耗、网络带宽使用等,但在大多数情况下,CDC 技术仍然是一个非常可靠和有效的数据同步方式。


用户头像

RestCloud

关注

还未添加个人签名 2023-06-07 加入

还未添加个人简介

评论

发布
暂无评论
如何借助CDC快速实现实时数据传输?_数据同步_RestCloud_InfoQ写作社区