一种实时捕获数据库数据变更的方法、系统、电子设备及存储介质技术方案

技术编号:38410767 阅读:18 留言:0更新日期:2023-08-07 11:17
本发明专利技术公开了一种实时捕获数据库数据变更的方法、系统、电子设备及存储介质,包括获根据目标数据库构建配置文件,并监控目标数据库的日志信息;添加捕捉操作日志变更数据的jar包,jar包存储有用于读取目标数据库的Flink SQL程序;运行Flink SQL程序,读取日志信息中的变更数据并将数据投递至Kafka消息队列中;消费Kafka消息队列中的数据验证目标数据库的变更数据。本发明专利技术能够捕获数据库所有数据的变化,捕获完整的变更记录,在异地容灾,数据备份等场景中得到广泛应用。等场景中得到广泛应用。等场景中得到广泛应用。

【技术实现步骤摘要】
一种实时捕获数据库数据变更的方法、系统、电子设备及存储介质


[0001]本专利技术涉及数据处理
,具体涉及一种实时捕获数据库数据变更的方法、系统、电子设备及存储介质。

技术介绍

[0002]许多集团公司业务数据仍存储在结构化数据库mysql中,作为一些大的集团公司,数据增长的多而且快,出现多个千万级,亿级别的大表,为了实现各个维度的各种复杂的报表业务,有些千万级大表仍然需要进行Join,计算规模非常惊人,经常不能及时响应请求。随着数据量的日益增长和实时分析的需求越来越大,急需对系统进行流式计算、实时化改造,对于mysql中结构化的传统的数据库一般只能一次性的全量采集,对于库中变更的数据没法做到实时的处理,计算,需要定时的对变更数据进行采集计算,造成资源的浪费,时间有延迟,不能及时处理数据,不能达到实时计算的要求。

技术实现思路

[0003]为解决现有技术中存在的上述问题,本专利技术提供一种实时捕获数据库数据变更的方法。
[0004]本专利技术公开了一种实时捕获数据库数据变更的方法,包括:
[0005]根据目标数据库构建配置文件,并监控所述目标数据库的日志信息;
[0006]添加捕捉操作日志变更数据的jar包,所述jar包存储有用于读取所述目标数据库的Flink SQL程序;
[0007]运行所述Flink SQL程序,读取所述日志信息中的变更数据并将所述数据投递至Kafka消息队列中;
[0008]消费所述Kafka消息队列中的数据验证所述目标数据库的变更数据。
[0009]优选的是,所述配置文件包括配置目标数据库的基本信息、配置Kafka的基本信息以及数据处理逻辑,所述目标数据库的基本信息包括数据库服务地址、数据库端口、用户名、密码及数据库名,所述Kafka的基本信息包括Kafka的服务地址、Kafka的端口、序列化key类、序列化value类和主题名称,所述数据处理逻辑包括读取数据、写入数据和处理数据。
[0010]优选的是,所述配置文件中还包括日志监控语句log

bin=mysql

bin。
[0011]优选的是,所述变更数据包括创建表、更新表信息、删除表、表数据更新、插入新数据和删除数据。
[0012]优选的是,消费所述Kafka消息队列中的数据为将所述Kafka消息队列中的数据转换成所述目标数据库的SQL语句。
[0013]本专利技术还提供一种上述实时捕获数据库数据变更系统,包括:
[0014]配置模块,用于根据目标数据库构建配置文件,并监控所述目标数据库的日志信
息;
[0015]添加模块,用于添加捕捉操作日志变更数据的jar包,所述jar包存储有用于读取所述目标数据库的Flink SQL程序;
[0016]运行模块,用于运行所述Flink SQL程序,读取所述日志信息中的变更数据并将所述数据投递至Kafka消息队列中;
[0017]验证模块,用于消费所述Kafka消息队列中的数据验证所述目标数据库的变更数据。
[0018]本专利技术还提供一种设备,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行上述的方法。
[0019]本专利技术还提供一种存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行上述的方法。
[0020]与现有技术相比,本专利技术的有益效果为:
[0021]本专利技术能够捕获数据库所有数据的变化,捕获完整的变更记录,在异地容灾,数据备份等场景中得到广泛应用。
附图说明
[0022]图1为本专利技术实时捕获数据库数据变更的方法的流程图。
具体实施方式
[0023]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0024]下面结合附图对本专利技术做进一步的详细描述:
[0025]参照图1,本专利技术公开了一种实时捕获数据库数据变更的方法,包括:
[0026]根据目标数据库构建配置文件,并监控目标数据库的日志信息;
[0027]1.具体地,配置文件包括配置目标数据库的基本信息、配置Kafka的基本信息以及数据处理逻辑,目标数据库的基本信息包括数据库服务地址、数据库端口、用户名、密码及数据库名,Kafka的基本信息包括Kafka的服务地址、Kafka的端口、序列化key类、序列化value类和主题名称,数据处理逻辑包括读取数据、写入数据和处理数据。配置文件中还包括日志监控语句log

bin=mysql

bin,日志主要以二进制的形式记录了数据库的操作记录,记录包括创建表,更新表信息,删除表,表数据更新,插入新数据,删除数据,以事件形式记录,还包含语句所执行的消耗的时间。即变更数据包括创建表、更新表信息、删除表、表数据更新、插入新数据和删除数据。
[0028]添加捕捉操作日志变更数据的jar包,jar包存储有用于读取目标数据库的Flink SQL程序;
[0029]具体地,此jar包主要功能有两部分组成,一是捕捉数据库数据变更的记录日志,二是实时的把捕捉到的数据写入消息队列对应的消息主题。满足把捕捉到的数据库操作的
日志进行的序列化读取转换为一行数据,再把数据实时写入到消息队列对应的消息主题。
[0030]运行Flink SQL程序,读取日志信息中的变更数据并将数据投递至Kafka消息队列中;
[0031]消费Kafka消息队列中的数据验证目标数据库的变更数据。
[0032]具体地,消费Kafka消息队列中的数据为将Kafka消息队列中的数据转换成目标数据库的SQL语句。
[0033]本专利技术还提供一种上述实时捕获数据库数据变更系统,包括:
[0034]配置模块,用于根据目标数据库构建配置文件,并监控目标数据库的日志信息;
[0035]添加模块,用于添加捕捉操作日志变更数据的jar包,jar包存储有用于读取目标数据库的Flink SQL程序;
[0036]运行模块,用于运行Flink SQL程序,读取日志信息中的变更数据并将数据投递至Kafka消息队列中;
[0037]验证模块,用于消费Kafka消息队列中的数据验证目标数据库的变更数据。
[0038]本专利技术还提供一种设备,包括至少一个处理单元以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述的方法。
[0039]本专利技术还提供一种存储介质,其存储有可由电子设备执行的计算机程序,当本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实时捕获数据库数据变更的方法,其特征在于,包括:根据目标数据库构建配置文件,并监控所述目标数据库的日志信息;添加捕捉操作日志变更数据的jar包,所述jar包存储有用于读取所述目标数据库的Flink SQL程序;运行所述Flink SQL程序,读取所述日志信息中的变更数据并将所述数据投递至Kafka消息队列中;消费所述Kafka消息队列中的数据验证所述目标数据库的变更数据。2.根据权利要求1所述的实时捕获数据库数据变更的方法,其特征在于,所述配置文件包括配置目标数据库的基本信息、配置Kafka的基本信息以及数据处理逻辑,所述目标数据库的基本信息包括数据库服务地址、数据库端口、用户名、密码及数据库名,所述Kafka的基本信息包括Kafka的服务地址、Kafka的端口、序列化key类、序列化value类和主题名称,所述数据处理逻辑包括读取数据、写入数据和处理数据。3.根据权利要求2所述的实时捕获数据库数据变更的方法,其特征在于,所述配置文件中还包括日志监控语句log

bin=mysql

bin。4.根据权利要求3所述的实时捕获数据库数据变更的方法,其特征在于,所述变更...

【专利技术属性】
技术研发人员:相登科原攀峰陈廷梁黄亮
申请(专利权)人:浙江数新网络有限公司
类型:发明
国别省市:

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

1