一种基于CDC模式的数据抓取系统及方法技术方案

技术编号:35411797 阅读:30 留言:0更新日期:2022-11-03 11:08
本发明专利技术涉及一种基于CDC模式的数据抓取系统及方法,其中系统包括源库、Uxsync工作台和目标库,该系统还包括agent监听进程和merge sever,所述的agent监听进程和merge sever配置于Uxsync工作台上,所述的agent监听进程从源库采集事务日志,传输到merge sever对数据进行格式转化后,传输至目标库中。与现有技术相比,本发明专利技术具有减少开发成本、非侵入式和不会增加原系统负载等优点。会增加原系统负载等优点。会增加原系统负载等优点。

【技术实现步骤摘要】
一种基于CDC模式的数据抓取系统及方法


[0001]本专利技术涉及数据库同步领域,尤其是涉及一种基于CDC(Change DataCapture,变动数据捕获)模式的数据抓取系统及方法。

技术介绍

[0002]随着企业的发展,数据库的负载逐渐增加,越来越多实时数据查询应用使得数据库不能直接为客户带来直接查询结果,因为数据库负荷越来越重,更多的系统无法享受直接查询的结果,数据同步技术越发重要。
[0003]抽取处理需要重点考虑增量抽取,也被称为变化数据捕获,简称CDC。假设一个数据仓库系统,在每天夜里的业务低峰时间从操作型源系统抽取数据,那么增量抽取只需要过去24小时内发生变化的数据。变化数据捕获也是建立准实时数据仓库的关键技术。
[0004]当你能够识别并获得最近发生变化的数据时,抽取及其后面的转换、装载操作显然都会变得更高效,因为要处理的数据量会小很多。遗憾的是,很多源系统很难识别出最近变化的数据,或者必须侵入源系统才能做到。变化数据捕获是数据抽取中典型的技术挑战。
[0005]常用的变化数据捕获方法有时间戳、快照、触发器和日志四种。时间戳方法需要源系统有相应的数据列表示最后的数据变化。快照方法可以使用数据库系统自带的机制实现,如Oracle的物化视图技术,也可以自己实现相关逻辑,但会比较复杂。触发器是关系数据库系统具有的特性,源表上建立的触发器会在对该表执行insert、update、delete等语句时被触发,触发器中的逻辑用于捕获数据的变化。日志可以使用应用日志或系统日志,这种方式对源系统不具有侵入性,但需要额外的日志解析工作。
[0006]因此如何来实现针对现有的主流数据库事务日志进行处理,减少数据同步的开发成本,并对业务没有侵入性,成为需要解决的技术问题。

技术实现思路

[0007]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于CDC模式的数据抓取系统及方法。
[0008]本专利技术的目的可以通过以下技术方案来实现:
[0009]根据本专利技术的一个方面,提供了一种基于CDC模式的数据抓取系统,包括源库、Uxsync(优炫数据同步工具)工作台和目标库,该系统还包括agent(代理客户端)监听进程和merge sever(数据合并服务),所述的agent监听进程和merge sever配置于Uxsync工作台上,所述的agent监听进程从源库采集事务日志,传输到mergesever对数据进行格式转化后,传输至目标库中。
[0010]作为优选的技术方案,所述的源库包括postgresql、mysql、orcale和sql server数据库。
[0011]作为优选的技术方案,所述的agent监听进程采集的数据为从事务日志获取的数据表的增量数据。
[0012]作为优选的技术方案,所述的merge sever对增量数据进行结构化处理,将增量数据转化为sql语句,从而同步到目标库中。
[0013]作为优选的技术方案,所述的Uxsync工作台为agent监听进程指定数据库类型、事务日志位置、采集周期和每次采集数量。
[0014]作为优选的技术方案,所述的Uxsync工作台为merge server配置数据类型映射、目标数据库类型、端口、ip、发送频率和发送sql数量。
[0015]作为优选的技术方案,所述的Uxsync工作台包括前端的图像界面,用于显示agent的运行状态和merge server运行状态。
[0016]根据本专利技术的另一个方面,提供了一种用所述的基于CDC模式的数据抓取系统的方法,该方法包括以下步骤:
[0017]步骤1、Uxsync工作台为agent监听进程配置监听频率、抽取数量、源数据库日志位置,为merge server配置数据类型映射、目标数据库类型、端口、ip、发送频率和发送sql数量;
[0018]步骤2、agent监听进程从源库监听事务日志的增量,并定时抽取增量数据发送到merge sever;
[0019]步骤3、merge sever解析增量数据,根据目标库类型,将增量数据改写为特定的可执行sql语句;
[0020]步骤4、merge sever将sql语句发送至目标库。
[0021]作为优选的技术方案,所述的步骤2中抽取事务日志的增量数据时,agent监听进程针对不同的源库类型采用不同的抽取方法。
[0022]作为优选的技术方案,当源库为postgresql数据库时,agent监听进程记录每次抽取的clog序列号,并依次按顺序抽取。
[0023]与现有技术相比,本专利技术具有以下优点:
[0024]1、本专利技术通过对现有的主流数据库事务日志进行处理,减少了数据同步的开发成本。
[0025]2、本专利技术对业务没有侵入性,非侵入式的不会增加原有系统的负载。
附图说明
[0026]图1为本专利技术系统的结构示意图。
[0027]图2为本专利技术数据抓取方法的流程图。
具体实施方式
[0028]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。
[0029]CDC大体可以分为两种,一种是侵入式的,另一种是非侵入式的。所谓侵入式的是指CDC操作会给源系统带来性能的影响。只要CDC操作以任何一种方式对源库执行了SQL语句,就可以认为是侵入式的CDC。基于时间戳的CDC、基于触发器的CDC、基于快照的CDC是侵
入性的,基于日志的CDC是非侵入性的。
[0030]本专利技术的原理具体如下:
[0031]采用的CDC模式:变更数据获取,采用抓取源库事务日志的方式获取。其中,agent监听进程负责事务日志的抓取工作,merge server负责日志的解析以及转化为具体的sql语句。其中核心流程是merge server收到从agent监听进程抓取到的增量事务日志后,对增量事务日志中的增删改进行表数据转化,merge server根据目标数据库类型,改写为特定的可执行sql语句。
[0032]如图1所示,一种基于CDC模式的数据抓取系统,包括源库、Uxsync工作台和目标库,该系统还包括agent监听进程和merge sever,所述的agent监听进程和merge sever配置于Uxsync工作台上,所述的agent监听进程从源库采集事务日志,传输到merge sever对数据进行格式转化后,传输至至目标库中。
[0033]所述的源库包括postgresql、mysql、orcale和sql server数据库。所述的agent监听进程采集的数据为从事务日志获取的数据表的增量数据。所述的merge sever对增量数据进行结构化处理,将增量数据转化为sql语句,从而本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CDC模式的数据抓取系统,包括源库、Uxsync工作台和目标库,其特征在于,该系统还包括agent监听进程和merge sever,所述的agent监听进程和merge sever配置于Uxsync工作台上,所述的agent监听进程从源库采集事务日志,传输到merge sever对数据进行格式转化后,传输至目标库中。2.根据权利要求1所述的一种基于CDC模式的数据抓取系统,其特征在于,所述的源库包括postgresql、mysql、orcale和sql server数据库。3.根据权利要求1所述的一种基于CDC模式的数据抓取系统,其特征在于,所述的agent监听进程采集的数据为从事务日志获取的数据表的增量数据。4.根据权利要求3所述的一种基于CDC模式的数据抓取系统,其特征在于,所述的merge sever对增量数据进行结构化处理,将增量数据转化为sql语句,从而同步到目标库中。5.根据权利要求1所述的一种基于CDC模式的数据抓取系统,其特征在于,所述的Uxsync工作台为agent监听进程指定数据库类型、事务日志位置、采集周期和每次采集数量。6.根据权利要求1所述的一种基于CDC模式的数据抓取系统,其特征在于,所述的Uxsync工作台为merge serve...

【专利技术属性】
技术研发人员:蔡洪旺郭新昱孙守虎谢世安梁永吉杨焰迟玉翠郑伟孙小函蔡祥
申请(专利权)人:华能集团技术创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1