一种异构数据库的数据转换同步方法、设备及存储介质与流程

文档序号:18642575发布日期:2019-09-11 23:41阅读:162来源:国知局
本发明涉及数据库同步
技术领域
:,具体涉及一种异构数据库的数据转换同步方法、设备及存储介质。
背景技术
::随着企业业务规模的不断发展,服务于企业应用的信息化系统所面临的负载压力也越来越大,同时企业多样化的业务类型导致对信息系统数据访问的需求日趋复杂和多样化。在信息技术的时代,现代信息化系统已成为企业运作的关键,存储着企业的核心数据资产。如何有效的对数据进行存储和管理,构建高效可用的信息化系统,保证业务的连续性,满足多样化的业务需求,最大限度的保障企业数据资产,高效服务用户是当前企业信息化系统发展过程中所需要面临的挑战。为保障数据存储的安全,对于企业生产系统,通常需要使用相关容灾备份技术构建灾备系统。传统的基于数据库自身的备份恢复系统、服务器集群系统、磁盘阵列、oracledataguard等技术通常都有一定的使用场景和限制,无法完全满足企业对于信息系统不中断服务的要求。对于传统数据库备份系统,在两次数据备份之间若服务器出问题则数据会丢失,并且在数据量较大的情况下,利用备份还原通常需花费较长的时间;服务器集群系统无法达到异地备份目的,且成本昂贵;磁盘阵列无法应付操作系统或应用程序造成的宕机,并且无法立即恢复服务;oracledataguard等产品是单一数据库解决方案,备机必须与主机同构,使用相同的数据库版本,整个备机数据库只能以只读方式访问,也无法实现数据整合和数据分发。此外,在大数据时代,企业多样化的业务需求导致需要对数据进行多样化的处理,以满足各项应用需要。传统的资源信息整合通常借助于etl等专用工具提供的数据抽取、转换和清洗等功能。etl数据处理工具在实现机制上通常需要在生产数据库系统中创建触发器、影子表等,实现增量数据抽取。在复杂业务系统及海量数据处理上,这会对生产系统性能和稳定性产生较大影响。另一方面etl工具往往通过计划性的任务调度实现数据转换处理,不能满足实时数据同步转换处理的需求。因而现有技术还有待于改进和提高。技术实现要素:鉴于上述现有技术的不足之处,本发明的目的在于提供一种异构数据库的数据转换同步方法、设备及存储介质,以解决目前数据无法实时同步以及高效转换处理的问题。为了达到上述目的,本发明采取了以下技术方案:一种异构数据库的数据转换同步方法,包括如下步骤:创建转换函数,其中,所述转换函数用于定义需要转换的列和替换该列的表达式;读取配置文件并加载出需要进行数据处理的表名以及列信息,并验证配置的有效性;在验证配置有效时,接收源端发送的日志消息包并解析;根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换;当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中。优选的,所述的异构数据库的数据转换同步方法中,所述日志消息包至少包括事务id、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。优选的,所述的异构数据库的数据转换同步方法中,在所述创建转换函数的步骤之后,在读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性的步骤之前包括:使用配置文件对需要进行数据处理的表名、需要转换的列以及替换该列的表达式进行配置。优选的,所述的异构数据库的数据转换同步方法中,所述根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换的步骤包括:提取日志消息包中的操作表,比较所述操作表的表名和加载出的需要进行数据处理的表名;在所述操作表的表名与加载出的需要进行数据处理的表名一致时,将所述操作表的列信息与需要进行数据处理的列信息进行比较;根据比较结果判断操作表中的列信息中是否存在待转换的列,如果比较结果一致,则判断所述操作表中存在待转换的列,否则判断所述操作表不存在待转换的列。优选的,所述的异构数据库的数据转换同步方法中,所述当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中的步骤包括:当判断操作表中存在待转换的列时,调用该列的转换函数;根据该列的转换函数对该列进行表达式的替换;将替换后的列信息组装成相应的sql语句并应用到目标数据库中。优选的,所述的异构数据库的数据转换同步方法中,所述根据该列的转换函数对该列进行表达式的替换的步骤具体包括:根据该转换列的转换函数替换该列的表达式,并在该列的转换函数的参数中存在对其它列的引用时,复制引用列的列值并将其填充到替换的表达式中。优选的,所述的异构数据库的数据转换同步方法还包括:当判断日志消息包中的操作表的表名不需要进行数据转换或者操作表中不存在待转换的列时,将所述操作表中的列信息组装成相应的sql语句并应用到目标数据库。优选的,所述的异构数据库的数据转换同步方法中,通过tcp/ip网络接收源端发送的日志消息包。一种异构数据库的数据转换同步设备,其包括:处理器、存储器和通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述通信总线实现处理器和存储器之间的连接通信;所述处理器执行所述计算机可读程序时实现如上所述的异构数据库的数据转换同步方法中的步骤。一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的异构数据库的数据转换同步方法中的步骤。本发明提供的异构数据库的数据转换同步方法、设备及存储介质中,所述方法包括:首先创建转换函数,然后读取配置文件并加载出需要进行数据处理的表名以及列信息,并验证配置的有效性;之后在验证配置有效时,接收源端发送的日志消息包并解析;之后根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换;最后当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中。本发明一方面基于数据库日志解析的数据实时同步,不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小;另一方面,本发明有效满足实时的数据同步和转换处理,并且使用内置的函数来计算和转换数据,不但效率高效,而且具备较强的灵活性和高度的可扩展性,可以不断丰富函数对数据处理的功能,实现多种需求下的数据转换处理。附图说明图1为本发明提供的异构数据库的数据转换同步方法的流程图。图2为本发明提供的异构数据库的数据转换同步方法中,所述步骤s400的流程图。图3为本发明提供的异构数据库的数据转换同步方法中,所述步骤s500的流程图。图4为本发明提供的异构数据库的数据转换同步方法的一较佳实施例的流程图。图5为本发明异构数据库的数据转换同步程序的较佳实施例的运行环境示意图。图6为本发明安装异构数据库的数据转换同步程序的系统较佳实施例的功能模块图。具体实施方式鉴于现有技术中数据库数据容灾和转换处理的解决存在局限性等缺点,本发明的目的在于提供一种异构数据库的数据转换同步方法、设备及存储介质,能对异构数据库的数据进行实施同步以及高效转换处理。为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。请参阅图1,本发明提供的异构数据库的数据转换同步方法,包括如下步骤:s100、创建转换函数,其中,所述转换函数用于定义需要转换的列和替换该列的表达式。具体来说,本发明通过自定义函数来定义需要替换的操作表中需要替换的列以及替换该列的表达式,在需要进行数据转换时,数据转换的结果由替换函数自动生成,例如将c1列在同步时转换为c1和c2列之和,由于本发明中的转换函数可以由用户自定义,故本发明在针对不同需求时,可以采用不同的替换函数来进行数据转换处理,而且在后续发展时还可通过增加转换函数的数量来不断丰富数据处理的功能,具有较强的灵活性和高度的可扩展性,需要说明的是,本发明中的转换函数可以为一个或多个,每一个转换函数定义一个需要转换的列和替换该列的表达式,避免在数据转换处理过程中发生数据转换紊乱的现象,在一个具体实施例中,一个具体的转换函数如下所示:上述函数实现了传入参数c1和c2值的相加功能,并返回相加之后的结果。s200、读取配置文件并加载出需要进行数据处理的表名以及列信息,并验证配置的有效性。具体来说,所述配置文件为xml格式的配置文件,用于对需要进行数据处理的表名以及列名进行配置,在一个具体实施例中,所述xml格式的配置文件如下所示:换而言之,在本实施例中,使用table功能标签配置数据转换处理功能,其中schema标签表示转换的表所属模式;name标签则是指定要转换表的表名;col功能标签用于配置数据转换的列信息以及替换该列的表达式。目标端同步服务启动时,首先读取xml格式的配置文件,加载需要进行数据处理的表信息,并对配置进行有效性验证,配置有效性的验证是指通过表名可以找到该表名下需要转换的列信息,通过该列信息可以找到该列的替换表达式,如果在验证时,可以实现则表示验证通过,否则表示验证失败。本发明为了保证数据转换的成功率,在进行数据转换之前,需要验证配置的有效性,在验证有效时,方可继续进行数据转换。优选的,在所述步骤s100之后,在所述步骤s200之前还包括:使用配置文件对需要进行数据处理的表名、需要转换的列以及替换该列的表达式进行配置。也就是说,在进行数据转换前,需要将每个表转换时的替换表达式和该列信息进行配置,在转换时,可直接通过该列信息调出该列的替换表达式,具有较强的灵活性。s300、在验证配置有效时,接收源端发送的日志消息包并解析。具体来说,源端将需要进行数据转换的表以日志消息包的形式发送过去,故源端在进行日志消息包发送之前还需要进行日志消息包的生成,由于在异构数据库系统环境中,源端数据库所产生的增量日志信息并不能直接应用于目标端数据库,故需要通过对源端数据库的日志信息进行解析,然后生成同步服务内部特定格式的消息包,存储在发送队列中等待日志发送模块进行发送,具体实施时,源端数据同步服务的日志捕获模块基于日志捕获技术,实时捕获源端数据库系统的增量日志数据,然后将增量日志数据传递给日志分析模块进行解析,之后源端数据同步服务的日志解析模块,将增量日志解析为内部特定消息包格式,存储在发送队列中。优选的,所述日志消息包至少包括事务id、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。目标端在进行数据同步时,把接收到的操作根据事务id来分类。之后,源端数据同步服务的日志发送模块,基于线程同步机制,将内部发送队列中的日志消息包通过tcp/ip网络发送给目标端数据同步服务系统中,换而言之,本发明通过tcp/ip网络接收源端发送的日志消息包。优选的,为了保证数据传输的可靠性和数据完整性,源端日志发送模块采取了完备的消息应答机制,日志发送模块只有在得到目标端确认消息后才认为数据传输完成,否则将自动重新传输数据,目标端在接收到日志消息包后,对每个日志消息包进行序列编号同时需要返回确认信息。另外,在源端发送日志消息包的同时,目标端还需要验证外部数据转换动态库的有效性,有效时,才能接收源端发送的日志消息包,否则不接受源端发送的日志消息包;本发明可以不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小。进一步来说,在接收到源端发送的日志消息包后,本发明还会对日志消息包进行解析,提取日志消息包中的事务id、事务操作类型以及操作表信息,然后以事务为单位,将日志消息包分配给对应的日志执行线程进行执行,此外,需要说明的是,本发明在接收到一个日志消息包后即立即接受下一个日志消息包,也就是说,本发明可对多个数据同时进行转换,本发明配置有多个日志执行线程,分别用来执行不同的日志消息包,各个日志执行线程并行执行,可以有效提高数据转换的效率。s400、根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换。具体来说,本发明在提取出日志消息包中的表名以及列信息后,通过与需要进行数据处理转换的表名以及列信息进行比较后再判断是否需要进行数据转换,避免无效的日志转换过程,具体的判断过程请参阅图2。请参阅图2,其为所述步骤s400的流程图,包括如下步骤:s401、提取日志消息包中的操作表,比较所述操作表的表名和加载出的需要进行数据处理的表名;s402、在所述操作表的表名与加载出的需要进行数据处理的表名一致时,将所述操作表的列信息与需要进行数据处理的列信息进行比较;s403、根据比较结果判断操作表中的列信息中是否存在待转换的列,如果比较结果一致,则判断所述操作表中存在待转换的列,否则判断所述操作表不存在待转换的列。换而言之,本发明在进行操作表的是否需要数据转换处理判断时,需要经过两个步骤,首先需要比较表名信息,判断该操作表的表名是否是需要进行数据转换的表,如果不是,则直接不用验证该操作表的列信息,可直接进行入库操作,如果是,则需要再次验证该操作表的列信息,具体实施时,提取该操作表的列信息,每一个操作表均包含多个列信息,将该操作表的各个列信息与需要进行数据转换的列信息进行比较,一一判断每个列信息是否是需要进行数据转换的列,如果该列的列名是配置的需要进行数据转换的列名,则表示该列需要进行数据转换,否则表名该列不需要进行数据转换,可直接执行入库操作。s500、当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中。具体来说,本发明通过直接调用转换函数的方式来对操作表进行数据转换,具体转换时,对操作表中不须进行数据转换的列忽略处理,将操作表的需要进行数据转换的列进行单独数据处理转换,具体的数据转换过程请参阅图3。请参阅图3,其为所述步骤s500的流程图,包括如下步骤:s501、当判断操作表中存在待转换的列时,调用该列的转换函数;s502、根据该列的转换函数对该列进行表达式的替换;s503、将替换后的列信息组装成相应的sql语句并应用到目标数据库中。具体的,目标端同步服务接收到包含操作表(t表)的提交操作以后,将该事务交由执行部分进行入库,具体是组装成sql语句来进行入库操作,sql语句的类型一般包括insert语句、update语句和delete语句,故入库操作包括insert操作、update操作和delete操作,例如,insert操作的入库sql将会被转换为insertintot(c1,c2)values(fun_c1_add_c2(:1,:2),:3);c1列值部分将会被配置的函数表达式来替换;update操作的入库sql将会被转换为updatetsetc1=fun_c1_add_c2(:1,:2),c2=:3wherec1=fun_c1_add_c2(:4,:5)andc2=c6,从sql中可以看到,c1列的新值和where条件中的旧值都被函数表达式替换;delete操作的入库sql将会被转换为deletefromtwherec1=fun_c1_add_c2(:1,:2)andc2=:3,sql中的c1列的值被函数表达式替换。进一步的,请参阅图4,所述步骤s503具体包括:根据该转换列的转换函数替换该列的表达式,并在该列的转换函数的参数中存在对其它列的引用时,复制引用列的列值并将其填充到替换的表达式中。具体来说,由于在进行转换函数定义时,某些数据类型的转换可能会用到其余列的列值,如果此时,直接在转换函数中将这些具体的列值写明,无疑会增加函数的复杂性,而且可能还需要多个函数来进行定义,故本发明在对转换函数的参数中存在对其它列的引用的情况,还复制引用列的列值并将其填充在表达式中,以达到数据转换的结果,而且避免了用户需要定义复杂的转换函数,减少系统的负载。优选的,本实施例提供的异构数据库的数据转换同步方法还包括:当判断日志消息包中的操作表的表名不需要进行数据转换或者操作表中不存在待转换的列时,将所述操作表中的列信息组装成相应的sql语句并应用到目标数据库。为了更好的理解本发明,以下结合图5来对本发明的技术方案做详细说明:步骤1、由源端日志捕获模块实时捕获源端数据库系统的增量日志数据,然后将增量日志数据传递给日志分析模块。步骤2、由源端日志解析模块将增量日志解析为内部特定消息包格式,存储在发送队列中。步骤3、由源端日志发送模块将内部发送队列中的日志消息包通过tcp/ip网络发送给目标端数据同步服务系统。步骤4、目标端数据同步系统使用配置文件对需要进行数据处理的表名、需要转换的列以及替换该列的表达式进行配置。步骤5、目标端数据同步系统读取配置文件并加载出需要进行数据处理的表名以及列信息,并验证配置的有效性,在验证有效时执行步骤6,否则重复步骤5。步骤6、接收源端发送的日志消息包并解析。步骤7、根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表的表名是否是需要进行数据转换的表名,如果是则执行步骤8,否则执行步骤10。步骤8、判断所述操作表的列信息是否是需要进行数据处理的列信息,如果是则执行步骤9,否则执行步骤10。步骤9、调用该列的转换函数,并根据该列的转换函数对该列进行表达式的替换后组装成相应的sql语句并应用到目标数据库中。步骤10、将日志消息包中的列信息组装成相应的sql语句并应用到目标数据库中。本发明一方面基于数据库日志解析的数据实时同步,不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小;另一方面,本发明有效满足实时的数据同步和转换处理,并且使用内置的函数来计算和转换数据,不但效率高效,而且具备较强的灵活性和高度的可扩展性,可以不断丰富函数对数据处理的功能,实现多种需求下的数据转换处理。如图5所示,基于上述异构数据库的数据转换同步方法,本发明还相应提供了一种异构数据库的数据转换同步设备,所述异构数据库的数据转换同步设备可以是移动终端、桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该异构数据库的数据转换同步设备包括处理器10、存储器20及显示器30。图5仅示出了异构数据库的数据转换同步设备的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。所述存储器20在一些实施例中可以是所述异构数据库的数据转换同步设备的内部存储单元,例如异构数据库的数据转换同步设备的硬盘或内存。所述存储器20在另一些实施例中也可以是所述异构数据库的数据转换同步设备的外部存储设备,例如所述异构数据库的数据转换同步设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器20还可以既包括异构数据库的数据转换同步设备的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述异构数据库的数据转换同步设备的应用软件及各类数据,例如所述安装异构数据库的数据转换同步设备的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有异构数据库的数据转换同步程序40,该异构数据库的数据转换同步程序40可被处理器10所执行,从而实现本申请各实施例的异构数据库的数据转换同步方法。所述处理器10在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述异构数据库的数据转换同步方法等。所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器30用于显示在所述异构数据库的数据转换同步设备的信息以及用于显示可视化的用户界面。所述异构数据库的数据转换同步设备的部件10-30通过系统总线相互通信。在一实施例中,当处理器10执行所述存储器20中异构数据库的数据转换同步程序40时实现以下步骤:创建转换函数,其中,所述转换函数用于定义需要转换的列和替换该列的表达式;读取配置文件并加载出需要进行数据处理的表名以及列信息,并验证配置的有效性;在验证配置有效时,接收源端发送的日志消息包并解析;根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换;当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中。所述日志消息包至少包括事务id、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。进一步地,在所述创建转换函数的步骤之后,在读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性的步骤之前包括:使用配置文件对需要进行数据处理的表名、需要转换的列以及替换该列的表达式进行配置。进一步地,在所述异构数据库的数据转换同步设备中,所述根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换的步骤包括:提取日志消息包中的操作表,比较所述操作表的表名和加载出的需要进行数据处理的表名;在所述操作表的表名与加载出的需要进行数据处理的表名一致时,将所述操作表的列信息与需要进行数据处理的列信息进行比较;根据比较结果判断操作表中的列信息中是否存在待转换的列,如果比较结果一致,则判断所述操作表中存在待转换的列,否则判断所述操作表不存在待转换的列。进一步地,所述当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中的步骤包括:当判断操作表中存在待转换的列时,调用该列的转换函数;根据该列的转换函数对该列进行表达式的替换;将替换后的列信息组装成相应的sql语句并应用到目标数据库中。进一步地,所述根据该列的转换函数对该列进行表达式的替换的步骤具体包括:根据该转换列的转换函数替换该列的表达式,并在该列的转换函数的参数中存在对其它列的引用时,复制引用列的列值并将其填充到替换的表达式中。进一步地,处理器10执行所述存储器20中异构数据库的数据转换同步程序40时还实现:当判断日志消息包中的操作表的表名不需要进行数据转换或者操作表中不存在待转换的列时,将所述操作表中的列信息组装成相应的sql语句并应用到目标数据库。优选的,通过tcp/ip网络接收源端发送的日志消息包。请参阅图6,其为本发明安装异构数据库的数据转换同步程序的系统较佳实施例的功能模块图。在本实施例中,安装异构数据库的数据转换同步程序的系统可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器20中,并由一个或多个处理器(本实施例为所述处理器10)所执行,以完成本发明。例如,在图6中,安装异构数据库的数据转换同步程序的系统可以被分割成函数创建模块21、配置文件读取模块22、数据接收模块23、数据转换判断模块24和数据转换模块25。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述异构数据库的数据转换同步程序在所述异构数据库的数据转换同步设备中的执行过程。以下描述将具体介绍所述模块21-25的功能。函数创建模块21,用于创建转换函数,其中,所述转换函数用于定义需要转换的列和替换该列的表达式;配置文件读取模块22,用于读取配置文件并加载出需要进行数据处理的表名以及列信息,并验证配置的有效性;数据接收模块23,用于在验证配置有效时,接收源端发送的日志消息包并解析;数据转换判断模块24,用于根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换;数据转换模块25,用于当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中。其中,所述日志消息包至少包括事务id、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。进一步的,安装异构数据库的数据转换同步程序的系统还包括:配置文件生成模块,用于使用配置文件对需要进行数据处理的表名、需要转换的列以及替换该列的表达式进行配置。数据转换判断模块24具体包括:表名信息比较单元,用于提取日志消息包中的操作表,比较所述操作表的表名和加载出的需要进行数据处理的表名;列信息比较单元,用于在所述操作表的表名与加载出的需要进行数据处理的表名一致时,将所述操作表的列信息与需要进行数据处理的列信息进行比较;判断单元,用于根据比较结果判断操作表中的列信息中是否存在待转换的列,如果比较结果一致,则判断所述操作表中存在待转换的列,否则判断所述操作表不存在待转换的列。所述数据转换模块25具体包括:函数调用单元,用于当判断操作表中存在待转换的列时,调用该列的转换函数;替换单元,用于根据该列的转换函数对该列进行表达式的替换;输出单元,用于将替换后的列信息组装成相应的sql语句并应用到目标数据库中。所述替换单元具体用于:根据该转换列的转换函数替换该列的表达式,并在该列的转换函数的参数中存在对其它列的引用时,复制引用列的列值并将其填充到替换的表达式中。进一步的,安装异构数据库的数据转换同步程序的系统还包括:直接应用模块,用于当判断日志消息包中的操作表的表名不需要进行数据转换或者操作表中不存在待转换的列时,将所述操作表中的列信息组装成相应的sql语句并应用到目标数据库。优选的,通过tcp/ip网络接收源端发送的日志消息包。综上所述,本发明提供的异构数据库的数据转换同步方法、设备及存储介质中,所述方法包括:首先创建转换函数,然后读取配置文件并加载出需要进行数据处理的表名以及列信息,并验证配置的有效性;之后在验证配置有效时,接收源端发送的日志消息包并解析;之后根据加载出的需要进行数据处理的表名以及列信息判断日志消息包中的操作表是否需要进行数据转换;最后当判断日志消息包中的操作表需要进行数据转换时,根据转换函数对该操作表进行表达式的替换处理,并将处理后的操作表应用到目标数据库中。本发明一方面基于数据库日志解析的数据实时同步,不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小;另一方面,本发明有效满足实时的数据同步和转换处理,并且使用内置的函数来计算和转换数据,不但效率高效,而且具备较强的灵活性和高度的可扩展性,可以不断丰富函数对数据处理的功能,实现多种需求下的数据转换处理。当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1