CN110222119B - 一种异构数据库的数据转换同步方法、设备及存储介质 - Google Patents

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

Info

Publication number
CN110222119B
CN110222119B CN201910436427.9A CN201910436427A CN110222119B CN 110222119 B CN110222119 B CN 110222119B CN 201910436427 A CN201910436427 A CN 201910436427A CN 110222119 B CN110222119 B CN 110222119B
Authority
CN
China
Prior art keywords
data conversion
data
operation table
message packet
log message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910436427.9A
Other languages
English (en)
Other versions
CN110222119A (zh
Inventor
孙峰
余院兰
赵家威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Dream Database Co ltd
Original Assignee
Wuhan Dream Database Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Dream Database Co Ltd filed Critical Wuhan Dream Database Co Ltd
Priority to CN201910436427.9A priority Critical patent/CN110222119B/zh
Publication of CN110222119A publication Critical patent/CN110222119A/zh
Application granted granted Critical
Publication of CN110222119B publication Critical patent/CN110222119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种异构数据库的数据转换同步方法、设备及存储介质,所述方法包括:首先读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证动态库的有效性;然后在验证有效时,接收源端发送的日志消息包并解析;之后根据加载出的表列名信息判断日志消息包中的操作表是否需要进行数据转换;最后当判断需要进行数据转换时,调用动态库模块对操作表进行数据转换,并应用到目标数据库中。本发明一方面基于数据库日志解析的数据实时同步,对源端生产数据库系统的影响较小;另一方面,本发明有效满足实时的数据同步和转换处理,并且使用到外部的第三方数据转换处理接口库,具备较强的灵活性和高度的可扩展性。

Description

一种异构数据库的数据转换同步方法、设备及存储介质
技术领域
本发明涉及数据库同步技术领域,具体涉及一种异构数据库的数据转换同步方法、设备及存储介质。
背景技术
随着企业业务规模的不断发展,服务于企业应用的信息化系统所面临的负载压力也越来越大,同时企业多样化的业务类型导致对信息系统数据访问的需求日趋复杂和多样化。在信息技术的时代,现代信息化系统已成为企业运作的关键,存储着企业的核心数据资产。如何有效的对数据进行存储和管理,构建高效可用的信息化系统,保证业务的连续性,满足多样化的业务需求,最大限度的保障企业数据资产,高效服务用户是当前企业信息化系统发展过程中所需要面临的挑战。
为保障数据存储的安全,对于企业生产系统,通常需要使用相关容灾备份技术构建灾备系统。传统的基于数据库自身的备份恢复系统、服务器集群系统、磁盘阵列、OracleDataGuard等技术通常都有一定的使用场景和限制,无法完全满足企业对于信息系统不中断服务的要求。对于传统数据库备份系统,在两次数据备份之间若服务器出问题则数据会丢失,并且在数据量较大的情况下,利用备份还原通常需花费较长的时间;服务器集群系统无法达到异地备份目的,且成本昂贵;磁盘阵列无法应付操作系统或应用程序造成的宕机,并且无法立即恢复服务;Oracle DataGuard等产品是单一数据库解决方案,备机必须与主机同构,使用相同的数据库版本,整个备机数据库只能以只读方式访问,也无法实现数据整合和数据分发。
此外,在大数据时代,企业多样化的业务需求导致需要对数据进行多样化的处理,以满足各项应用需要。传统的资源信息整合通常借助于ETL等专用工具提供的数据抽取、转换和清洗等功能。ETL数据处理工具在实现机制上通常需要在生产数据库系统中创建触发器、影子表等,实现增量数据抽取。在复杂业务系统及海量数据处理上,这会对生产系统性能和稳定性产生较大影响。另一方面ETL工具往往通过计划性的任务调度实现数据转换处理,不能满足实时数据同步转换处理的需求。
因而现有技术还有待于改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种异构数据库的数据转换同步方法、设备及存储介质,以解决目前数据无法实时同步以及高效转换处理的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种异构数据库的数据转换同步方法,包括如下步骤:
读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性;
在验证外部数据转换动态库有效时,接收源端发送的日志消息包并解析;
根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换;
当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中。
优选的,所述的异构数据库的数据转换同步方法中,所述日志消息包至少包括事务ID、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。
优选的,所述的异构数据库的数据转换同步方法中,在所述读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性的步骤之前包括:
使用配置文件对需要进行数据处理的表列名及需要动态加载的外部数据处理动态库进行配置。
优选的,所述的异构数据库的数据转换同步方法中,所述根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换的步骤包括:
获取日志消息包中的表名信息;
将所述日志消息包中的表名信息与需要进行数据处理的表列名信息进行比较;
根据比较结果判断日志消息包中的操作表是否需要进行数据转换,如果比较结果一致,则判断所述操作表需要进行数据转换,否则判断所述操作表不需要进行数据转换。
优选的,所述的异构数据库的数据转换同步方法中,所述当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库的步骤包括:
当判断日志消息包中的操作表需要进行数据转换时,提取操作表中包含的列信息并构造一个数据链表;
采用回调函数方式调用外部数据转换模块对数据链表中的每个列的数据进行转换处理;
将转换处理后的列值链表应用到目标数据库中。
优选的,所述的异构数据库的数据转换同步方法中,所述将转换处理后的列值链表应用到目标数据库中的步骤包括:
将转换处理后的列值链表反向拼装成待执行的操作信息;
执行所述待执行的操作信息以使所述转换处理后的列值链表应用到目标数据库中。
优选的,所述的异构数据库的数据转换同步方法还包括:
当判断日志消息包中的操作表不需要进行数据转换时,将所述操作表拼装成待执行的操作信息并在执行所述待执行的操作信息后,将所述操作表应用到目标数据库。
优选的,所述的异构数据库的数据转换同步方法中,通过TCP/IP网络接收源端发送的日志消息包。
一种异构数据库的数据转换同步设备,其包括:处理器、存储器和通信总线;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上所述的异构数据库的数据转换同步方法中的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的异构数据库的数据转换同步方法中的步骤。
本发明提供的异构数据库的数据转换同步方法、设备及存储介质中,所述方法包括:首先读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性;然后在验证外部数据转换动态库有效时,接收源端发送的日志消息包并解析;之后根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换;最后当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中。本发明一方面基于数据库日志解析的数据实时同步,不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小;另一方面,本发明有效满足实时的数据同步和转换处理,并且使用到外部的第三方数据转换处理接口库,具备较强的灵活性和高度的可扩展性,可以不断丰富数据处理接口库的功能,实现多种需求下的数据转换处理。
附图说明
图1为本发明提供的异构数据库的数据转换同步方法的流程图。
图2为本发明提供的异构数据库的数据转换同步方法中,所述步骤S300的流程图。
图3为本发明提供的异构数据库的数据转换同步方法中,所述步骤S400的流程图。
图4为本发明提供的异构数据库的数据转换同步方法中,所述步骤S403的流程图。
图5为本发明提供的异构数据库的数据转换同步方法的一较佳实施例的流程图。
图6为本发明异构数据库的数据转换同步程序的较佳实施例的运行环境示意图。
图7为本发明安装异构数据库的数据转换同步程序的系统较佳实施例的功能模块图。
具体实施方式
鉴于现有技术中数据库数据容灾和转换处理的解决存在局限性等缺点,本发明的目的在于提供一种异构数据库的数据转换同步方法、设备及存储介质,能对异构数据库的数据进行实施同步以及高效转换处理。
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,本发明提供的异构数据库的数据转换同步方法,包括如下步骤:
S100、读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性。
具体来说,所述配置文件为XML格式的配置文件,用于对需要进行数据处理的表列名信息以及外部数据处理动态库进行配置,在一个具体实施例中,所述XML格式的配置文件如下所示:
Figure BDA0002070660340000071
换而言之,在本实施例中,使用call_back功能标签配置数据转换处理功能,其包含两个子功能标签so和table,其中so功能标签用于配置数据转换处理动态库信息,table功能标签用于配置待处理的表和它需要使用的转换模块名称。上述配置中,so标签下可以使用item子项配置多个动态库接口,配置项中使用name:path的格式来配置。table标签下也可以使用item子项配置多个待处理的表,配置项中使用name:tablename的格式来指定每个表转换时需要使用的动态库名称。目标端同步服务启动时,首先读取XML格式的配置文件,加载需要进行数据处理的表及相关表列名信息,同时加载外部数据处理动态库模块,并对模块进行有效性验证,在上述实施例中,目标端同步服务启动时读取所述call_back项配置,并加载so子项下各动态库模块,验证模块有效性。其中,so配置下各动态库模块需要包含统一格式的数据转换处理接口;例如,在一个实施例中,一个具体的C语言程序接口如下所示,以下接口支持处理一列数据。
Figure BDA0002070660340000072
其中,col_lst为输入参数,即列值链表,heap为输入参数,回调函数中需要额外申请的内存需要从该堆中申请。
也就是说,在本实施例中,数据转换的方式是通过调用外部的第三方数据处理动态库模块来进行,其具有较强的灵活性和高度的可扩展性,可根据需求实现不同种类的数据转换,而且还可以不断丰富数据处理动态库的功能。为了保证数据转换的成功率,本实施例中,在进行数据转换之前,需要验证外部数据处理动态库的有效性,在验证有效时,方可继续进行数据转换。
优选的,在所述步骤S100之前还包括:
使用配置文件对需要进行数据处理的表列名及需要动态加载的外部数据处理动态库进行配置。也就是说,在进行数据转换前,需要将每个表转换时需要使用的动态库和该表列名进行配置,在转换时,可直接通过该表列名信息调出所需的动态库,具有较强的灵活性。
S200、在验证外部数据转换动态库有效时,接收源端发送的日志消息包并解析。
具体来说,源端将需要进行数据转换的表以日志消息包的形式发送过去,故源端在进行日志消息包发送之前还需要进行日志消息包的生成,由于在异构数据库系统环境中,源端数据库所产生的增量日志信息并不能直接应用于目标端数据库,故需要通过对源端数据库的日志信息进行解析,然后生成同步服务内部特定格式的消息包,存储在发送队列中等待日志发送模块进行发送,具体实施时,源端数据同步服务的日志捕获模块基于日志捕获技术,实时捕获源端数据库系统的增量日志数据,然后将增量日志数据传递给日志分析模块进行解析,之后源端数据同步服务的日志解析模块,将增量日志解析为内部特定消息包格式,存储在发送队列中。优选的,所述日志消息包至少包括事务ID、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。目标端在进行数据同步时,把接收到的操作根据事务ID来分类。之后,源端数据同步服务的日志发送模块,基于线程同步机制,将内部发送队列中的日志消息包通过TCP/IP网络发送给目标端数据同步服务系统中,换而言之,本发明通过TCP/IP网络接收源端发送的日志消息包。优选的,为了保证数据传输的可靠性和数据完整性,源端日志发送模块采取了完备的消息应答机制,日志发送模块只有在得到目标端确认消息后才认为数据传输完成,否则将自动重新传输数据,目标端在接收到日志消息包后,对每个日志消息包进行序列编号同时需要返回确认信息。另外,在源端发送日志消息包的同时,目标端还需要验证外部数据转换动态库的有效性,有效时,才能接收源端发送的日志消息包,否则不接受源端发送的日志消息包;本发明可以不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小。
进一步来说,在接收到源端发送的日志消息包后,本发明还会对日志消息包进行解析,提取日志消息包中的事务ID、事务操作类型以及操作表信息,然后以事务为单位,将日志消息包分配给对应的日志执行线程进行执行,此外,需要说明的是,本发明在接收到一个日志消息包后即立即接受下一个日志消息包,也就是说,本发明可对多个数据同时进行转换,本发明配置有多个日志执行线程,分别用来执行不同的日志消息包,各个日志执行线程并行执行,可以有效提高数据转换的效率。
S300、根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换。
具体来说,本发明在提取出日志消息包中的表列名信息后,通过与需要进行数据处理转换的表列名信息进行比较后再判断是否需要进行数据转换,避免无效的日志转换过程,具体的判断过程请参阅图2。
请参阅图2,其为所述步骤S300的流程图,包括如下步骤:
S301、获取日志消息包中的表名信息;
S302、将所述日志消息包中的表名信息与需要进行数据处理的表列名信息进行比较;
S303、根据比较结果判断日志消息包中的操作表是否需要进行数据转换,如果比较结果一致,则判断所述操作表需要进行数据转换,否则判断所述操作表不需要进行数据转换。
换而言之,由于本发明设置了需要进行数据处理的表列名和需要动态加载的外部数据处理动态库的配置文件,所以可直接将日志消息包中的表列名信息与配置文件中需要进行数据处理的表列名信息进行比较即可判断是否需要进行数据转换,如果比较结果一致,则表明该消息包中的表需要进行数据处理,否则,则表明该消息包中的表不需要进行数据处理。
S400、当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中。
具体来说,本发明采用第三方数据处理动态库来进行数据的转换,当判断需要进行数据转换时,即通过配置文件中的配置信息来讲该数据消息包中的参数传递到外部数据处理动态库的接口中,经过处理转换后应用到目标数据库中。如下所示,其为一个简单的具体的转换处理接口示例,将列名为NAME的列值追加一个”M”字符。
Figure BDA0002070660340000111
其中,返回值TRUE表示需要同步。
请参阅图3,其为所述步骤S400的流程图,包括如下步骤:
S401、当判断日志消息包中的操作表需要进行数据转换时,提取操作表中包含的列信息并构造一个数据链表;
S402、采用回调函数方式调用外部数据转换模块对数据链表中的每个列的数据进行转换处理;
S403、将转换处理后的列值链表应用到目标数据库中。
具体的,本发明在判断需要进行数据转换后,提取操作表中的列信息,数据类型、数据值等内容,将操作表的列信息构造成数据链表的格式,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比线性表顺序表快得多,方便一一进行数据转换。
进一步来说,在构造数据链表后,本发明采用回调函数的方式来进行外部数据转换模块进行数据转换,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应,由于本发明配置有数据处理的表列名及需要动态加载的外部数据处理动态库的配置文件,所以可以直接通过回调函数的方式来调用外部数据转换模块,具体实施时,将提取的操作表信息作为参数传递到外部数据处理动态库的接口中,然后通过接口调用外部数据转换模块来进行数据处理,然后在处理后再将处理完成的列值链表应用到目标数据库中。
进一步的,请参阅图4,所述步骤S403具体包括:
S4031、将转换处理后的列值链表反向拼装成待执行的操作信息;
S4032、执行所述待执行的操作信息以使所述转换处理后的列值链表应用到目标数据库中。
具体来说,转换处理后的列值链表无法直接执行到目标数据库中,需要进行封装处理才行;故本发明还需要在数据转换完成后,将列值链表反向拼装成待执行的操作信息,然后由执行线程执行该操作信息后,即可将所述转换处理后的列值链表应用到目标数据库中。
优选的,本实施例提供的异构数据库的数据转换同步方法还包括:
当判断日志消息包中的操作表不需要进行数据转换时,将所述操作表拼装成待执行的操作信息并在执行所述待执行的操作信息后,将所述操作表应用到目标数据库。
为了更好的理解本发明,以下结合图5来对本发明的技术方案做详细说明:
步骤1、由源端日志捕获模块实时捕获源端数据库系统的增量日志数据,然后将增量日志数据传递给日志分析模块。
步骤2、由源端日志解析模块将增量日志解析为内部特定消息包格式,存储在发送队列中。
步骤3、由源端日志发送模块将内部发送队列中的日志消息包通过TCP/IP网络发送给目标端数据同步服务系统。
步骤4、目标端数据同步系统使用配置文件对需要进行数据处理的表列名及需要动态加载的外部数据处理动态库进行配置。
步骤5、目标端数据同步系统读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性,在验证有效时执行步骤6,否则重复步骤5。
步骤6、接收源端发送的日志消息包并解析。
步骤7、根据出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换,如果需要则执行步骤8,否则执行步骤9。
步骤8、调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中。
步骤9、将所述操作表拼装成待执行的操作信息并在执行所述待执行的操作信息后,将所述操作表应用到目标数据库。
本发明一方面基于数据库日志解析的数据实时同步,不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小;另一方面,本发明有效满足实时的数据同步和转换处理,并且使用到外部的第三方数据转换处理接口库,具备较强的灵活性和高度的可扩展性,可以不断丰富数据处理接口库的功能,实现多种需求下的数据转换处理。
如图6所示,基于上述异构数据库的数据转换同步方法,本发明还相应提供了一种异构数据库的数据转换同步设备,所述异构数据库的数据转换同步设备可以是移动终端、桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该异构数据库的数据转换同步设备包括处理器10、存储器20及显示器30。图6仅示出了异构数据库的数据转换同步设备的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述异构数据库的数据转换同步设备的内部存储单元,例如异构数据库的数据转换同步设备的硬盘或内存。所述存储器20在另一些实施例中也可以是所述异构数据库的数据转换同步设备的外部存储设备,例如所述异构数据库的数据转换同步设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,所述存储器20还可以既包括异构数据库的数据转换同步设备的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述异构数据库的数据转换同步设备的应用软件及各类数据,例如所述安装异构数据库的数据转换同步设备的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有异构数据库的数据转换同步程序40,该异构数据库的数据转换同步程序40可被处理器10所执行,从而实现本申请各实施例的异构数据库的数据转换同步方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述异构数据库的数据转换同步方法等。
所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述异构数据库的数据转换同步设备的信息以及用于显示可视化的用户界面。所述异构数据库的数据转换同步设备的部件10-30通过系统总线相互通信。
在一实施例中,当处理器10执行所述存储器20中异构数据库的数据转换同步程序40时实现以下步骤:
读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性;
在验证外部数据转换动态库有效时,接收源端发送的日志消息包并解析;
根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换;
当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中。
所述日志消息包至少包括事务ID、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。
进一步地,在所述异构数据库的数据转换同步设备中,在所述读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性的步骤之前包括:
使用配置文件对需要进行数据处理的表列名及需要动态加载的外部数据处理动态库进行配置。
进一步地,在所述异构数据库的数据转换同步设备中,所述根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换的步骤包括:
获取日志消息包中的表名信息;
将所述日志消息包中的表名信息与需要进行数据处理的表列名信息进行比较;
根据比较结果判断日志消息包中的操作表是否需要进行数据转换,如果比较结果一致,则判断所述操作表需要进行数据转换,否则判断所述操作表不需要进行数据转换。
进一步地,所述当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库的步骤包括:
当判断日志消息包中的操作表需要进行数据转换时,提取操作表中包含的列信息并构造一个数据链表;
采用回调函数方式调用外部数据转换模块对数据链表中的每个列的数据进行转换处理;
将转换处理后的列值链表应用到目标数据库中。
进一步地,所述将转换处理后的列值链表应用到目标数据库中的步骤包括:
将转换处理后的列值链表反向拼装成待执行的操作信息;
执行所述待执行的操作信息以使所述转换处理后的列值链表应用到目标数据库中。
进一步地,处理器10执行所述存储器20中异构数据库的数据转换同步程序40时还实现:
当判断日志消息包中的操作表不需要进行数据转换时,将所述操作表拼装成待执行的操作信息并在执行所述待执行的操作信息后,将所述操作表应用到目标数据库。
优选的,通过TCP/IP网络接收源端发送的日志消息包。
请参阅图7,其为本发明安装异构数据库的数据转换同步程序的系统较佳实施例的功能模块图。在本实施例中,安装异构数据库的数据转换同步程序的系统可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器20中,并由一个或多个处理器(本实施例为所述处理器10)所执行,以完成本发明。例如,在图7中,安装异构数据库的数据转换同步程序的系统可以被分割成配置文件读取模块21、数据接收模块22、数据转换判断模块23和数据转换模块24。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述异构数据库的数据转换同步程序在所述异构数据库的数据转换同步设备中的执行过程。以下描述将具体介绍所述模块21-24的功能。
配置文件读取模块21,用于读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性;
数据接收模块22,用于在验证外部数据转换动态库有效时,接收源端发送的日志消息包并解析;
数据转换判断模块23,用于根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换;
数据转换模块24,用于当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中。
其中,所述日志消息包至少包括事务ID、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。
进一步的,安装异构数据库的数据转换同步程序的系统还包括:
配置文件生成模块,用于使用配置文件对需要进行数据处理的表列名及需要动态加载的外部数据处理动态库进行配置。
数据转换判断模块23具体包括:
表名信息获取单元,用于获取日志消息包中的表名信息;
比较单元,用于将所述日志消息包中的表名信息与需要进行数据处理的表列名信息进行比较;
判断单元,用于根据比较结果判断日志消息包中的操作表是否需要进行数据转换,如果比较结果一致,则判断所述操作表需要进行数据转换,否则判断所述操作表不需要进行数据转换。
所述数据转换模块24具体包括:
提取单元,用于当判断日志消息包中的操作表需要进行数据转换时,提取操作表中包含的列信息并构造一个数据链表;
转换单元,用于采用回调函数方式调用外部数据转换模块对数据链表中的每个列的数据进行转换处理;
输出单元,用于将转换处理后的列值链表应用到目标数据库中。
所述输出单元具体包括:
拼装子单元,用于将转换处理后的列值链表反向拼装成待执行的操作信息;
执行子单元,用于执行所述待执行的操作信息以使所述转换处理后的列值链表应用到目标数据库中。
进一步的,安装异构数据库的数据转换同步程序的系统还包括:
直接应用模块,用于当判断日志消息包中的操作表不需要进行数据转换时,将所述操作表拼装成待执行的操作信息并在执行所述待执行的操作信息后,将所述操作表应用到目标数据库。
优选的,通过TCP/IP网络接收源端发送的日志消息包。
综上所述,本发明提供的异构数据库的数据转换同步方法、设备及存储介质中,所述方法包括:首先读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性;然后在验证外部数据转换动态库有效时,接收源端发送的日志消息包并解析;之后根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换;最后当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中。本发明一方面基于数据库日志解析的数据实时同步,不依赖于源主机上的触发器或影子表等技术手段,来获取增量数据库数据,对源端生产数据库系统的影响较小;另一方面,本发明有效满足实时的数据同步和转换处理,并且使用到外部的第三方数据转换处理接口库,具备较强的灵活性和高度的可扩展性,可以不断丰富数据处理接口库的功能,实现多种需求下的数据转换处理。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种异构数据库的数据转换同步方法,其特征在于,包括如下步骤:
读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性;
在验证外部数据转换动态库有效时,接收源端发送的日志消息包并解析;
根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换;
当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库中;
所述当判断日志消息包中的操作表需要进行数据转换时,调用外部数据处理动态库对操作表进行数据转换,并将转换后的操作表应用到目标数据库的步骤包括:
当判断日志消息包中的操作表需要进行数据转换时,提取操作表中包含的列信息并构造一个数据链表;
采用回调函数方式调用外部数据转换模块对数据链表中的每个列的数据进行转换处理;
将转换处理后的列值链表应用到目标数据库中;
所述将转换处理后的列值链表应用到目标数据库中的步骤包括:
将转换处理后的列值链表反向拼装成待执行的操作信息;
执行所述待执行的操作信息以使所述转换处理后的列值链表应用到目标数据库中。
2.根据权利要求1所述的异构数据库的数据转换同步方法,其特征在于,所述日志消息包至少包括事务ID、事务操作类型以及操作表,所述操作表至少包括表名、列信息和数据值。
3.根据权利要求2所述的异构数据库的数据转换同步方法,其特征在于,在所述读取配置文件并加载出需要进行数据处理的表列名信息以及外部数据处理动态库,并验证外部数据处理动态库的有效性的步骤之前包括:
使用配置文件对需要进行数据处理的表列名及需要动态加载的外部数据处理动态库进行配置。
4.根据权利要求3所述的异构数据库的数据转换同步方法,其特征在于,所述根据加载出的需要进行数据处理的表列名信息判断日志消息包中的操作表是否需要进行数据转换的步骤包括:
获取日志消息包中的表名信息;
将所述日志消息包中的表名信息与需要进行数据处理的表列名信息进行比较;
根据比较结果判断日志消息包中的操作表是否需要进行数据转换,如果比较结果一致,则判断所述操作表需要进行数据转换,否则判断所述操作表不需要进行数据转换。
5.根据权利要求1所述的异构数据库的数据转换同步方法,其特征在于,还包括:
当判断日志消息包中的操作表不需要进行数据转换时,将所述操作表拼装成待执行的操作信息并在执行所述待执行的操作信息后,将所述操作表应用到目标数据库。
6.根据权利要求1-5任意一项所述的异构数据库的数据转换同步方法,其特征在于,通过TCP/IP网络接收源端发送的日志消息包。
7.一种异构数据库的数据转换同步设备,其特征在于,包括:处理器、存储器和通信总线;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-6任意一项所述的异构数据库的数据转换同步方法中的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-6任意一项所述的异构数据库的数据转换同步方法中的步骤。
CN201910436427.9A 2019-05-23 2019-05-23 一种异构数据库的数据转换同步方法、设备及存储介质 Active CN110222119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910436427.9A CN110222119B (zh) 2019-05-23 2019-05-23 一种异构数据库的数据转换同步方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910436427.9A CN110222119B (zh) 2019-05-23 2019-05-23 一种异构数据库的数据转换同步方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110222119A CN110222119A (zh) 2019-09-10
CN110222119B true CN110222119B (zh) 2021-08-31

Family

ID=67818053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910436427.9A Active CN110222119B (zh) 2019-05-23 2019-05-23 一种异构数据库的数据转换同步方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110222119B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177239B (zh) * 2019-12-13 2023-10-10 航天信息股份有限公司 一种基于hdp大数据集群的统一日志处理方法及系统
CN111159020B (zh) * 2019-12-20 2021-11-05 武汉达梦数据库股份有限公司 一种应用于同步软件测试的方法和装置
CN111654498B (zh) * 2020-06-03 2022-11-22 深圳市信锐网科技术有限公司 设备添加方法及物联网平台
CN112948477A (zh) * 2021-03-31 2021-06-11 北京金山云网络技术有限公司 数据下档方法和装置、电子设备和存储介质
CN117763051B (zh) * 2024-02-22 2024-04-26 广州睿帆科技有限公司 一种可扩展的cdc方式达梦数据库同步系统及其应用

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
CN102915377A (zh) * 2012-11-14 2013-02-06 深圳市宏电技术股份有限公司 数据库转换或同步方法及系统
CN105205117A (zh) * 2015-09-09 2015-12-30 郑州悉知信息科技股份有限公司 一种数据表迁移方法和装置
CN107357848A (zh) * 2017-06-27 2017-11-17 中国电子科技集团公司第二十八研究所 基于驱动封装的数据库同步方法
CN108399256A (zh) * 2018-03-06 2018-08-14 北京慧萌信安软件技术有限公司 异构数据库内容同步方法、装置及中间件
CN109271448A (zh) * 2018-09-25 2019-01-25 武汉达梦数据库有限公司 基于数据库为平台的数据同步系统及方法
CN109656934A (zh) * 2018-11-19 2019-04-19 武汉达梦数据库有限公司 基于日志解析的源端Oracle数据库DDL同步方法及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043765B2 (en) * 2011-11-09 2015-05-26 Microsoft Technology Licensing, Llc Simultaneously targeting multiple homogeneous and heterogeneous runtime environments
CN102508919B (zh) * 2011-11-18 2014-10-29 从兴技术有限公司 数据处理方法及系统
CN103051729A (zh) * 2013-01-14 2013-04-17 南京轨道交通系统工程有限公司 一种异构数据同步实现方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
CN102915377A (zh) * 2012-11-14 2013-02-06 深圳市宏电技术股份有限公司 数据库转换或同步方法及系统
CN105205117A (zh) * 2015-09-09 2015-12-30 郑州悉知信息科技股份有限公司 一种数据表迁移方法和装置
CN107357848A (zh) * 2017-06-27 2017-11-17 中国电子科技集团公司第二十八研究所 基于驱动封装的数据库同步方法
CN108399256A (zh) * 2018-03-06 2018-08-14 北京慧萌信安软件技术有限公司 异构数据库内容同步方法、装置及中间件
CN109271448A (zh) * 2018-09-25 2019-01-25 武汉达梦数据库有限公司 基于数据库为平台的数据同步系统及方法
CN109656934A (zh) * 2018-11-19 2019-04-19 武汉达梦数据库有限公司 基于日志解析的源端Oracle数据库DDL同步方法及设备

Also Published As

Publication number Publication date
CN110222119A (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
CN110222119B (zh) 一种异构数据库的数据转换同步方法、设备及存储介质
CN112463144B (zh) 分布式存储的命令行服务方法、系统、终端及存储介质
CN107171825B (zh) 一种终端的重复日志过滤方法
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
CN108446171B (zh) 电子装置、分布式系统执行任务分配方法及存储介质
CN110427422B (zh) 数据同步异常时数据一致性校验方法、设备及存储介质
US20180150530A1 (en) Method, Apparatus, Computing Device and Storage Medium for Analyzing and Processing Data
CN113590386B (zh) 数据的容灾恢复方法、系统、终端设备及计算机存储介质
CN104182683A (zh) 一种联机事务的监控方法、装置及系统
CN110222117A (zh) 一种异构数据库的数据转换同步方法、设备及存储介质
CN115794437A (zh) 微服务的调用方法、装置、计算机设备及存储介质
CN116248526A (zh) 部署容器平台的方法、装置及电子设备
CN112511636B (zh) 数据传输系统、方法、装置、计算机设备及存储介质
CN115203304A (zh) 一种基于定时轮询的批量数据导入方法及相关设备
CN114615325A (zh) 消息推送方法、装置、计算机设备及存储介质
CN113779117A (zh) 一种数据监控方法、装置、存储介质和电子设备
CN116302847B (zh) 异常信息的动态采集方法、装置、计算机设备及介质
CN112181900B (zh) 一种服务器集群中的数据处理方法与装置
US10303531B2 (en) Console application through web service
US20150039750A1 (en) Method of linking to and monitoring machining devices through a cloud service
CN117056052A (zh) 一种定时任务处理方法、装置、设备及其存储介质
CN117938619A (zh) 异常节点处理方法、系统、计算设备及存储介质
CN115914257A (zh) 基于联邦学习的状态交互方法、系统、设备及存储介质
CN115422012A (zh) 一种数据处理方法、装置、电子设备及计算机可读介质
CN111596896A (zh) 适配不同语言的接口调用方法及装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co.,Ltd.

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Sun Feng

Inventor after: Yu Yuanlan

Inventor after: Zhao Jiawei

Inventor before: Fu Quan

Inventor before: Sun Feng

Inventor before: Yu Yuanlan

Inventor before: Zhao Jiawei

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220909

Address after: 430073 16-19 / F, building C3, future science and technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Patentee after: Wuhan dream database Co.,Ltd.

Patentee after: HUAZHONG University OF SCIENCE AND TECHNOLOGY

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Patentee before: Wuhan dream database Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230725

Address after: 16-19/F, Building C3, Future Science and Technology Building, No. 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan City, Hubei Province, 430206

Patentee after: Wuhan dream database Co.,Ltd.

Address before: 430073 16-19 / F, building C3, future science and technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Patentee before: Wuhan dream database Co.,Ltd.

Patentee before: HUAZHONG University OF SCIENCE AND TECHNOLOGY