数据同步方法、装置及存储介质
技术领域
本申请涉及一种数据同步方法、装置及存储介质,属于计算机技术领域。
背景技术
目前很多项目需要完成对公安、交通、教育、信用等多方数据的汇聚,实现数据集中和数据共享,而且对数据的准确性要求较高。为了保证数据的安全性或者满足数据订阅需求,通常需要将已存储数据同步至指定位置。
现有的数据同步方式包括:在某个时间点对数据全量同步至指定位置。增量同步采用监听数据库操作日志,发送实时数据变化至消息订阅系统。系统通过监听消息订阅系统来同步数据变化。
但是,在第一次数据全量同步过程中存在下述情况:在数据还未同步至指定位置的目标表时,源表数据发生了更改,系统监听到变化后在目标表更新数据,由于目标表还未有记录,导致更新报错。
发明内容
本申请提供了一种数据同步方法、装置及存储介质,可以解决现有的数据全量同步时若存在数据更新操作,容易出现数据出错的问题。本申请提供如下技术方案:
第一方面,提供了一种数据同步方法,所述方法包括:
获取全量同步指示;
按照所述全量同步指示开始执行数据全量同步;
获取所述数据全量同步过程中的目标数据更新操作;
在数据全量同步完成后,按照所述目标数据更新操作进行二次数据同步。
可选地,所述在数据全量同步完成后,按照所述目标数据更新操作进行二次数据同步,包括:
按照所述目标数据更新操作从前至后的顺序进行二次数据同步。
可选地,所述获取所述数据全量同步过程中的目标数据更新操作,包括:
获取所述数据全量同步的开始时间和结束时间;
从数据变化记录表中获取所述开始时间至所述结束时间之间的目标数据更新操作,所述数据变化记录表用于记录数据更新操作。
可选地,所述获取所述数据全量同步过程中的目标数据更新操作,包括:
在数据全量同步开始时,若接收到数据更新操作,则将所述数据更新操作存储至数据变化记录表;
在数据全量同步结束时停止执行所述将数据更新操作存储至数据变化记录表的步骤,得到数据变化记录表,所述数据变化记录表包括目标数据更新操作。
可选地,所述获取全量同步指示之前,包括:
接收应用系统的订阅请求;
根据所述订阅请求建立与所述应用系统的订阅关系。
可选地,所述获取全量同步指示,包括:
按照所述订阅关系每隔预设时长生成所述全量同步指示。
可选地,所述获取全量同步指示,包括:
获取所述应用系统发送的全量同步指示。
可选地,所述按照所述目标数据更新操作进行二次数据同步之后,还包括:
记录所述二次数据同步的开始时间和结束时间;
从数据变化记录表中获取所述二次数据同步的开始时间至结束时间之间的目标数据更新操作;
按照获取到的目标数据更新操作,执行第三次数据同步操作。
第二方面,提供了一种数据同步装置,所述装置包括:
指示获取模块,用于获取全量同步指示;
全量同步模块,用于按照所述全量同步指示开始执行数据全量同步;
操作获取模块,用于获取所述数据全量同步过程中的目标数据更新操作;
二次同步模块,用于在数据全量同步完成后,按照所述目标数据更新操作进行二次数据同步。
第三方面,提供一种数据同步装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的数据同步方法。
第四方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的数据同步方法。
本申请的有益效果在于:通过获取全量同步指示;按照全量同步指示开始执行数据全量同步;获取数据全量同步过程中的目标数据更新操作;在数据全量同步完成后,按照目标数据更新操作进行二次数据同步;可以解决现有的数据全量同步时若存在数据更新操作,容易出现数据出错的问题;由于通过在数据全量同步结束之后,再根据数据全量同步过程中获取到数据更新操作进行二次数据同步,因此,可以避免全量同步过程中发生的数据同步冲突,提高数据同步准确性。
另外,本实施例提供的数据同步方法相对于现有技术中纯增量数据同步来说采用定期的全量数据同步;由于全量数据同步的同步操作的执行频率低于增量数据同步的同步操作的执行频率,因此,可以降低更新频率,节省系统资源;同时采用二次数据同步,能够有效地避免全量同步过程中发生的数据同步冲突。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的数据同步系统的结构示意图;
图2是本申请一个实施例提供的数据同步方法的流程图;
图3是本申请一个实施例提供的数据同步装置的框图;
图4是本申请一个实施例提供的数据同步装置的框图。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
图1是本申请一个实施例提供的数据同步系统的结构示意图,如图1所示,该系统至少包括:数据存储系统110和应用系统120。
数据存储系统110用于存储数据。比如:存储有诚信目录,该诚信目录中存储有至少一条诚信相关数据。
应用系统120是指订阅数据存储系统110中存储的数据的系统。
可选地,应用系统120需要订阅数据存储系统110时,向数据存储系统110发送订阅请求;数据存储系统110根据该订阅请求建立与应用系统120的订阅关系;将存储数据全量同步至应用系统120。
以应用系统120包括诚信系统为例,数据存储系统110包括存储有诚信目录的数据中心前置库111、与数据中心前置库111通信相连的诚信前置库112;诚信系统120通过与诚信前置库112相连订阅数据中心前置库111中的诚信目录。此时,诚信目录中的诚信数据会从数据中心前置库同步至诚信前置库。
可选地,前置库通过前置机实现。前置机用于隔离主机,保证外部的应用不能直接访问核心服务,比如银行的各类外部接口。前置库还用于供业务渠道与核心服务的主机进行交流。
可选地,数据存储系统110进行数据同步时,用于获取全量同步指示;按照全量同步指示开始执行数据全量同步;获取数据全量同步过程中的目标数据更新操作;在数据全量同步完成后,按照目标数据更新操作进行二次数据同步。
需要补充说明的是,上述数据存储系统110的同步场景仅是示意性的,在实际实现时,数据存储系统110的数据同步场景还可以为其它场景,本实施例不对数据同步场景作限定。
图2是本申请一个实施例提供的数据同步方法的流程图,本实施例以该方法应用于图1所示的数据同步系统中,且各个步骤的执行主体为数据存储系统110为例进行说明。该方法至少包括以下几个步骤:
步骤201,获取全量同步指示。
可选地,数据存储系统接收应用系统的订阅请求;根据订阅请求建立与应用系统的订阅关系。在建立订阅关系后,按照订阅关系每隔预设时长生成全量同步指示;或者,获取应用系统发送的全量同步指示。
步骤202,按照全量同步指示开始执行数据全量同步。
数据全量同步是指将所有数据进行拷贝(复制)的方式。
步骤203,获取数据全量同步过程中的目标数据更新操作。
目标数据更新操作是指在数据全量同步过程中获取到的数据更新操作。
可选地,数据更新操作包括但不限于:增加、删除和/或修改。
可选地,获取数据全量同步过程中的目标数据更新操作的方式包括但不限于以下几种:
第一种:获取数据全量同步的开始时间和结束时间;从数据变化记录表中获取开始时间至结束时间之间的目标数据更新操作,该数据变化记录表用于记录数据更新操作。
在这种实现方式中,数据存储系统无论数据全量同步是否在进行,都会将数据更新操作记录至数据变化记录表;然后,从数据变化记录表中提取数据全量同步的开始时间至结束时间之间的目标数据更新操作。
可选地,数据存储系统按照时间顺序记录数据更新操作;或者,记录数据更新操作和每个数据更新操作的获取时间。
第二种:在数据全量同步开始时,若接收到数据更新操作,则将数据更新操作存储至数据变化记录表;在数据全量同步结束时停止执行将数据更新操作存储至数据变化记录表的步骤,得到数据变化记录表,数据变化记录表包括目标数据更新操作。
在这种实现方式中,数据存储系统仅在数据全量同步期间在数据变化记录表中记录数据更新操作,此时,数据变化记录表中记录的所有数据更新操作均为目标数据更新操作。
步骤204,在数据全量同步完成后,按照目标数据更新操作进行二次数据同步。
为了避免二次同步出错,数据存储系统按照目标数据更新操作从前至后的顺序进行二次数据同步。
可选地,按照目标数据更新操作进行二次数据同步之后,记录二次数据同步的开始时间和结束时间;从数据变化记录表中获取二次数据同步的开始时间至结束时间之间的目标数据更新操作;按照获取到的目标数据更新操作,执行第三次数据同步操作。
当然,数据存储系统可以按照第三次数据同步操作的方式不断进行数据更新,直至更新时长(开始时间到结束时间之间的时长)小于预设阈值或者不存在更新操作时停止。也即,数据存储系统记录第n次数据同步的开始时间和结束时间;在第n次数据同步的开始时间和结束时间大于或等于预设阈值,且数据变化记录表中存在第n次数据同步的开始时间至结束时间之间的目标数据更新操作时,按照获取到的目标数据更新操作,执行第n+1次数据同步操作。n依次取2、3、4…的整数。
综上所述,本实施例提供的数据同步方法,通过获取全量同步指示;按照全量同步指示开始执行数据全量同步;获取数据全量同步过程中的目标数据更新操作;在数据全量同步完成后,按照目标数据更新操作进行二次数据同步;可以解决现有的数据全量同步时若存在数据更新操作,容易出现数据出错的问题;由于通过在数据全量同步结束之后,再根据数据全量同步过程中获取到数据更新操作进行二次数据同步,因此,可以避免全量同步过程中发生的数据同步冲突,提高数据同步准确性。
另外,本实施例提供的数据同步方法相对于现有技术中纯增量数据同步来说采用定期的全量数据同步;由于全量数据同步的同步操作的执行频率低于增量数据同步的同步操作的执行频率,因此,可以降低更新频率,节省系统资源;同时采用二次数据同步,能够有效地避免全量同步过程中发生的数据同步冲突。
图3是本申请一个实施例提供的数据同步装置的框图,本实施例以该装置应用于图1所示的数据同步系统中的数据存储系统110为例进行说明。该装置至少包括以下几个模块:指示获取模块310、全量同步模块320、操作获取模块330和二次同步模块340。
指示获取模块310,用于获取全量同步指示;
全量同步模块320,用于按照所述全量同步指示开始执行数据全量同步;
操作获取模块330,用于获取所述数据全量同步过程中的目标数据更新操作;
二次同步模块340,用于在数据全量同步完成后,按照所述目标数据更新操作进行二次数据同步。
相关细节参考上述方法实施例。
需要说明的是:上述实施例中提供的数据同步装置在进行数据同步时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据同步装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据同步装置与数据同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本申请一个实施例提供的数据同步装置的框图。该装置至少包括处理器401和存储器402。
处理器401可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的数据同步方法。
在一些实施例中,数据同步装置还可选包括有:外围设备接口和至少一个外围设备。处理器401、存储器402和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,数据同步装置还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的数据同步方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的数据同步方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。