一种数据同步的方法、设备及介质与流程

文档序号:26851681发布日期:2021-10-09 02:10阅读:65来源:国知局
一种数据同步的方法、设备及介质与流程

1.本技术涉及计算机数据科学技术领域,具体涉及一种数据同步的方法、设备及介质。


背景技术:

2.同步是计算机科学中一个很重要的概念,同步一般指不同数据获得一致的过程,一般来说,数据同步是若干个数据实体获得一致的过程,计算机科学和工程中主要的信息载体为数据库的表,同步一般在不同数据库或相同数据库的不同表之间完成,通过同步可以让数据保持一致,并得到最新数据。
3.基于某些业务的特殊性与数据安全因素的考虑,数据库中不能保存以及恢复已删除的数据,当出现数据误删时,无法通过相应的技术手段在不破坏数据库其他数据稳定性的前提下进行数据恢复。


技术实现要素:

4.为了解决上述问题,即为了解决源数据库中不能保存和恢复已删除的数据,本技术提出了一种数据同步的方法、设备及介质,包括:
5.第一方面,本技术提供了一种数据同步的方法,包括:确定源数据库的源数据表,以及确定目标数据库的目标数据表、临时存放数据表;根据所述源数据表中的筛选字段,确定存在最新数据;根据预先建立的所述源数据库到所述目标数据库之间的数据映射,将所述最新数据同步至所述目标数据表以及临时存放数据表;根据所述目标数据表和所述临时存放数据表,确定存在差异数据,并将所述差异数据的差异类型标注至所述目标数据表,所述差异类型至少包括:删除型、修改型。
6.在一个示例中,根据所述源数据表中的筛选字段,确定存在最新数据,具体包括:确定所述源数据表中的源数据对应的筛选字段,并根据所述筛选字段确定所述源数据的数据创建时间;根据所述数据创建时间,确定存在最新数据。
7.在一个示例中,根据预先建立的所述源数据库到所述目标数据库之间的数据映射,将所述最新数据同步至所述目标数据表以及临时存放数据表,具体包括:确定预先建立的所述源数据库到所述目标数据库之间的数据映射;将所述最新数据增量同步至所述目标数据表,并将所述源数据全量同步至所述临时存放数据表。
8.在一个示例中,根据所述目标数据表和所述临时存放数据表,确定存在差异数据,并将所述差异数据的差异类型标注至所述目标数据表,具体包括:确定所述目标数据表中全部目标数据的筛选字段,以及确定所述临时存放数据表中全部临时数据的筛选字段;通过将所述全部目标数据的筛选字段以及所述全部临时数据的筛选字段进行比对,确定存在差异数据;确定预先设置在所述目标数据库中的数据差异检索表,并将所述差异数据的数据编号存储在所述数据差异检索表中;通过所述差异数据的筛选字段,确定所述差异数据的差异类型,并将所述差异类型标注至所述目标数据表,所述差异类型至少包括:删除型、
修改型。
9.在一个示例中,通过所述差异数据的筛选字段,确定所述差异数据的差异类型,并将所述差异类型标注至所述目标数据表,具体包括:通过所述差异数据的筛选字段,确定所述差异数据的数据修改时间以及数据编号;针对多个差异数据中的任意一个,确定该差异数据对应的数据编号是否存在在所述临时存放数据表中;若存在,则确定该差异数据的数据修改时间与所述目标数据表中的对应数据是否一致,若一致,则在所述数据差异检索表中删除该差异数据的数据编号,若不一致,则确定该差异数据的差异类型为修改型,并将该差异数据的差异类型标注至目标数据表对应的数据中;若不存在,则确定该差异数据的差异类型为删除型,并将该差异数据的差异类型标注至目标数据表对应的数据中。
10.在一个示例中,通过所述差异数据的筛选字段,确定所述差异数据的差异类型,并将所述差异类型标注至所述目标数据表之后,所述方法还包括:将所述临时存放数据表中存在的数据进行格式化处理。
11.在一个示例中,通过所述差异数据的筛选字段,确定所述差异数据的差异类型,并将所述差异类型标注至所述目标数据表之后,所述方法还包括:通过所述数据差异检索表确定待恢复数据的数据编号;根据所述待恢复数据的数据编号,从所述目标数据表中查询确定对应数据编号的目标数据,作为所述待恢复数据;通过所述数据映射,将所述待恢复数据增量同步至所述源数据库。
12.在一个示例中,所述方法还包括:将所述目标数据表和所述临时存放数据表存放在所述目标数据库的内存器中,并通过有向无环图算法对所述目标数据表和所述临时存放数据表进行处理。
13.另一方面,本技术提供了一种数据同步的设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如下指令:确定源数据库的源数据表,以及确定目标数据库的目标数据表、临时存放数据表;根据所述源数据表中的筛选字段,确定存在最新数据;根据预先建立的所述源数据库到所述目标数据库之间的数据映射,将所述最新数据同步至所述目标数据表以及临时存放数据表;根据所述目标数据表和所述临时存放数据表,确定存在差异数据,并将所述差异数据的差异类型标注至所述目标数据表,所述差异类型至少包括:删除型、修改型。
14.另一方面,本技术提供了一种数据同步的非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:确定源数据库的源数据表,以及确定目标数据库的目标数据表、临时存放数据表;根据所述源数据表中的筛选字段,确定存在最新数据;根据预先建立的所述源数据库到所述目标数据库之间的数据映射,将所述最新数据同步至所述目标数据表以及临时存放数据表;根据所述目标数据表和所述临时存放数据表,确定存在差异数据,并将所述差异数据的差异类型标注至所述目标数据表,所述差异类型至少包括:删除型、修改型。
15.通过本技术提出的一种数据同步的方法、设备及介质能够带来如下有益效果:数据同步后再目标数据库中增加了差异数据的差异类型,便于数据找回或数据恢复,同时,所有对比计算过程都在目标数据库中进行,不影响源数据库的性能。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
17.图1为本技术实施例中一种数据同步的方法的流程示意图;
18.图2为本技术实施例中另一种数据同步的方法的流程示意图;
19.图3为本技术实施例中一种数据同步的设备的示意图。
具体实施方式
20.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.首先需要说明的是,本技术实施例中记载的一种数据同步的方法,存储在相应的系统或服务器中,用户可以通过相应终端来登录该系统或服务器,上述终端可以是手机、平板电脑、个人计算机等具有相应功能的硬件设备。上述终端中可以预装有该系统,用户也可以通过app、web网页等方式,来登录该系统或服务器,以实现数据的同步。
22.以下结合附图,详细说明本技术各实施例提供的技术方案。
23.如图1所示,本技术实施例提供的一种数据同步的方法,包括:
24.s101:确定源数据库的源数据表,以及确定目标数据库的目标数据表、临时存放数据表。
25.具体地,确定了源数据库,以及源数据库中用于存储源数据的源数据表。源数据库作为用户或管理方直接参与使用的数据库,在本技术实施例中,基于其特殊性或安全因素的考量,源数据库中的数据无法进行数据备份或数据恢复,虽然极大的保障了安全性,但是造成了数据的不可逆性,若用户出现误操作,关键数据是难以找回的。
26.基于此,本技术中设置了与源数据库对应的目标数据库,其可以在不对源数据库造成影响的同时,做好记录与备份,同时,会对进行修改过的数据进行标注,极大的方便数据的找回。目标数据库中预先设置有目标数据表以及临时存放数据表。
27.s102:根据所述源数据表中的筛选字段,确定存在最新数据。
28.具体地,确定源数据表中的源数据对应的筛选字段,此处的筛选字段是提前确定的,可以包括数据的主键、分键,具体可以包括数据的创建时间、数据的修改时间、数据编号等。
29.进一步地,根据筛选字段确定源数据的数据创建时间,并根据数据创建时间,确定存在最新数据。
30.此处的最新数据即为源数据表中之前并未存在过,最新添加建立的数据。
31.s103:根据预先建立的所述源数据库到所述目标数据库之间的数据映射,将所述最新数据同步至所述目标数据表以及临时存放数据表。
32.具体地,预先建立有源数据库到目标数据库之间的数据映射,通过数据映射可以实现源数据库与目标数据库之间的数据传输。需要说明的是,此处的数据映射是通过对变化数据的捕捉而确定执行的,捕捉触发方式包括但不限于:时间戳式、触发器式、快照式、日
志式。其具体的捕捉触发方式能够实现相应功能即可,不能对本技术的保护范围造成影响。
33.进一步地,通过数据映射,将最新数据增量同步至目标数据表,并将源数据全量同步至临时存放数据表。目标数据表作为源数据表的备份表,其存储有源数据表的全部数据,当源数据表出现最新数据时,目标数据表也会将该最新数据同步备份,同时,目标数据表只用于记录源数据表的全部数据,若源数据表中存在变动的数据,例如删除或修改的数据,目标数据库并不会对此进行同步更新。
34.同时,本技术设置了临时存放数据表,该临时存放数据表设置于目标数据库中,避免占用源数据库的计算资源,同时,其可以全量同步源数据表中的源数据,也就是说,无论源数据表中出现最新的数据还是变动的数据,临时存放数据表都会进行全量同步。
35.s104:根据所述目标数据表和所述临时存放数据表,确定存在差异数据,并将所述差异数据的差异类型标注至所述目标数据表,所述差异类型至少包括:删除型、修改型。
36.具体地,可以确定目标数据表中全部目标数据的筛选字段,以及确定临时存放数据表中全部临时数据的筛选字段,并通过将全部目标数据的筛选字段以及全部临时数据的筛选字段进行对比,确定存在差异数据。由于目标数据表反映了源数据表的历史状态,临时存放数据表反映了源数据表的当前状态,而两个数据表又都同步了最新数据,因此,若源数据表中存在属于历史数据的变化数据,该数据会在临时存放数据表中进行同步记录,因此,可以通过对比全部目标数据和全部临时数据的筛选字段,例如,数据修改时间、数据编号,确定是否存在差异数据。
37.该差异数据即反映了源数据库中,存在的变化的历史数据。
38.进一步地,目标数据库中预先设置有数据差异检索表,用于存储差异数据的数据编号,确定差异数据之后,即可将差异数据的数据编号存储在数据差异检索表中。
39.进一步地,通过差异数据的筛选字段,确定差异数据的差异类型,并将差异类型标注到目标数据表中,差异类型至少包括:删除型、修改型。具体地,通过差异数据的筛选字段,确定差异数据的数据修改时间以及数据编号。
40.以多个差异数据中的任意一个为例进行解释说明,首先需要确定差异数据对应的数据编号是否存在在临时差异数据表中,由于临时差异数据表能够反映源数据表的当前状态,若临时差异数据表中不存在该差异数据的数据编号,则说明该差异数据之前存在在源数据表中,但现在不存在,则可以推断该差异数据当前在源数据表中已经删除,此时可以确定该差异数据的差异类型为修改型,并将该差异数据的差异类型标注至目标数据表对应的数据中,标注方式可以标注到该编号数据的备注处。
41.若临时差异数据表中存在该差异数据的数据编号,则目标数据表中一定也存在该差异数据的数据编号,进一步地,可以根据该数据编号确定该差异数据在目标数据表中的对应数据。
42.进一步地,通过确定该差异数据的数据修改时间与目标数据表中的对应数据的数据修改时间是否一致,可以确定该差异数据是否准确。若一致,则说明该差异数据的数据编号、数据修改时间都与对应数据完全一致,其并不存在差异,此时即可以确定该差异数据是系统的误判,因此需要在数据差异检索表中删除该差异数据的数据编号。
43.若不一致,则说明该差异数据虽然当前都存在在源数据便和目标数据表中,但源数据表中对该数据进行过修改,此时即可以将该差异数据的差异类型确定为修改型,并将
该差异数据的差异类型标注至目标数据表对应的数据中,标注方式可以标注到该编号数据的备注处。
44.通过上述方式,即可以在不影响目标数据库的备份功能的同时,能够记录源数据库中的数据变动情况。
45.进一步地,将差异类型标注到目标数据表之后,此时的临时存放数据表中的数据即完成了其全部任务,为保证下一个时间点其能够继续履行任务,需要对临时存放数据表中存在的数据进行格式化处理。
46.进一步地,若源数据库中的出现误删或误操作的数据,由于该数据的原始状态记录在目标数据库中,即可以通过反向同步,以恢复源数据库中的数据。具体地,通过数据差异检索表确定待恢复数据的数据编号,并根据该待恢复数据的数据编号,从目标数据表中查询对应数据编号的目标数据,作为待恢复数据,通过上述数据映射,将待恢复数据增量同步至源数据库。
47.此时,通过本技术的所有技术方案,即可实现,在不影响源数据库的前提下,对源数据进行备份和恢复。
48.在一个实施例中,本技术所述的目标数据表和临时存放数据表存放在目标数据库的内存器中,并通过有向无环图算法对目标数据表和临时存放数据表进行处理。通过该方式对比出来的差异数据,计算效率比mysql数据提升了上百倍。
49.在一个实施例中,如图2所示,本技术还提供了一种数据同步的设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如下指令:
50.确定源数据库的源数据表,以及确定目标数据库的目标数据表、临时存放数据表;
51.根据所述源数据表中的筛选字段,确定存在最新数据;
52.根据预先建立的所述源数据库到所述目标数据库之间的数据映射,将所述最新数据同步至所述目标数据表以及临时存放数据表;
53.根据所述目标数据表和所述临时存放数据表,确定存在差异数据,并将所述差异数据的差异类型标注至所述目标数据表,所述差异类型至少包括:删除型、修改型。
54.在一个实施例中,本技术还提供了一种数据同步的非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
55.确定源数据库的源数据表,以及确定目标数据库的目标数据表、临时存放数据表;
56.根据所述源数据表中的筛选字段,确定存在最新数据;
57.根据预先建立的所述源数据库到所述目标数据库之间的数据映射,将所述最新数据同步至所述目标数据表以及临时存放数据表;
58.根据所述目标数据表和所述临时存放数据表,确定存在差异数据,并将所述差异数据的差异类型标注至所述目标数据表,所述差异类型至少包括:删除型、修改型。
59.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
60.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
61.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
62.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
63.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
64.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
65.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
66.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
67.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
68.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
69.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1