CN116166739A - 用于实时同步数据的方法、装置、电子设备及存储介质 - Google Patents
用于实时同步数据的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116166739A CN116166739A CN202111407866.0A CN202111407866A CN116166739A CN 116166739 A CN116166739 A CN 116166739A CN 202111407866 A CN202111407866 A CN 202111407866A CN 116166739 A CN116166739 A CN 116166739A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- current
- log file
- new log
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 230000001360 synchronised effect Effects 0.000 claims abstract description 6
- 230000006399 behavior Effects 0.000 claims description 13
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 230000000295 complement effect Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 5
- 230000002194 synthesizing effect Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数字信息传输技术领域,公开一种用于实时同步数据的方法。该用于实时同步数据的方法包括:在监听到源数据库产生新日志文件的情况下,通过解析新日志文件获得当前增量数据;反查源数据库,获得产生新日志文件之前的源数据库的字段信息;根据字段信息和当前增量数据,确定在新日志文件包含的操作行为之后的当前数据库数据;将当前数据库数据发送至目标数据库,使目标数据库与源数据库实现同步。采用该用于实时同步数据的方法可提供数据同步的可靠性。本申请还公开一种用于实时同步数据的装置、电子设备及存储介质。
Description
技术领域
本申请涉及数字信息传输技术领域,例如涉及一种用于实时同步数据的方法、装置、电子设备及存储介质。
背景技术
目前,越来越多的企业依赖于数据库等基础设施,数据传输频繁的应用企业的日常工作场景中。在数据的单次传输过程中,数据由源端流向目标端,例如,在信息发布平台向公司员工推送广告时,需要用到每个员工的工作邮箱,一般情况下不会重新录入员工邮箱数据,而是从人力部门的数据库的人员信息表中拉取数据,此时通常称人力的数据库为源端,信息发布平台的数据库为目标端。
传统的数据传输通常使用基于java数据库连接(Java Database Connectivity,JDBC)来进行数据泵取,在进行泵取的过程中连接源数据库,通过开发接口的方式调取数据,封装后发送至目标端,通过设置定时任务,以一定的时间规律传输数据。这样,在每次传输数据时,均需要调用源数据库资源,对源数据库资源的占用较多。
对此,一些现有技术中可获得对应源数据库的日志文件,日志文件中记录有当前时刻之前的规定时长内对源数据库的各操作行为和操作信息,根据获得的日志文件记录的每一条记录对应的操作行为和操作信息,对目标数据库进行对应的操作。进而数据同步过程对源数据库资源的占用。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
仅依据日志文件中的操作行为以及操作信息实现源数据库与目标数据库的数据同步,可靠性较差。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于实时同步数据的方法、装置及电子设备,以提高源数据库与目标数据库进行数据同步的可靠性。
在一些实施例中,用于实时同步数据的方法包括:在监听到源数据库产生新日志文件的情况下,通过解析所述新日志文件获得当前增量数据;反查所述源数据库,获得产生所述新日志文件之前的所述源数据库的字段信息;根据所述字段信息和所述当前增量数据,确定在所述新日志文件包含的操作行为之后的当前数据库数据;将所述当前数据库数据发送至目标数据库,使所述目标数据库与所述源数据库实现同步。
可选地,根据所述字段信息和所述当前增量数据,确定在所述新日志文件包含的操作行为之后的当前数据库数据,包括:将所述字段信息中的第一类字段信息与当前增量数据进行一一对应;利用所述字段信息中的第二类字段信息及所述第二类字段信息的值进行字段补全;将一一对应后的数据以及补全后的数据确定为所述当前数据库数据。
可选地,所述第二类字段信息至少包括主键信息和名称信息。
可选地,将所述当前数据库数据发送至目标数据库,包括:按照预设数据交换格式,将所述当前数据库数据包装为字符串;将所述字符串发送至消息队列中间件,由所述消息队列中间件将所述字符串推送至所述目标数据库。
可选地,按照预设数据交换格式,将所述源数据库的字段信息以及所述当前数据库数据包装为字符串,包括:依次将对应的主键信息、所述字段信息及所述当前数据库数据包装为字符串。
可选地,通过解析所述新日志文件获得当前增量数据,包括:模拟从数据库的交互协议向所述源数据库发送dump请求;在所述源数据库接收到所述dump请求后,获得所述源数据库发送的与所述新日志文件相对应的二进制日志;解析所述二进制日志,获得所述当前增量数据。
可选地,在解析所述新日志文件获得当前增量数据之前,用于实时同步数据的方法还包括:获得所述源数据库的新日志数据;将所述新日志数据合成新日志文件;保存所述新日志文件。
在一些实施例中,用于实时同步数据的装置包括:解析模块、查询模块、确定模块和发送模块,其中,所述解析模块被配置为在监听到源数据库产生新日志文件的情况下,通过解析所述新日志文件获得当前增量数据;所述查询模块被配置为反查所述源数据库,获得产生所述新日志文件之前的历史数据;所述确定模块被配置为根据所述历史数据和所述当前增量数据,确定所述新日志文件包含的操作行为之后的当前数据库数据;所述发送模块,被配置为将所述当前数据库数据发送至目标数据库,使所述目标数据库与所述源数据库实现同步。
在一些实施例中,电子设备包括处理器和存储有程序指令的存储器,所述处理器被配置为在执行所述程序指令时,执行前述实施例提供的用于实时同步数据的方法。
在一些实施例中,存储介质存储有程序指令,所述程序指令在运行时,执行前述实施例提供的用于实时同步数据的方法。
本公开实施例提供的用于实时同步数据的方法、装置、电子设备及存储介质,可以实现以下技术效果:
在监听到源数据库产生日志文件的情况下,解析日志文件以获得当前增量数据,同时通过反查数据库,获得产生该日志文件之前的历史数据,最后再依据历史数据以及当前增量数据确定当前数据库数据,这样确定的当前数据库数据与历史数据、当前增量数据相适配,比仅依据日志文件中的操作信息确定的数据,更加准确、完善,提高了源数据库与目标数据库进行数据同步的可靠性。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或一个以上实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件视为类似的元件,并且其中:
图1是本公开实施例提供的一种源数据库与目标数据库的数据传输模型的示意图;
图2是本公开实施例提供的一种用于实时同步数据的方法的示意图;
图3是本公开实施例提供的一种用于实时同步数据的方法的示意图;
图4是本公开实施例提供的一种用于实时同步数据的方法的示意图;
图5是本申请实施例提供的一种用于实时同步数据的装置的示意图;
图6是本申请实施例提供的一种用于实时同步数据的装置的示意图;
图7是本申请实施例提供的一种用于实时同步数据的装置的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或一个以上实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
图1是本公开实施例提供的一种源数据库与目标数据库的数据传输模型的示意图。
结合图1所示,在源数据库产生新日志文件之后,抽取该新日志文件,并对新日志文件进行解析、封装,并发送至消息队列中间件,再由消息队列中间将数据推送至目标数据库。
再具体地,结合图2所示,用于实时同步数据的方法包括:
S201、在监听到源数据库产生新日志文件的情况下,通过解析新日志文件获得当前增量数据。
这里可以采用canal技术解析新日志文件获得当前增量数据。例如,通过解析新日志文件获得当前增量数据,可包括:模拟从数据库的交互协议向源数据库发送dump请求;在源数据库接收到dump请求后,获得源数据库发送的与新日志文件相对应的二进制日志;解析二进制日志,获得当前增量数据。
在该解析新日志文件获得当前增量数据的过程中,源数据库作为master,从数据库作为slave。基于交互协议,从数据库向源数据库发送dump请求后,源数据库向从数据库发送与新日志文件对应的二进制日志;从数据库在接收到该二进制日志之后,即可解析该二进制日志,并获得当前增量数据。
在canal的传统应用中,在获得该当前增量数据之后,即将该增量数据发送至目标数据库。而在本申请提供的实施例中,在获得该当前增量数据后,对该当前增量数据进行相关处理,以提高数据的可靠性,再将处理后的数据发送至目标数据库。
为便于数据恢复、问题诊断以及问题追踪,在源数据库中的数据发生变更后,将操作记录以及操作数据均存储为日志文件。相比于在规定时长后读取日志文件,对源数据库进行监听,每当监听到产生新日志文件后,表示此时源数据库中的数据发生了变更,在这个时候解析日志文件并获得当前增量数据,这样可提高同步数据的实时性。
S202、反查源数据库,获得产生新日志文件之前的源数据库的字段信息。
查询数据库可分为正向查询和反向查询(反查),有外键或多对多字段的一方查询相关联的一方叫做正向查询,否则叫反向查询。
在源数据库与目标数据库同步的过程中,相比于对源数据库进行数据泵取所占用的源数据的资源,反查源数据库所占用的源数据库的资源大大降低,有利于降低对源数据库资源的浪费。
源数据库的字段信息可包括第一类字段信息以及第二类字段信息,其中,第一类字段信息与当前增量数据相对应,第二类字段信息可对字段进行补全,使目标数据库中的数据与源数据中的数据格式一致。
具体地,第一类字段信息可以是与当前增量数据中的字段信息相对应的字段信息,第一类字段信息可以是“员工编号(Identity Document,ID)”、“员工邮箱”等字段;第二类字段信息为与第一类字段信息中的每个字段信息相对应的字段信息,第二类字段信息至少包括主键信息和名称信息,例如,字段“员工ID”对应的主键信息(即,字段“员工编号”是否为主键),字段“员工邮箱”对应的主键信息(即,字段“员工编号”是否为主键)。这样,便于使目标数据库中的数据与源数据库中的主键保持一致,提高了数据同步的可靠性。
在不同应用场景中,第一类字段信息可存在不同,例如在前述由信息发布平台向公司员工推送广告的场景中,第一类字段信息可以包括“员工ID”;在文件存储数据库中,第一类字段信息可包括“文件名称”。本领域技术人员可根据应用场景的不同,将适合场景的字段确定为第一类字段信息,这里不再一一赘述。
进一步地,反查源数据库,获得产生新日志文件之前的源数据库的字段信息,可包括:
反查源数据库,获得源数据库的第一类字段信息、第二类字段信息及其对应的值。
通过上述方式反查源数据库,所涉及的内容量少,占用的源数据库的资源少,降低了对源数据库资源的浪费。
S203、根据字段信息和当前增量数据,确定在新日志文件包含的操作行为之后的当前数据库数据。
例如,可按照如下方式确定当前数据库数据:将字段信息中的第一类字段信息与当前增量数据进行一一对应;利用字段信息中的第二类字段信息及第二类字段信息的值进行字段补全;将一一对应后的数据和补全后的数据确定为当前数据库数据。
通过上述技术方案确定当前数据库数据,有利于使目标数据库中的数据与源数据库中的数据在格式上保持一致,提高了数据同步的准确性。
第二类字段信息的值与源数据库对应,或者,与当前增量数据对应。
具体地,第二类字段信息还可以包括“序号(index)”、“空值(null)”、“变更(update)”等。
这里以源数据库中增加了“id:28、file_name:Sciense、file_size:600M”为例进行示例性说明。在源数据库中增加了上述信息之后,产生新日志文件,新日志文件记录有:增加了“id:28、file_name:Sciense、file_size:600M”,在解析新日志文件后,获得的当前增量数据为:“id:28、file_name:Sciense、file_size:600M”,反查源数据库中获得源数据库的字段信息,字段信息中第一类字段信息为“id”、“file_name”以及“file_size”,第二类字段信息及其值可包括“id、key:true”、“file_name、key:false”以及“file_size,key:false”,这种情况下,字段“id”为主键;第二类字段信息及其值还可包括:“id、index:0”、“file_name、index:1”以及“file_size,index:2”;在上述第二类字段信息中,第二类字段信息的值与源数据库对应。
或者,第二类字段信息及其值还可包括:“id、null:false”、“file_name、null:false”以及“file_size,null:false”,由于当前增量数据中包括字段“id”、“file_name”以及“file_size”的值,故,第二类字段信息中的三个第一类字段信息对应的均为“null:false”;在上述第二类字段信息中,第二类字段信息的值与当前增量数据对应。
进一步地,第一类字段信息与当前增量数据一一对应,包括:第一类字段信息包括当前增量数据对应的每个字段。例如,在第一类字段信息为“id”、“file_name”以及“file_size”的情况下,如果当前增量数据对应的字段包括“id”、“file_name”以及“file_size”,则确定第一类字段信息与当前增量数据一一对应;如果当前增量数据对应的字段包括“id”以及“file_name”,则确定第一类字段与当前增量数据一一对应;如果当前增量数据对应的字段包括“id”以及“file_names”,由于第一类字段信息中不包括“file_names”,则确定第一类字段信息与当前增量数据不一一对应。
在确定第一类字段信息与当前增量数据一一对应的情况下,再利用字段信息中的第二类字段信息及第二类字段信息的值进行字段补全;将一一对应后的数据和补全后的数据确定为当前数据库数据。
S204、将当前数据库数据发送至目标数据库,使目标数据库与源数据库实现同步。
可选地,将当前数据库数据发送至目标数据库,包括:按照预设数据交换格式,将当前数据库数据包装为字符串;将字符串发送至消息队列中间件,由消息队列中间件将字符串推送至目标数据库。
在目标数据库接收到消息队列中间件推送的字符串之后,依据该字符串进行更新。这样,实现了源数据库与目标数据库的更新。
可选地,按照预设数据交换格式,将源数据库的字段信息以及当前数据库数据包装为字符串,包括:依次将相对应的主键信息、字段信息及当前数据库数据包装为字符串。这样,可以使目标数据库与源数据库的数据格式、顺序一致,提高了数据同步的可靠性。
在一些应用场景中,以源数据库中增加了“id:28、file_name:Sciense、file_size:600M”为例进行示例性,包装后的字符串可包括如下格式:
在一些应用场景中,字符串还包括操作类型,例如,字符串中还包括"eventType":"INSERT",表示操作类型为insert。
在监听到源数据库产生日志文件的情况下,解析日志文件以获得当前增量数据,同时通过反查数据库,获得产生该日志文件之前的历史数据,最后再依据历史数据以及当前增量数据确定当前数据库数据,这样确定的当前数据库数据与历史数据、当前增量数据相适配,比仅依据日志文件中的操作信息确定的数据,更加准确、完善,提高了源数据库与目标数据库进行数据同步的可靠性。
图3是本公开实施例提供的一种用于实时同步数据的方法的示意图。
结合图3所示,用于实时同步数据的方法包括:
S301、监听源数据库,如果监听到源数据库产生新日志文件,则执行S302;否则继续执行S301。
S302、通过解析新日志文件获得当前增量数据。
S303、反查源数据库,获得产生新日志文件之前的源数据库的字段信息。
S304、根据字段信息和当前增量数据,确定在新日志文件包含的操作行为之后的当前数据库数据。
S305、将当前数据库数据发送至目标数据库,使目标数据库与源数据库实现同步。
图4是本公开实施例提供的一种用于实时同步数据的方法的示意图。
结合图4所示,实时同步数据的方法包括:
S401、监听源数据库。
如果源数据库未产生新日志数据,则继续监听源数据库;如果监听到源数据库产生新日志数据,则执行S402。
S402、获得源数据库的新日志数据。
S403、将新日志数据合成新日志文件。
S404、保存新日志文件。
S405、通过解析新日志文件获得当前增量数据。
S406、反查源数据库,获得产生新日志文件之前的源数据库的字段信息。
S407、根据字段信息和当前增量数据,确定在新日志文件包含的操作行为之后的当前数据库数据。
S408、将当前数据库数据发送至目标数据库,使目标数据库与源数据库实现同步。
图5是本申请实施例提供的一种用于实时同步数据的装置的示意图。
结合图5所示,用于实时同步数据的装置包括解析模块51、查询模块52、确定模块53和发送模块54。解析模块51被配置为在监听到源数据库产生新日志文件的情况下,通过解析新日志文件获得当前增量数据;查询模块52被配置为反查源数据库,获得产生新日志文件之前的源数据库的字段信息;确定模块53被配置为根据字段信息和当前增量数据,确定新日志文件包含的操作行为之后的当前数据库数据;发送模块54被配置为将当前数据库数据发送至目标数据库,使目标数据库与源数据库实现同步。
可选地,确定模块53,包括对应单元、补全单元和确定单元;对应单元被配置为将字段信息中的第一类字段信息与当前增量数据进行一一对应;补全单元被配置为利用字段信息中的第二类字段信息及第二类字段信息的值进行字段补全;确定单元被配置为将一一对应后的数据以及补全后的数据确定为当前数据库数据。
可选地,第二类字段信息至少包括主键信息和名称信息。
可选地,发送模块54包括包装单元和第一发送单元;包装单元被配置为按照预设数据交换格式,将当前数据库数据包装为字符串;第一发送单元被配置为将字符串发送至消息队列中间件,由消息队列中间件将字符串推送至目标数据库。
可选地,包装单元被具体配置为:依次将对应的主键信息、字段信息及当前数据库数据包装为字符串。
可选地,解析模块51包括第二发送单元、获得单元和解析单元;第二发送单元被配置为模拟从数据库的交互协议向源数据库发送dump请求;获得单元被配置为在源数据库接收到dump请求后,获得源数据库发送的与新日志文件相对应的二进制日志;解析单元被配置为解析二进制日志,获得当前增量数据。
图6是本公开实施例提供的一种用于实时同步数据的装置的示意图。
结合图6所示,用于实时同步数据的装置还包括获得模块55、合成模块56和保存模块57;获得模块55被配置为获得所示源数据库的新日志数据;合成模块56被配置为将新日志数据合成新日志文件;保存模块57被配置为保存新日志文件。
在一些实施例中,电子设备包括处理器和存储有程序指令的存储器,处理器被配置为在执行程序指令时,执行前述实施例提供的用于实时同步数据的方法。
如图7所示,本公开实施例提供的一种电子设备的示意图。
结合图7所示,电子设备包括:
处理器(processor)71和存储器(memory)72,还可以包括通信接口(Communication Interface)73和总线74。其中,处理器71、通信接口73、存储器72可以通过总线74完成相互间的通信。通信接口73可以用于信息传输。处理器71可以调用存储器72中的逻辑指令,以执行前述实施例提供的用于实时提供数据的方法。
此外,上述的存储器72中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器72作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器72可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例提供了一种电子设备,包含前述实施例提供的用于实时同步数据的装置。
本公开实施例提供了一种存储介质,存储有计算机可执行指令,计算机可执行指令设置为执行前述实施例提供的用于实时同步数据的方法。
本公开实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行前述实施例提供的用于实时同步数据的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或一个以上指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例中方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机读取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或一个以上用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于实时同步数据的方法,其特征在于,包括:
在监听到源数据库产生新日志文件的情况下,通过解析所述新日志文件获得当前增量数据;
反查所述源数据库,获得产生所述新日志文件之前的所述源数据库的字段信息;
根据所述字段信息和所述当前增量数据,确定在所述新日志文件包含的操作行为之后的当前数据库数据;
将所述当前数据库数据发送至目标数据库,使所述目标数据库与所述源数据库实现同步。
2.根据权利要求1所述的方法,根据所述字段信息和所述当前增量数据,确定在所述新日志文件包含的操作行为之后的当前数据库数据,包括:
将所述字段信息中的第一类字段信息与当前增量数据进行一一对应;
利用所述字段信息中的第二类字段信息及所述第二类字段信息的值进行字段补全;
将一一对应后的数据以及补全后的数据确定为所述当前数据库数据。
3.根据权利要求2所述的方法,其特征在于,所述第二类字段信息至少包括主键信息和名称信息。
4.根据权利要求1所述的方法,其特征在于,将所述当前数据库数据发送至目标数据库,包括:
按照预设数据交换格式,将所述当前数据库数据包装为字符串;
将所述字符串发送至消息队列中间件,由所述消息队列中间件将所述字符串推送至所述目标数据库。
5.根据权利要求2所述的方法,其特征在于,按照预设数据交换格式,将所述源数据库的字段信息以及所述当前数据库数据包装为字符串,包括:
依次将对应的主键信息、所述字段信息及所述当前数据库数据包装为字符串。
6.根据权利要求1所述的方法,其特征在于,通过解析所述新日志文件获得当前增量数据,包括:
模拟从数据库的交互协议向所述源数据库发送dump请求;
在所述源数据库接收到所述dump请求后,获得所述源数据库发送的与所述新日志文件相对应的二进制日志;
解析所述二进制日志,获得所述当前增量数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,在解析所述新日志文件获得当前增量数据之前,还包括:
获得所述源数据库的新日志数据;
将所述新日志数据合成新日志文件;
保存所述新日志文件。
8.一种用于实时同步数据的装置,其特征在于,包括:
解析模块,被配置为在监听到源数据库产生新日志文件的情况下,通过解析所述新日志文件获得当前增量数据;
查询模块,被配置为反查所述源数据库,获得产生所述新日志文件之前的历史数据;
确定模块,被配置为根据所述历史数据和所述当前增量数据,确定所述新日志文件包含的操作行为之后的当前数据库数据;
发送模块,被配置为将所述当前数据库数据发送至目标数据库,使所述目标数据库与所述源数据库实现同步。
9.一种电子设备,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行如权利要求1至7任一项所述的用于实时同步数据的方法。
10.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至7中任一项所述的用于实时同步数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111407866.0A CN116166739A (zh) | 2021-11-24 | 2021-11-24 | 用于实时同步数据的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111407866.0A CN116166739A (zh) | 2021-11-24 | 2021-11-24 | 用于实时同步数据的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166739A true CN116166739A (zh) | 2023-05-26 |
Family
ID=86415015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111407866.0A Pending CN116166739A (zh) | 2021-11-24 | 2021-11-24 | 用于实时同步数据的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166739A (zh) |
-
2021
- 2021-11-24 CN CN202111407866.0A patent/CN116166739A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933630B (zh) | 数据库数据实时同步方法及设备 | |
CN107818120B (zh) | 基于大数据的数据处理方法和装置 | |
CN111694840A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN110162526B (zh) | 一种块链式账本中数据记录的查询方法、装置及设备 | |
CN105447046A (zh) | 一种分布式***数据一致性处理方法、装置和*** | |
CN112559475B (zh) | 数据实时捕获和传输方法及*** | |
CN114911830B (zh) | 基于时序数据库的索引缓存方法、装置、设备及存储介质 | |
CN114647698A (zh) | 数据同步方法、装置及计算机存储介质 | |
CN114328566A (zh) | 关系图谱的更新方法、装置、介质、设备及生成方法 | |
CN111177244A (zh) | 面向多个异构数据库的数据关联分析方法 | |
CN113672692B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN117892355B (zh) | 一种基于隐私保护的多方数据联合分析方法及*** | |
CN115858488A (zh) | 基于数据治理的平行迁移方法、装置及可读介质 | |
CN112416557B (zh) | 调用关系的确定方法和装置、存储介质及电子装置 | |
CN111209266B (zh) | 一种基于Redis数据库的审计方法、装置及电子设备 | |
CN112699183A (zh) | 数据处理方法、***、可读存储介质及计算机设备 | |
CN116932649A (zh) | 数据库同步方法、数据库同步设备以及可读存储介质 | |
CN114221883B (zh) | 消息测试方法、装置、服务器及存储介质 | |
CN116166739A (zh) | 用于实时同步数据的方法、装置、电子设备及存储介质 | |
CN115858322A (zh) | 日志数据处理方法、装置和计算机设备 | |
CN115757642A (zh) | 一种基于归档日志文件的数据同步方法及装置 | |
CN115344633A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112346672B (zh) | 日志染色方法、装置、设备及存储介质 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
CN115221125A (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 |