数据同步处理方法、装置、电子设备及存储介质与流程

文档序号:26589558发布日期:2021-09-10 20:27阅读:50来源:国知局
数据同步处理方法、装置、电子设备及存储介质与流程

1.本发明实施例涉及数据处理技术领域,尤其涉及一种数据同步处理方法、装置、电子设备及存储介质。


背景技术:

2.为了保证数据的时效性,通常需要对数据进行周期性同步更新,以将待更新的数据同步到数据库中。相关技术中,一种是清空所有数据并将待更新的数据进行全部写入;或者,另一种是将待更新的数据和已存储的数据逐条进行对比;经过逐条对比后,新增数据库中不存在的数据,而对于已经存在的数据进行替换操作。但是,大量数据的写入会导致写入失败且写入过程中无法进行使用造成较长的访问时延;以及数据逐条对比操作使得替换时间较长,会大量消耗系统资源,也会造成较长的访问时延。


技术实现要素:

3.本发明实施例中提供了一种数据同步处理方法、装置、电子设备及存储介质,以实现低时延、高可靠的全量数据同步过程。
4.第一方面,本发明实施例中提供了一种数据同步处理方法,该方法包括:
5.确定待更新全量数据;
6.若检测到使用数据库的第一数据表进行数据查询,则对所述数据库的第二数据表中的数据进行删减,并将所述待更新全量数据写入经删减的所述第二数据表中,以进行数据更新;
7.其中,所述第一数据表与第二数据表中记录相同的初始数据。
8.第二方面,本发明实施例中还提供了一种数据同步处理装置,该装置包括:
9.文件确定模块,用于确定待更新全量数据;
10.数据同步模块,用于若检测到使用数据库的第一数据表进行数据查询,则对所述数据库的第二数据表中的数据进行删减,并将所述待更新全量数据写入经删减的所述第二数据表中,以进行数据更新;
11.其中,所述第一数据表与第二数据表中记录相同数据。
12.第三方面,本发明实施例中还提供了一种电子设备,包括:
13.一个或多个处理装置;
14.存储装置,用于存储一个或多个程序;
15.当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如本发明任意实施例中提供的所述数据同步处理方法。
16.第四方面,本发明实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理装置执行时实现如本发明任意实施例中提供的所述数据同步处理方法。
17.本发明实施例中提供了一种数据同步处理方案,确定待更新全量数据,检测到使
用数据库的第一数据表进行数据查询时,对数据库的第二数据表中的数据进行删减,并将待更新全量数据写入经删减的第二数据表中,以进行数据更新。采用本技术方案,基于异步操作的思想通过两张数据表记录相同的数据,在同一个数据同步周期内同时对相同数据进行数据更新和数据查询操作,实现数据更新和数据查询操作分别在两张表中同时进行互不影响,通过这种异步操作可以降低系统的访问时延,缩短了大量数据同步过程中的等待时间和保证数据的可靠性。
18.上述发明内容仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
19.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
20.图1是本发明实施例中提供的一种数据同步处理方法的流程图;
21.图2是本发明实施例中提供的一种数据同步处理装置的结构框图;
22.图3是本发明实施例中提供的一种电子设备的结构示意图。
具体实施方式
23.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
24.在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作(或步骤)可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
25.下面通过以下各个实施例及其可选方案对本技术中提供的数据同步处理方法、装置、电子设备及存储介质进行详细阐述。
26.图1是本发明实施例中提供的一种数据同步处理方法的流程图。本实施例的技术方案可适用于对全量数据进行数据同步更新的情况,尤其是适用于进行全量数据同步且待更新的全量数据没有明确处理方式的情形。该方法可由数据同步处理装置来执行,该装置可以采用软件和/或硬件的方式实现,并集成在任何具有网络通信功能的电子设备上。如图1所示,本技术实施例中提供的数据同步处理方法,可包括以下步骤:
27.s110、确定待更新全量数据。
28.基础数据缺失的时间过长,可能导致这段时间内部分功能异常。若无法保证数据高可靠,会导致系统出现不可预知异常且将持续到数据恢复。为此,在实际生产中,需要定时进行外部文件源到数据库的全量数据同步操作。在触发全量数据同步操作时,确定包括待更新全量数据的待更新数据文件。
29.可选地,可根据需求设定数据同步任务的开始时间,一旦设定了数据同步任务的开始时间,可根据数据同步任务的开始时间来定时启动更新数据,实现外部文件源数据到数据库的全量同步。
30.在本实施例的一种可选方案中,确定待更新全量数据可包括以下步骤a1

a2:
31.步骤a1、在检测到外部文件源中的人员信息和成本中心的信息发生变化时,获取基于发生变化的信息所形成并推送的待更新全量数据。
32.步骤a2、将待更新全量数据写入至一个文件得到待更新数据文件,以汇总待更新全量数据。
33.针对系统实际生产需求,当外部文件源中的人员信息和成本中心的信息发生变化时,由一个系统自动形成待更新的全量数据,并推送过来。进而,可建立一个文件,并将推送过来的待更新的全量数据全部写入建立的文件中,这样就可将待更新的全量数据汇总到一个文件中,得到一个待更新数据文件,这样就可将文件作为中间介质实现对批量数据的收集。采用上述方式可以在写入全量数据时以文件的形式将批量的待更新全量数据进行写入,避免大批量的全量数据集体写入影响写入速度,缩短了大量数据同步过程中的等待时间。
34.s120、若检测到使用数据库的第一数据表进行数据查询,则对数据库的第二数据表中的数据进行删减,并将待更新全量数据写入经删减的所述第二数据表中,以进行数据更新。
35.其中,第一数据表与第二数据表中记录相同的初始数据。
36.在进行外部文件源到数据库的全量数据同步操作时,需要保证在数据同步的过程中有权限的用户依然可以查看相应数据。为此,可在数据库的第一数据表与第二数据表中记录相同的初始数据。在进行数据同步时,可检测数据库的第一数据表的使用情况,判断第一数据表是否正在进行数据查询使用。当检测到正在使用数据库的第一数据表进行数据查询时,可以选择数据库中的第二数据表来进行数据更新,具体可对第二数据表中的数据进行清空,然后将待更新数据文件中包括的待更新全量数据写入到清空的第二数据表中,实现将外部文件源到数据库一次全量数据同步。同时,在使用第二数据表进行数据同步时,仍可使用第一数据表进行数据查询,保证在数据同步的过程中有权限的用户依然可以查看相应数据。
37.采用上述方式,由于第一数据表与第二数据表中记录了相同的初始数据,即两张数据表具备相同的初始铺底数据,在后续数据同步时会产生差异,但仍能保证大部分数据是相同的。当使用第二数据表对大量全量数据进行更新操作时,仍然可以使用第一数据表进行有效数据查看,这样同一个数据同步周期内可以使用相同的初始数据同时进行数据更新和数据查询操作,通过这种异步操作可以避免由于数据同步导致无法进行数据查询而造成的较大访问时延。
38.在本实施例的一种可选方案中,同一个数据同步周期内,数据库的第一数据表与第二数据表的数据同步过程中的作用不相同,且两个数据表分别用于数据更新与数据查询。其中,在一个数据库中使用两张表来记录相同信息,分别是第一数据表和第二数据表,两张数据表的初始数据是一致的,但是在数据同步过程中两张数据表的作用不同,其中一张表用于数据更新,另一张表用于数据查询。比如,同一个数据同步周期内,若第一数据表
用于数据更新,则第二数据表用于数据查询;或者,同一个数据同步周期内,若第一数据表用于数据查询,则第二数据表用于数据更新。
39.采用上述方式,在同一个时间段内,采用两张表进行操作,其中一张表用于查询数据、另一张表用于插入数据,保证数据同步过程中不会影响数据查询操作,这样可使用至少部分相同数据来同时进行数据更新和数据查询操作,通过这种异步操作可以降低系统的访问时延,实现数据同步过程的低延时和高可靠。同时,在数据同步过程中即便发生了写入失败,还有另一张数据表备份了更新之前的数据,便于后续数据恢复操作的进行。
40.在本实施例的一种可选方案中,在将待更新数据文件中包括的待更新全量数据写入经删减的第二数据表之后,还可包括以下步骤:
41.在待更新全量数据在第二数据表更新结束进入下一个数据同步周期后,将查询指针从第一数据表切换到第二数据表,使用第二数据表进行数据查询。
42.数据库的两张数据表,包括第一数据表和第二数据表。第一数据表和第二数据表的初始铺底数据是一致的,两张数据表在一个数据同步周期内的作用不相同,一张数据表用于数据更新时另一张表则用于数据查询。在一个数据同步周期中,若第二数据表用于数据更新,则第一数据表用于数据查询,完成一次数据同步操作后,进入下一个数据同步周期时,将查询指针从第一数据表切换到第二数据表,即第一数据表再用于数据更新而第二数据表用于数据查询,在不同数据同步周期循环往复在两个数据表之间进行查询指针切换。
43.采用上述方式由于第一数据表与第二数据表之前不是主从关系,在数据同步时不需要每次都清空从表数据再将主表的数据复制到从表,进而再清空主表数据将待更新的数据写入主表,这样在同一个时间段内采用两张表同时进行数据查询与数据更新操作实现数据同步过程中的低延时和高可靠,可以避免数据同步时由于主从表进行数据复制的过程消耗大量时间进而造成较大的访问时延。
44.在本实施例的一种可选方案中,在对数据库的第二数据表中的数据进行删减之前,还可包括以下步骤:
45.检测数据库的第一数据表对应的状态标志位;该状态标志位记录第一数据表的使用状态,该使用状态包括数据查询或数据更新。
46.若检测到未使用数据库的第一数据表进行数据查询,则对数据库的第一数据表中的数据进行删减,并将待更新数据文件中包括的待更新全量数据写入经删减的第一数据表中,以进行数据更新。同时,由于第一数据表与第二数据表中记录相同的初始数据,在进行数据查询时可使用数据库的第二数据表中的数据进行数据查询操作。可选地,在待更新全量数据在第一数据表更新结束进入下一个数据同步周期后,可将查询指针从第二数据表切换到第一数据表,使用第一数据表进行数据查询。
47.根据本发明实施例中提供的数据同步处理方案,基于异步操作的思想通过两张数据表记录相同的初始数据,在同一个数据同步周期内使用至少部分相同的数据进行数据更新和数据查询操作,实现数据更新和数据查询操作分别在两张表中同时进行互不影响,当大量数据正在进行更新操作时仍能查看有效数据,通过这种异步操作可以降低系统的访问时延,缩短了大量数据同步过程中的等待时间和保证数据的可靠性。此外,针对当大量数据写入更新时可能出现的写入失败情况,可以避免写入失败带来的原数据丢失的问题;以及,大幅度降低数据逐条对比操作使得替换时间较长与大量消耗系统资源和避免数据复制的
过程中消耗大量时间造成较大的访问时延。
48.图2是本发明实施例中提供的一种数据同步处理装置的结构框图。本实施例的技术方案可适用于对全量数据进行数据同步更新的情况,尤其是适用于进行全量数据同步且待更新的全量数据没有明确处理方式的情形。该装置可以采用软件和/或硬件的方式实现,并集成在任何具有网络通信功能的电子设备上。
49.如图2所示,本技术实施例中提供的数据同步处理装置,可包括以下:
50.文件确定模块210,用于确定待更新全量数据;
51.数据同步模块220,用于若检测到使用数据库的第一数据表进行数据查询,则对所述数据库的第二数据表中的数据进行删减,并将所述待更新全量数据写入经删减的所述第二数据表中,以进行数据更新;
52.其中,所述第一数据表与第二数据表中记录相同的初始数据。
53.在上述实施例的基础上,可选地,同一个数据同步周期内,所述数据库的第一数据表与第二数据表的数据同步过程中的作用不相同,且两个数据表分别用于数据更新与数据查询。
54.在上述实施例的基础上,可选地,文件确定模块210用于:
55.在检测到外部文件源中的人员信息和成本中心的信息发生变化时,获取基于发生变化的信息所形成并推送的待更新全量数据;
56.将待更新全量数据写入至一个文件得到待更新数据文件,以汇总待更新全量数据。
57.在上述实施例的基础上,可选地,数据同步模块220还用于:
58.在对所述数据库的第二数据表中的数据进行删减之前,检测数据库的第一数据表对应的状态标志位;所述状态标志位记录第一数据表的使用状态;所述使用状态包括数据查询或数据更新。
59.在上述实施例的基础上,可选地,数据同步模块220还用于:
60.在待更新全量数据在第二数据表更新结束进入下一个数据同步周期后,将查询指针从第一数据表切换到第二数据表,使用第二数据表进行数据查询。
61.本发明实施例中所提供的数据同步处理装置可执行上述本发明任意实施例中所提供的数据同步处理方法,具备执行该数据同步处理方法相应的功能和有益效果,详细过程参见前述实施例中数据同步处理方法的相关操作。
62.图3是本发明实施例中提供的一种电子设备的结构示意图。如图3所示结构,本发明实施例中提供的电子设备包括:一个或多个处理器310和存储装置 320;该电子设备中的处理器310可以是一个或多个,图3中以一个处理器310 为例;存储装置320用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器310执行,使得所述一个或多个处理器310实现如本发明实施例中任一项所述的数据同步处理方法。
63.该电子设备还可以包括:输入装置330和输出装置340。
64.该电子设备中的处理器310、存储装置320、输入装置330和输出装置340 可以通过总线或其他方式连接,图3中以通过总线连接为例。
65.该电子设备中的存储装置320作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中所提
供的数据同步处理方法对应的程序指令/模块。处理器310 通过运行存储在存储装置320中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中数据同步处理方法。
66.存储装置320可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储装置320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
67.输入装置330可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏等显示设备。
68.并且,当上述电子设备所包括一个或者多个程序被所述一个或者多个处理器310执行时,程序进行如下操作:
69.确定待更新全量数据;
70.若检测到使用数据库的第一数据表进行数据查询,则对所述数据库的第二数据表中的数据进行删减,并将所述待更新全量数据写入经删减的所述第二数据表中,以进行数据更新;
71.其中,所述第一数据表与第二数据表中记录相同的初始数据。
72.当然,本领域技术人员可以理解,当上述电子设备所包括一个或者多个程序被所述一个或者多个处理器310执行时,程序还可以进行本发明任意实施例中所提供的数据同步处理方法中的相关操作。
73.本发明实施例中提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时用于执行数据同步处理方法,该方法包括:
74.确定待更新全量数据;
75.若检测到使用数据库的第一数据表进行数据查询,则对所述数据库的第二数据表中的数据进行删减,并将所述待更新全量数据写入经删减的所述第二数据表中,以进行数据更新;
76.其中,所述第一数据表与第二数据表中记录相同的初始数据。
77.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可擦式可编程只读存储器(erasableprogrammable read only memory,eprom)、闪存、光纤、便携式cd

rom、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
78.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限
于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
79.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(radiofrequency,rf)等等,或者上述的任意合适的组合。
80.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、 smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan) ——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
81.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
82.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1