System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于CDC技术的跨库数据实时同步方法技术_技高网

一种基于CDC技术的跨库数据实时同步方法技术

技术编号:44613416 阅读:3 留言:0更新日期:2025-03-14 13:05
本发明专利技术涉及多源数据同步技术领域,具体地说,涉及一种基于CDC技术的跨库数据实时同步方法;通过无代码图形化配置实现将数据变化实时同步到目标系统,从而从源数据库同步到数据仓库、数据分析平台或其他业务系统,无需二次开发代码,技术门槛低,非技术背景的业务人员通过界面化配置,即可实现数据的跨库实时同步,增强了跨部门之间的沟通和协作,提高了工作效率。

【技术实现步骤摘要】

本专利技术涉及多源数据同步,具体地说,涉及一种基于cdc技术的跨库数据实时同步方法。


技术介绍

1、目前在市场上有多种cdc数据同步组件,包括flink、debezium、datax、otter、canal、sqoop。在增量准实时数据同步处理方面flink、debezium、otter、canal项目中使用较多,因为datax和sqoop主要是用在离线数据同步方面,不支持日志模式,因此不能用于实时同步上;sqoop主要面向大数据技术生态;otter、canal开源版本暂不支持postgresql;而flink cdc和debezium都预设的连接器和插件,也支持常见的数据库类型,包括mysql、postgresql、mongodb等,是利用了数据库的日志或者事务日志(如mysql的binlog,postgresql的wal)来跟踪数据,但是并且无法定制化开发,无利于产品拓展,需要代码二次开发。综上所述,市场上现有的开源产品都存在局限性。


技术实现思路

1、本专利技术针对现有的cdc数据同步方法,需要代码二次开发存在局限性的问题,提出一种基于cdc技术的跨库数据实时同步方法;通过无代码图形化配置实现将数据变化实时同步到目标系统,从而从源数据库同步到数据仓库、数据分析平台或其他业务系统,无需二次开发代码,技术门槛低,非技术背景的业务人员通过界面化配置,即可实现数据的跨库实时同步,增强了跨部门之间的沟通和协作,提高了工作效率。

2、本专利技术具体实现内容如下:

3、一种基于cdc技术的跨库数据实时同步方法,具体包括以下步骤:

4、步骤s1:根据选取的数据同步组件搭建cdc环境,并根据数据源配置、cdc任务配置信息构建启动cdc连接器;

5、步骤s2:根据构建的cdc连接器监听多源数据库日志,得到数据库变更事件;

6、步骤s3:将数据库变更事件转换为json格式;

7、步骤s4:初始化线程池,根据cdc任务配置信息订阅kafka主题,批量生成sql语句,调用commitsync()方法获取kafka消费者的偏移量;

8、步骤s5:根据kafka消费者的偏移量捕获异常数据,根据设定的重试机制同步至目标系统。

9、为了更好地实现本专利技术,进一步地,所述步骤s1具体包括以下步骤:

10、步骤s11:根据debezium数据同步组件、kafka数据同步组件、debezium connector数据同步组件、flink cdc数据同步组件搭建cdc环境;

11、步骤s12:根据数据源配置、cdc任务配置信息、数据同步组件,构建启动cdc连接器,实例化cdc连接器。

12、为了更好地实现本专利技术,进一步地,所述步骤s11具体包括以下步骤:

13、步骤s111:根据debezium组件安装zookeeper集群,管理kafka集群的配置、选举leader、处理consumer group的rebalance;

14、步骤s112:安装debezium connector,并以jar包的形式部署在kafkaconnect中作为source connector,捕获特定数据库的变更事件,发送至kafka集群中;

15、步骤s113:根据flink cdc组件安装apache flink,并添加flink cdc连接器依赖。

16、为了更好地实现本专利技术,进一步地,所述步骤s12具体包括以下步骤:

17、步骤s121:根据debezium组件向kafka connect发送post请求,实例化启动debezium connector;

18、步骤s122:根据flink cdc组件在flink sql环境中,通过编程api动态配置mysqlcdc source,实例化启动flinkcdc任务。

19、为了更好地实现本专利技术,进一步地,所述步骤s2具体包括以下步骤:

20、步骤s21:根据cdc连接器订阅mysql数据库的二进制日志binlog捕获数据变化;

21、步骤s22:根据postgresql数据库的逻辑复制logical replication捕获数据变化,根据应用程序订阅数据库wal日志,获取数据库的变更事件;

22、步骤s23:根据cdc连接器对oracle数据库的在线和归档重做日志文件redo logs进行解析。

23、为了更好地实现本专利技术,进一步地,所述步骤s4具体包括以下步骤:

24、步骤s41:根据配置线程池参数,调用threadpooltaskexecutor初始化线程池;

25、步骤s42:根据cdc任务配置同步表信息,创建kafka消费者并提交至初始化后的线程池;

26、步骤s43:调用commitsync()方法提交kafka消费者的偏移量。

27、为了更好地实现本专利技术,进一步地,所述步骤s42具体包括以下步骤:

28、步骤s421:根据cdc任务配置获取待同步的表信息,根据待同步的表信息创建任务实例;所述任务实例封装了创建kafka消费者、订阅特定主题和处理接收到的消息的逻辑;

29、步骤s422:将创建的任务实例提交至初始化后的线程池中,并根据线程池的核心线程数、最大线程数、任务队列容量,动态分配执行资源至任务实例,并行执行任务实例。

30、为了更好地实现本专利技术,进一步地,所述步骤s43具体包括以下步骤:

31、步骤s431:在每个线程同步表实例创建独立的kafkaconsumer实例,并设置配置参数;

32、步骤s432:在kafkaconsumer实例中调用poll()方法获取consumerrecords,并根据jackson解析得到json数据;

33、步骤s433:根据设定的预处理规则,预处理json数据;

34、步骤s434:根据cdc任务配置中的表对应关系,确定目标数据库表和字段映射,调用freemarker模板引擎根据操作类型和预处理后的json数据,批量生成sql语句;

35、步骤s435:将批量生成的sql语句批量发送到sql执行客户端,调用commitsync()方法提交kafka消费者的偏移量。

36、为了更好地实现本专利技术,进一步地,所述步骤s435的具体操作为:将批量生成的sql语句批量发送至sql执行客户端,在同一个事务中,按顺序执行所有sql语句,在执行过程中捕获并处理异常,若所有sql语句都成功执行,则提交事务,否则回滚sql事务;在成功处理完一批消息并提交了数据库事务后,调用commitsync()方法提交kafka消费者的偏移量。

37、为了更好地实现本专利技术,进一步地,所述步骤s5的具体操作为:

38、步骤s51:根据kafka消费者的偏移量,捕获异常本文档来自技高网...

【技术保护点】

1.一种基于CDC技术的跨库数据实时同步方法,其特征在于,具体包括以下步骤:

2.根据权利要求1所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S1具体包括以下步骤:

3.根据权利要求2所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S11具体包括以下步骤:

4.根据权利要求2所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S12具体包括以下步骤:

5.根据权利要求1所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S2具体包括以下步骤:

6.根据权利要求1所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S4具体包括以下步骤:

7.根据权利要求6所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S42具体包括以下步骤:

8.根据权利要求6所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S43具体包括以下步骤:

9.根据权利要求8所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S435的具体操作为:将批量生成的SQL语句批量发送至SQL执行客户端,在同一个事务中,按顺序执行所有SQL语句,在执行过程中捕获并处理异常,若所有SQL语句都成功执行,则提交事务,否则回滚SQL事务;在成功处理完一批消息并提交了数据库事务后,调用commitSync()方法提交Kafka消费者的偏移量。

10.根据权利要求1所述的一种基于CDC技术的跨库数据实时同步方法,其特征在于,所述步骤S5的具体操作为:

...

【技术特征摘要】

1.一种基于cdc技术的跨库数据实时同步方法,其特征在于,具体包括以下步骤:

2.根据权利要求1所述的一种基于cdc技术的跨库数据实时同步方法,其特征在于,所述步骤s1具体包括以下步骤:

3.根据权利要求2所述的一种基于cdc技术的跨库数据实时同步方法,其特征在于,所述步骤s11具体包括以下步骤:

4.根据权利要求2所述的一种基于cdc技术的跨库数据实时同步方法,其特征在于,所述步骤s12具体包括以下步骤:

5.根据权利要求1所述的一种基于cdc技术的跨库数据实时同步方法,其特征在于,所述步骤s2具体包括以下步骤:

6.根据权利要求1所述的一种基于cdc技术的跨库数据实时同步方法,其特征在于,所述步骤s4具体包括以下步骤:

7.根据权利要求6所述的一种...

【专利技术属性】
技术研发人员:蔡永辉刘众欣王钦宝彭志明
申请(专利权)人:中通服软件科技有限公司
类型:发明
国别省市:

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

1