首页 > 其他分享 >如何借助CDC快速实现实时数据传输?

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

时间:2023-10-13 12:31:58浏览次数:50  
标签:同步 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快速实现实时数据传输?_数据

(官网下载页面)

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

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

(ETLCloud社区版平台首页)

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

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

(MySQL数据源配置模板)

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

(SQL Server数据源配置模板)

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

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

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

(监听器配置页面)

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

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

(接收端配置页面)

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

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

(高级配置页面)

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

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

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

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

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

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

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


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

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

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

(同步后目标表数据)

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

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

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

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

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

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

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

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

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

最终目标表效果:

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

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


五、总结

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

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


标签:同步,CDC,数据源,数据库,实时,数据传输,数据
From: https://blog.51cto.com/u_16263190/7843946

相关文章

  • Flick-CDC 只能全量增量,无法同步增量
    问题描述:flink-CDC无法进行增量同步,但是全量又又可以,所以写入到kafka数据只有启动的时候的数据我需要同步的是我的sql下的tms数据库下面的所有表格,.问题解决办法:sudovimmy.cnf要把相关tms数据库写到这里面,这样数据库才能记录日志,才能进行增量同步......
  • 实时美妆魅力尽显:探索相芯轻美妆SDK功能及集成方法(Android)
    随着人工智能技术的不断发展,相芯SDK的轻美妆功能为用户带来了一种全新的美妆体验。轻美妆是妆容和美妆的结合,使用比较轻薄的妆效使轻美妆效果更佳。这一功能集成了多项先进技术,通过人脸识别、图像处理和分割等技术,实现了实时美妆效果的展示和应用。本文将深入介绍相芯SDK轻美妆功能......
  • 遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!
    副标题:口播视频批量制作+7*24小时直播全套解决方案。正文:青否数字人SaaS系统5.0正式发布,王炸更新!提供口播视频批量制作+7*24小时直播全套解决方案。同时直播间支持真人开麦/输入文字选择音色接管,实时驱动直播间数字人回复。7*24小时直播青否数字人客户端选择克隆好的数字人主播,克隆......
  • 实时音视频技术在明星陪看直播中的应用实践
     //  编者按:爱奇艺近年推出的明星陪看直播业务打造了明星真人与观众围绕影视剧综艺近距离实时互动的新体验,逐渐吸引了用户关注。而在技术落地方面,爱奇艺通过与第三方音视频服务供应商深度合作,各尽其能,最终实现了成本最小化,效果最大化。LiveVideoStackCon2023上海站邀请了来自......
  • 解密IP分片与重组:数据传输中的关键技术
    引言在上一章节中,我们详细讨论了IP的分类和无分类原则的原理以及其在网络通信中的应用。IP分片与重组是在数据包传输过程中起到关键作用的机制。当数据包的大小超过网络链路的MTU(最大传输单元)限制时,IP分片将数据包分割为多个较小的分片进行传输。这些分片在网络中独立传输,到达目的......
  • 视频监控系统EasyCVR如何通过API接口获取国标GB28181协议接入的实时录像?
    安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等功能。平台也提供丰富的API接口供开发者集成、调用与二次开发。今天来介绍下......
  • 直播预约丨《实时湖仓实践五讲》第二讲:实时湖仓功能架构设计与落地实战
    如今,大规模、高时效、智能化数据处理已是“刚需”,企业需要更强大的数据平台,来应对数据查询、数据处理、数据挖掘、数据展示以及多种计算模型并行的挑战,湖仓一体方案应运而生。《实时湖仓实践五讲》是袋鼠云打造的系列直播活动,将围绕实时湖仓的建设趋势和通用问题,邀请奋战于企业数......
  • SpringBoot之实现Web消息实时消息推送
    目录1实时消息推送1.1消息推送1.2准备sql1.3短轮询1.4长轮询1.4.1简介1.4.2代码示例1.5iframe流1.6SSE1.6.1简介1.6.2与WebSocket区别1.6.3代码示例1.7MQTT1.7.1简介1.7.2为什么要用MQTT协议1.8WebSocket1实时消息推送1.1消息推送推送的场景比较多,比如有......
  • 利用Redis生成实时排行榜
            ......
  • oracle cdc 命令
    1、查看当前的数据库是否开启了cdc模式,就是日志归档模式v$database在oracle中是一个视图,用于提供有关当前数据库实例的信息。它包含了一些列,其中之一是log_modelog_mode列用于显示数据库实例的归档模式(ArchiveMode)的状态。ARCHIVELOG说明开启了归档模式(即可以执行cdc相关操......