一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据同步方法、装置、设备和计算机可读存储介质与流程

2022-09-04 06:03:38 来源:中国专利 TAG:


1.本发明涉及数据同步技术领域,尤其涉及一种数据同步方法、装置、设备和计算机可读存储介质。


背景技术:

2.在利用数据同步工具进行数据实时同步时分为三个阶段,第一阶段进行存量数据的初始化装载,获得数据同步的基础点;第二阶段以初始化数据装载建立的同步基础点为基准进行数据同步;第三阶段定期对数据同步的源数据和目标数据进行比对校验,以确认在数据同步过程中没有丢失数据。其中第二阶段和第三阶段会处于长时间并行状态。
3.在第二阶段的增量同步过程中,由于用户业务的需求,通常会有部分的数据是不需要进行同步的。示例性技术中,在抽取同步数据完成后才对无用的表数据进行过滤,留下处理后的数据,然后将过滤后的数据进行同步。
4.上述的做法从功能上来讲虽然可以达到过滤的要求,但是过滤步骤是在数据完成抽取后才能进行。也即需要从不需要同步的数据和需要同步的数据抽取出需要同步的数据。由于大量数据中抽取同步数据的过程需要经过日志的读取、翻译、封装等过程,并且这些过程全部在内存中完成,极大的消耗了设备的内存、cpu(central processing unit,中央处理器)等关键资源,对设备的性能造成了很大影响,从而导致数据的同步时间过长、同步时延过大等问题的出现。


技术实现要素:

5.本发明提供一种数据同步方法、装置、设备和计算机可读存储介质,用以解决数据的同步时间过长、同步时延过大的问题。
6.一方面,本发明提供一种数据同步方法,包括:
7.读取一条日志信息,并获取所述日志信息的对象标识符;
8.根据所述日志信息的对象标识符确定所述日志信息对应的表名;
9.根据所述表名确定是否对所述日志信息对应的数据进行同步;
10.在确定对所述日志信息对应的数据进行同步时,根据所述日志信息获取待同步的数据,并将所述待同步的数据同步至目标终端。
11.在一实施例中,所述根据所述表名确定是否对所述日志信息对应的数据进行同步的步骤包括:
12.获取所述表名的格式;
13.判断所述表名的格式是否匹配预设格式;
14.若所述表名的格式不匹配所述预设格式,确定对所述日志信息对应的数据进行同步。
15.在一实施例中,所述根据所述表名确定是否对所述日志信息对应的数据进行同步的步骤包括:
16.获取白名单;
17.判断所述表名是否位于白名单;
18.在所述表名位于白名单时,确定对所述日志信息对应的数据进行同步。
19.在一实施例中,所述根据所述日志信息的对象标识符确定所述日志信息对应的表名的步骤,还包括:
20.获取缓存的各个预设标识,所述预设标识为非同步的数据的对象标识符;
21.在所述日志信息的对象标识符均不匹配各个所述预设标识时,根据所述日志信息的对象标识符确定所述日志信息对应的表名。
22.在一实施例中,所述获取缓存的各个预设标识的步骤之后,还包括:
23.在所述日志信息的对象标识符匹配任意所述预设标识时,返回执行所述读取一条日志信息的步骤。
24.在一实施例中,获取缓存的各个预设标识的步骤之前,还包括:
25.获取非同步的数据的对象标识符;
26.将所述非同步的数据的对象标识符作为预设标识进行缓存。
27.在一实施例中,所述根据所述日志信息的对象标识符确定所述日志信息对应的表名的步骤,还包括:
28.获取各个非同步的数据的对象标识符;
29.若各个所述非同步的数据的对象标识符是连续的编号,根据各个所述非同步的数据的对象标识符生成编号区间,并将所述编号区间进行缓存;
30.在所述日志信息的对象标识符未处于所述编号区间时,根据所述日志信息的对象标识符确定所述日志信息对应的表名。
31.另一方面,本发明还提供一种数据同步装置,包括:
32.读取模块,用于读取一条日志信息,并获取所述日志信息的对象标识符;
33.确定模块,用于根据所述日志信息的对象标识符确定所述日志信息对应的表名;
34.确定模块,还用于根据所述表名确定是否对所述日志信息对应的数据进行同步;
35.获取模块,用于在确定对所述日志信息对应的数据进行同步时,根据所述日志信息获取待同步的数据,并将所述待同步的数据同步至目标终端。
36.另一方面,本发明还提供一种数据同步设备,包括:存储器和处理器;
37.所述存储器存储计算机执行指令;
38.所述处理器执行存储器存储的计算机执行指令,使得数据同步设备执行如上所述的数据同步方法。
39.另一方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的数据同步方法。
40.本发明提供的数据同步方法、装置、设备和计算机可读存储介质,读取一条日志信息,再获取日志信息的对象标识符,并通过对象标识符获取日志信息的表名,若基于表名确定日志信息需要进行同步时,通过日志信息获取待同步的数据,最后将待同步的数据同步至目标终端。本发明中,每读取一条日志信息,则判断该日志信息是否需要进行同步,避免从大量的数据中抽取同步数据,极大的减少了装置中关键资源的消耗量,缩短了数据的同
步时长,且避免了数据同步导致装置的时延过大。
附图说明
41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
42.图1为本发明实现数据同步方法的系统构架图;
43.图2为本发明数据同步方法第一实施例的流程示意图;
44.图3为本发明数据同步方法第二实施例中步骤s30的细化流程示意图;
45.图4为本发明数据同步方法第三实施例中步骤s20的细化流程示意图;
46.图5为本发明数据同步方法第四实施例中步骤s20的细化流程示意图;
47.图6为本发明数据同步装置的功能模块示意图;
48.图7为本发明数据同步设备的硬件结构示意图。
49.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
50.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
51.本发明提供一种数据同步方法,可以通过图1所示的系统构架图实现。如图1所示,数据同步装置100为同步数据源端,数据同步装置100可以为任意具备数据处理能力的设备,例如,数据同步装置100为计算机。数据同步装置100在读取到数据库中的一条日志信息后,确定日志信息所在表的表名。数据同步装置100中存储有不需要进行同步的表的表名的表达式,不需要同步的表的表名是表名的特定格式的表达式。若日志信息的表名不是特定格式的表达式,则该日志信息对应的表需要进行同步。数据同步装置100则获取该表所对应的增量数据,再将增量数据同步至目标终端200。
52.下面以具体地实施例对本发明的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
53.参照图2,图2为本发明数据同步方法的第一实施例,数据同步方法包括以下步骤:
54.步骤s10,读取一条日志信息,并获取日志信息的对象标识符。
55.在本实施例中,执行主体为数据同步装置,为了便于描述,以下采用装置指代数据同步装置。装置可以是任意具备数据处理能力的设备,例如,装置可为计算机。
56.数据库中存储有多张表,每张表存储有多个数据。表中的数据进行更改时,会产生日志信息,日志信息即为事务日志,即记录了数据的具体更改。例如,日志信息记录表-1中的a数据进行了更新。
57.装置读取数据库产生的一条日志信息。装置再获取日志信息的对象标识符oid。数
value的形式将表达式传递到数据库插件中,从而使得装置可以获得表名的表达式。
74.步骤s32,判断表名的格式是否匹配预设格式。
75.装置从数据库中获取表达式。表达式为表名的一种格式,且表达式为预设格式。装置判断表名的格式是否匹配预设格式。
76.步骤s33,若表名的格式不匹配预设格式,确定对日志信息对应的数据进行同步。
77.若是表名的格式匹配预设格式,即可确定日志信息对应的数据无需进行同步。若是表名的格式不匹配预设格式,则日志信息对应的数据需要进行同步。例如,表名的格式为“模式名.表名”,则表名的格式匹配预设格式。
78.在本实施例中,装置获取表名的格式,并判断表名的格式是否匹配预设格式,若是表名的格式不匹配预设格式,从而快速的确定日志信息对应的数据需要进行同步。
79.在一实施例中,若是不需要同步的表过多,则可设置白名单。白名单内的表名所对应的表均需要进行同步。对此,装置获取白名单,并判断日志信息对应的表名是否位于白名单内。若是表名位于白名单,即可确定日志信息对应的数据需要进行同步。
80.在本实施例中,通过设置白名单,装置可以将白名单之外的表进行过滤,避免临时表或误操作形成的表不会被同步到目标终端的数据库。
81.参照图4,图4为本发明数据同步方法的第三实施例,基于第一或第二实施例,步骤s20包括:
82.步骤s21,获取缓存的各个预设标识,预设标识为非同步的数据的对象标识符。
83.在本实施例中,由于数据库中的表的数量较多,装置需要耗费大量的资源从数据库中获取对象标识符oid对应的表名。对此,装置将不需要同步的表的数据文件的oid缓存在内存中。缓存的oid定义为预设标识。具体的,装置获取非同步的数据的对象标识符,再将非同步的数据的对象标识符作为预设标识进行缓存。非同步的数据即为不需要同步的表。
84.装置在得到日志信息对应的对象标识符后,装置获取缓存的各个预设标识。预设标识为非同步的数据的对象标识符。
85.步骤s22,在日志信息的对象标识符均不匹配各个预设标识时,根据日志信息的对象标识符确定日志信息对应的表名。
86.装置先基于缓存的oid来确定读取的日志信息对应的数据是否需要进行同步,也即装置判断日志信息对应的对象标识符是否为缓存的预设标识。若是日志信息对应的对象标识符不是任一个缓存的预设标识,即可确定日志信息的对象标识符均不匹配各个预设标识,装置无法根据缓存的oid来确定日志信息是否需要进行同步,装置则需要基于oid获取表名,以判断日志信息对应的数据是否需要进行同步。
87.而在当日志信息的对象标识符匹配任意的预设标识,即可确定日志信息对应的数据不需要进行同步,装置则返回执行读取一条日志信息的步骤,也即装置确定下一条日志信息对应的数据是否进行同步。
88.进一步的,装置缓存的oid的数量是不确定,若是无限的对oid进行缓存,则装置会有内存溢出的风险。装置可以将使用频次较低的oid移出,也即将不常用的数据的oid从装置中进行删除,从而在装置中缓存常使用的数据的oid。
89.在本实施例中,装置缓存不需要进行同步的数据的对象标识符,装置可先通过缓存的对象标识符与读取的日志信息的对象标识符进行比对,从而快速的确定日志信息对应
的数据是否进行同步。
90.参照图5,图5为本发明数据同步方法第四实施例,基于第一或第二实施例,步骤s20包括;
91.步骤s23,获取各个非同步的数据的对象标识符。
92.在本实施例中,oid为一种编号,因而数据库中的各个oid通过是连续编号。若不需要同步的表过多,则oid的数量也会较多,若是将所有的oid缓存至装置的内存,会对装置的系统产生压力。对此,可以采用指定编号范围的方式对各个oid进行缓存。
93.装置先各个获取非同步的数据的对象标识符,并确定各个非同步的数据的对象表是否为连续的编号。
94.步骤s24,若各个非同步的数据的对象标识符是连续的编号,根据各个对象标识符生成编号区间,并将编号区间进行缓存。
95.若是各个非同步的数据的对象标识符是连续的编号,则基于各个对象标识符生成编号区间,并将编号区间进行缓存。例如,oid大于100的数据均不需要进行同步,则编号区间为(100, ∞)。
96.步骤s25,在日志信息的对象标识符未处于编号区间时,根据日志信息的对象标识符确定日志信息对应的表名。
97.装置在确定日志信息的对象标识符后,确定日志信息的对象标识符是否位于编号区间。若是日志信息的对象标识符未处于编号区间时,装置无法根据oid来确定日志信息对应的数据是否需要进行同步,装置则获取表名进行判断。
98.若是日志信息的对象标识符处于编号区间,装置则进行下一条日志信息的读取,从而判断下一条日志信息对应的数据是否需要进行同步。
99.在本实施例中,装置通过指定范围的方式存储不需要进行同步的数据的对象标识符,从而减小的装置内存的存储压力。
100.本发明还提供一种数据同步装置,参照图6,数据同步装置600包括:
101.读取模块610,用于读取一条日志信息,并获取日志信息的对象标识符;
102.确定模块620,用于根据日志信息的对象标识符确定日志信息对应的表名;
103.确定模块620,用于根据表名确定是否对日志信息对应的数据进行同步;
104.获取模块630,用于在确定对日志信息对应的数据进行同步时,根据日志信息获取待同步的数据,并将待同步的数据同步至目标终端。
105.在一实施例中,数据同步装置600包括:
106.获取模块630,用于获取表名的格式;
107.判断模块,用于判断表名的格式是否匹配预设格式;
108.确定模块620,用于若表名的格式不匹配预设格式,确定对日志信息对应的数据进行同步。
109.在一实施例中,数据同步装置600包括:
110.获取模块630,用于获取白名单;
111.判断模块,用于判断表名是否位于白名单;
112.确定模块620,用于在表名位于白名单时,确定对日志信息对应的数据进行同步。
113.在一实施例中,数据同步装置600包括:
114.获取模块630,用于获取缓存的各个预设标识,预设标识为非同步的数据的对象标识符;
115.确定模块620,用于在日志信息的对象标识符均不匹配各个预设标识时,根据日志信息的对象标识符确定日志信息对应的表名。
116.在一实施例中,数据同步装置600包括:
117.执行模块,用于在日志信息的对象标识符匹配任意预设标识时,返回执行读取一条日志信息的步骤。
118.在一实施例中,数据同步装置600包括:
119.获取模块630,用于获取非同步的数据的对象标识符;
120.确定模块620,用于将非同步的数据的对象标识符作为预设标识进行缓存。
121.在一实施例中,数据同步装置600包括:
122.获取模块630,用于获取各个非同步的数据的对象标识符;
123.生成模块,用于若各个非同步的数据的对象标识符是连续的编号,根据各个非同步的数据的对象标识符生成编号区间,并将编号区间进行缓存;
124.确定模块620,用于在日志信息的对象标识符未处于编号区间时,根据日志信息的对象标识符确定日志信息对应的表名。
125.图7是根据一示例性实施例示出的一种数据同步设备的硬件结构示意图。
126.数据同步设备700可以包括:处理器701,例如cpu,存储器702、收发器703。本领域技术人员可以理解,图7中示出的结构并不构成对数据同步设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
127.处理器701可以调用存储器702内存储的计算机程序,以完成上述的数据同步方法的全部或部分步骤。
128.收发器703用于接收外部设备发送的信息以及向外部设备发送信息。
129.一种非临时性计算机可读存储介质,当该存储介质中的指令由数据同步设备的处理器执行时,使得数据同步设备能够执行上述数据同步方法。
130.一种计算机程序产品,包括计算机程序,当该计算机程序由数据同步设备的处理器执行时,使得数据同步设备能够执行上述数据同步方法。
131.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
132.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献