数据处理方法、装置、电子设备及计算机可读存储介质与流程

文档序号:11407485阅读:244来源:国知局
数据处理方法、装置、电子设备及计算机可读存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。



背景技术:

现有的关系型数据库管理系统mysql,在万维网(worldwideweb,简称web)应用方面是最好的关系数据库管理系统(relationaldatabasemanagementsystem,简称rdbms)的应用软件。目前,关系型数据库管理系统mysql的复制方案主要包括两种:第一种主从同步方案;该方案高效稳定,在两台主数据库服务器与从数据库服务器网络联通的情况下,关系型数据库管理系统mysql数据库中的数据可以通过主数据库服务器与从数据库服务器同步的方式完成数据复制;第二种为结构化查询语言(structuredquerylanguage,简称sql)数据处理方案;该方案通过sql语句完成数据查询和数据插入,从而实现源数据库服务器与目标数据库服务器的数据查询及复制。

然而,在数据库数据处理过程中,发明人发现现有技术中至少存在如下技术问题:

现有技术的中通过sql语句实现源数据库服务器与目标数据库服务器的数据查询及复制过程需要耗费的时间较长,无法满足用户的数据处理要求。



技术实现要素:

有鉴于此,本发明实施例提供一种数据处理方法、装置、电子设备及计算机可读存储介质,能够加快数据处理速度以解决现有的数据查询及复制的过程需要耗费的时间较长的问题。

第一方面,本发明实施例提供一种数据处理方法,包括:

获取预置的分布式发布订阅消息系统服务器的配置文件;

获取源数据库的变动消息;

根据所述配置文件,对所述源数据库的变动消息进行处理,并将处理后的源数据库的变动消息发送给目标数据库。

结合第一方面,在第一方面的第一种实施方式中,所述配置文件包括:待处理的变动消息的结构,变化格式及线程池中的线程数量;其中,所述根据所述配置文件,对所述源数据库的变动消息进行处理,并将处理后的源数据库的变动消息发送给目标数据库的步骤,包括:

获取所述源数据库的变动消息类型;

根据所述源数据库的变动消息类型,确定数据的处理方式;

根据所述待处理的变动消息的结构,变化格式,线程池中的线程数量以及所述确定的数据的处理方式,将所述源数据库的变动消息进行数据转化,并将转化后的源数据库的变动消息发送给目标数据库。

结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述变动消息类型包括:插入、更新或删除;所述数据的处理方式包括:缓存系统的任务队列处理方式和高并发数据输入输出处理方式;所述根据所述源数据库的变动消息类型,确定数据的处理方式的步骤为:

所述源数据库的变动消息类型为插入或更新,确定数据的处理方式为所述高并发数据输入输出处理方式;

所述源数据库的变动消息类型为删除,确定数据的处理方式为所述缓存系统的任务队列处理方式。

结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述将转化后的源数据库的变动消息发送给目标数据库的步骤,包括:

通过关系型数据库管理系统的下载数据命令,将所述转化后的源数据库的变动消息发送给目标数据库。

第二方面,本发明实施例提供一种数据处理装置,包括:

配置单元,用于获取预置的分布式发布订阅消息系统服务器的配置文件;

消息获取单元,用于获取源数据库的变动消息;

消息处理单元,用于根据所述配置文件,对所述源数据库的变动消息进行处理,并将处理后的源数据库的变动消息发送给目标数据库;

其中,所述配置文件包括:待处理的变动消息的结构,变化格式及线程池中的线程数量。

结合第二方面,在第二方面的第一种实施方式中,所述配置文件包括:待处理的变动消息的结构,变化格式及线程池中的线程数量;

所述消息处理单元,包括:

消息类型获取子单元,用于获取所述源数据库的变动消息类型;

数据处理方式确定子单元,用于根据所述源数据库的变动消息类型,确定数据的处理方式;

数据处理子单元,用于根据所述待处理的变动消息的结构,变化格式,线程池中的线程数量以及所述确定的数据的处理方式,将所述源数据库的变动消息进行数据转化,并将转化后的源数据库的变动消息发送给目标数据库。

结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述变动消息类型包括:插入、更新或删除;所述数据的处理方式包括:缓存系统的任务队列处理方式和高并发数据输入输出处理方式;

所述数据处理方式确定子单元具体用于:

所述源数据库的变动消息类型为插入或更新,确定数据的处理方式为所述高并发数据输入输出处理方式;

所述源数据库的变动消息类型为删除,确定数据的处理方式为所述缓存系统的任务队列处理方式。

结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述数据处理子单元在将转化后的源数据库的变动消息发送给目标数据库时,通过关系型数据库管理系统的下载数据命令,将所述转化后的源数据库的变动消息发送给目标数据库。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其中,所述处理器执行所述程序时实现如上任一项所述的数据处理方法。

第四方面,本发明实施例提供一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序可被处理器执行如上任一项所述的数据处理方法。

本发明实施例提供的一种数据处理方法、装置、电子设备及计算机可读存储介质,通过获取预置的分布式发布订阅消息系统服务器的配置文件,使得所述分布式发布订阅消息系统服务器可以根据配置文件对源数据库的变动消息进行数据转化,并按照源数据库的变动消息类型进行数据处理,从而将处理后的源数据库的变动消息发送给目标数据库;采用所述分布式发布订阅消息系统服务器不但可以缩短目标数据库服务器获取源数据库服务器的源数据库的变动消息的时间,还可以灵活的根据配置文件,对所述源数据库的变动消息进行数据转化。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的实施例的数据处理方法的流程图;

图2为本发明的实施例的数据处理方法实施例二的流程图;

图3为本发明数据处理方法实施例三的数据处理系统示意图;

图4为本发明数据处理装置实施例一的结构示意图;

图5为本发明数据处理装置实施例二的结构示意图;

图6为本发明电子设备一个实施例的结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明的实施例数据处理方法的示意图,应用于分布式发布订阅消息系统服务器,如图1所示,本实施例的方法可以包括:

步骤101、获取预置的分布式发布订阅消息系统服务器的配置文件;

本实施例中,所述分布式发布订阅消息系统服务器的配置文件可以根据实际的需求进行设置,对于获取到的源数据库的变动消息进行结构、格式等自定义转换。例如:对所述源数据库的变动消息进行字段筛选、新字段生成、多表合并、按字段进行分表操作等等。

步骤102、获取源数据库的变动消息;

本实施例中,如果在源数据库服务器捕获到自身数据发生变化,则通过源数据库的变动消息发送给分布式发布订阅消息系统服务器。所述分布式发布订阅消息系统服务器获取到源数据库的变动消息,则会进一步对所述源数据库的变动消息进行处理。

步骤103、根据所述配置文件,对所述源数据库的变动消息进行处理,并将处理后的源数据库的变动消息发送给目标数据库。

本实施例中,所述分布式发布订阅消息系统服务器根据预先设置的配置文件,对所述获取到的源数据库的变动消息进行处理;例如:根据配置文件中的结构、格式等自定义转换,对所述源数据库的变动消息进行信息识别,信息格式转化以及信息处理,然后将处理后的信息重新封装,发送给目标数据库。

本实施例,通过获取预置的分布式发布订阅消息系统服务器的配置文件,使得所述分布式发布订阅消息系统服务器可以根据配置文件对源数据库的变动消息进行数据转化,并按照源数据库的变动消息类型进行数据处理,从而将处理后的源数据库的变动消息发送给目标数据库;采用所述分布式发布订阅消息系统服务器不但可以缩短目标数据库服务器获取源数据库服务器的源数据库的变动消息的时间,还可以灵活的根据配置文件,对所述源数据库的变动消息进行数据转化。

图2为本发明数据处理方法实施例二的流程图,如图2所示,本实施例的方法可以包括:

步骤201、获取预置的分布式发布订阅消息系统服务器的配置文件;

本实施例中,所述配置文件包括:待处理的变动消息的结构,变化格式及线程池中的线程数量;预置配置文件的过程和上述方法实施例的步骤101类似,此处不再赘述。

步骤202、获取源数据库的变动消息;

本实施例中,所述获取源数据库的变动消息的过程和上述方法实施例的步骤102类似,此处不再赘述。

步骤203、获取所述源数据库的变动消息类型;

本实施例中,所述获取的源数据库的变动消息类型是所述分布式发布订阅消息系统服务器在获取到所述源数据库的变动消息后对该消息的解析,通过获取所述源数据库的变动消息类型,所述分布式发布订阅消息系统服务器才可以根据其自身的配置文件决定后续该消息的处理方式以及数据转化。

步骤204、根据所述源数据库的变动消息类型,确定数据的处理方式;

本实施例中,所述变动消息类型包括:插入、更新或删除;所述数据的处理方式包括:缓存系统的任务队列处理方式和高并发数据输入输出处理方式;所述源数据库的变动消息类型为插入或更新,确定数据的处理方式为所述高并发数据输入输出处理方式;所述源数据库的变动消息类型为删除,确定数据的处理方式为所述缓存系统的任务队列处理方式。

步骤205、根据所述待处理的变动消息的结构,变化格式,线程池中的线程数量以及所述确定的数据的处理方式,将所述源数据库的变动消息进行数据转化,并将转化后的源数据库的变动消息发送给目标数据库;

本实施例中,所述转化后的源数据库的变动消息的类型包括:替换或删除;具体的将就是,在源数据库服务器中源数据库的变动消息的类型包括:插入、更新或删除;所述分布式发布订阅消息系统服务器根据配置文件的设置,将所述源数据库的变动消息进行数据转化,将源数据库服务器中消息类型为插入或者更新转化为替换类型,删除类型保持不变;所述转化后的源数据库的变动消息发送给目标数据库通过关系型数据库管理系统的下载数据命令实现。

本实施例,通过分布式发布订阅消息系统服务器将源数据库服务器获取所述源数据库的变动消息,并按照其配置文件将获取的源数据库的变动消息进行数据识别,确定消息类型,进而确定数据的处理方式。由于本发明技术方案会数据的处理方式采用的分布式发布订阅消息系统服务器,且对不同的消息类型采用不同的处理方式,缩短了数据的处理时间,从而大大提高了消息的处理效率;本发明技术方案还可以通过配置文件的设置,例如通过配置文件设置待处理的变动消息的结构,变化格式及线程池中的线程数量,可以使得分布式发布订阅消息系统服务器可以根据源数据库服务器为其发送的源数据库的变动消息配置线程数量;还可以根据待处理的变动消息的结构,变化格式对获取的源数据库的变动消息进行数据处理,完成源数据库的变动消息的数据结构的转化,格式转化。

下面采用一个具体的实施例,对图1~图2中任一个所示方法实施例的技术方案进行详细说明。

结合图3所示,以下为本发明数据处理方法实施例三的流程说明,本实施例的适用场景可以是源数据库服务器为开源框架debezium并且所述源数据库服务器获得用户授权,分布式发布订阅消息系统服务器kafka,其中,所述源数据服务器可以为n个,目标数据库可以为m个;结合图3所示,具体的数据处理方法可以是:

步骤301、获取预置的分布式发布订阅消息系统服务器的配置文件;所述配置文件包括:待处理的变动消息的结构,变化格式及线程池中的线程数量。

本实施例中,所述待处理的变动消息的结构用于解析识别源数据库的变动消息;所述变化格式用于将解析出来的源数据库的变动消息按照所述变化格式要求进行消息转化,例如:将源数据库服务器的变动消息的插入类型和更新类型,转化为替换类型;源数据库服务器的变动消息删除类型不变;所述线程池中的线程数量,则会与根据所述变动消息的源数据库服务器相互匹配,确定对应的线程数量来处理所述变动消息。

步骤302、所述分布式发布订阅消息系统服务器采用java版kafkaconsumer获取源数据库的变动消息;所述变动消息类型包括:插入、更新或删除。

步骤303、所述分布式发布订阅消息系统服务器根据所述配置文件,对所述源数据库的变动消息进行处理,并将处理后的源数据库的变动消息发送给目标数据库;

本实施例中,所述获取的源数据库的变动消息类型可以通过所述分布式发布订阅消息系统服务器在获取到所述源数据库的变动消息后对该消息的解析获取到;通过获取所述源数据库的变动消息类型,所述分布式发布订阅消息系统服务器才可以根据其自身的配置文件决定后续该消息的处理方式以及数据转化。

例如:所述源数据库的变动消息解析出来的消息类型为插入或者更新,则根据分布式发布订阅消息系统服务器的配置文件,所述分布式发布订阅消息系统服务器将解析出来的消息转化为替换类型,确定该变动消息的数据处理方式为高并发数据输入输出处理方式javanewio,并根据源数据库的服务器为其匹配对应的线程池中的线程数量,对所述变动消息进行处理;如果所述源数据库的变动消息解析出来的消息类型为删除,则根据分布式发布订阅消息系统服务器的配置文件,所述分布式发布订阅消息系统服务器将解析出来的消息确定为删除类型,确定该变动消息的数据处理方式为所述缓存系统redis的任务队列处理方式,并根据源数据库的服务器为其匹配对应的线程池中的线程数量,对所述变动消息进行处理。所述转化后的源数据库的变动消息发送给目标数据库通过关系型数据库管理系统mysql的下载数据命令loaddata实现。

以上所述替换类型的数据可以灵活的按照配置文件对数据进行处理,比如字段筛选、新字段生成(通过计算)、多表合并、按字段进行分表操作等等,实现对源数据库进行结构、格式等自定义转换。

以上所述删除类型的数据实时插入到redis的任务队列中,然后再启动一组线程池去异步消费redis任务队列,将目标数据库中的数据删除掉。

图4为本发明数据处理装置实施例一的结构示意图,如图4所示,本实施例的装置可以包括:配置单元401,消息获取单元402和消息处理单元403;其中,所述配置单元401,用于获取预置的分布式发布订阅消息系统服务器的配置文件;所述消息获取单元402,用于获取源数据库的变动消息;所述消息处理单元403,用于根据所述配置文件,对所述源数据库的变动消息进行处理,并将处理后的源数据库的变动消息发送给目标数据库。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图5为本发明数据处理装置实施例二的结构示意图,如图5所示,本实施例的装置在图4所示装置结构的基础上,进一步地,所述消息处理单元403可以包括:

消息类型获取子单元501、数据处理方式确定子单元502以及数据处理子单元503,其中,所述消息类型获取子单元501,用于获取所述源数据库的变动消息类型;所述变动消息类型包括:插入、更新或删除;所述数据处理方式确定子单元502,用于根据所述源数据库的变动消息类型,确定数据的处理方式;所述数据处理子单元503,用于根据所述待处理的变动消息的结构,变化格式,线程池中的线程数量以及所述确定的数据的处理方式,将所述源数据库的变动消息进行数据转化,并将转化后的源数据库的变动消息发送给目标数据库。

需要说明的是,所述变动消息类型包括:插入、更新或删除;所述数据的处理方式包括:缓存系统的任务队列处理方式和高并发数据输入输出处理方式;

所述数据处理方式确定子单元具体用于:

所述源数据库的变动消息类型为插入或更新,确定数据的处理方式为所述高并发数据输入输出处理方式;

所述源数据库的变动消息类型为删除,确定数据的处理方式为所述缓存系统的任务队列处理方式。

还需要说明的是,所述数据处理子单元在将转化后的源数据库的变动消息发送给目标数据库时,通过关系型数据库管理系统的下载数据命令,将所述转化后的源数据库的变动消息发送给目标数据库。

本实施例的装置,可以用于执行图1至图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。

在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本发明实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其中,所述处理器执行所述程序时实现如上任一项所述的数据处理方法。

图6为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图6所示,所述电子设备可以包括:存储器601、处理器602及存储在所述存储器601上并可在所述处理器602上运行的计算机程序;其中,所述处理器执行所述程序时实现如上所述的数据处理方法。

所述处理器602对上述步骤的具体执行过程以及所述处理器602通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。

该电子设备以多种形式存在,包括但不限于:

(1)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(2)其他具有数据交互功能的电子设备。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本发明还提供一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序可被处理器执行如上所述的数据处理方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1