一种数据处理方法、装置、设备及介质与流程

文档序号:26004710发布日期:2021-07-23 21:22阅读:112来源:国知局
一种数据处理方法、装置、设备及介质与流程

本公开涉及大数据技术领域,尤其涉及一种数据处理方法、装置、设备及介质。



背景技术:

许多企业为了方便企业内外的用户查询到想要咨询的内容,都会基于搜索引擎,比如,全文搜索引擎(lucene)、分布式全文检索的搜索引擎(elasticsearch)、企业级搜索应用服务器(solr)等,在搜索平台上构建自己的搜索服务。而为了实现用户可以在搜索平台上查询到想要咨询的信息,搜索引擎需要获取到数据库中可被查询的内容并存储,即需要将数据库中可被查询的内容进行同步处理。并且在数据库中保存的数据发生变化时,搜索引擎还需要及时且准确地获取到发生变化的数据,并根据该发生变化的数据,对存储的数据进行更新,以保证后续用户查询到的信息的准确性。因此,如何实现准确且快速地将发生变更的待同步数据同步到搜索引擎中是近几年来人们日益关注的问题。



技术实现要素:

本公开提供了一种数据处理方法、装置、设备及介质,用以解决现有无法准确地将发生变更的待同步数据同步到搜索引擎的问题。

本公开提供了一种数据处理方法,所述方法包括:

获取发生变更的目标数据信息的第一版本时间以及所述目标数据信息中包含的目标标识信息;其中,所述第一版本时间用于标识所述目标数据信息被更新的时间;

根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新;所述第二版本时间用于标识所述目标标识信息的索引文档被更新的时间。

在一种可能的实施方式中,所述获取发生变更的目标数据信息,包括:

根据接收到的变更通知消息中携带的数据信息确定所述发生变更的目标数据信息。

在一种可能的实施方式中,所述获取发生变更的目标数据信息,包括:

若确定第一时间满足预设的确定条件,则确定在目标时间段内发生变更的待同步数据信息;将任一所述变更的待同步数据信息确定为所述目标数据信息;所述目标时间段为所述第一时间与第二时间之间的时间间隔;所述第二时间为上一次确定的满足所述确定条件的时间。

在一种可能的实施方式中,所述确定第一时间满足预设的确定条件,包括:

若确定所述第一时间为接收到全量同步指令的时间,则确定所述第一时间满足预设的确定条件;所述全量同步指令为将所述第一时间的每个待同步数据分别同步到对应的索引文档中的指令;或

若确定所述第一时间与所述第二时间之间的时间间隔达到预设的时长,则确定所述第一时间满足预设的确定条件。

在一种可能的实施方式中,所述确定在目标时间段内发生变更的待同步数据信息,包括:

离线获取所述第一时间的每个待同步数据,并按照所述每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总;

针对每个所述标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息;

获取所述第二时间对应的每条第二数据信息;

根据所述每条第一数据信息、以及所述每条第二数据信息,确定在所述目标时间段内发生变更的待同步数据信息,并根据所述每条第一数据信息,对所述每条第二数据信息进行更新。

在一种可能的实施方式中,所述根据所述每条第一数据信息、以及所述每条第二数据信息,确定在所述目标时间段内发生变更的待同步数据信息,包括:

针对所述每条第一数据信息包含的标识信息,若确定不存在包含该标识信息的第二数据信息,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息;若确定存在包含该标识信息的第二数据信息,且所述第二数据信息与包含该标识信息的第一数据信息不一致,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息。

在一种可能的实施方式中,所述方法还包括:

获取所述目标数据信息的目标变更类型;

判断所述目标变更类型是否为删除类型;所述删除类型表示删除所述目标数据信息包含的所述目标标识信息对应的每个待同步数据;

若所述目标变更类型为删除类型,则直接将所述目标标识信息的索引文档包含的所述目标标识信息对应的每个待同步数据删除,并根据所述目标数据信息对应的第三时间,更新所述目标标识信息的索引文档的第二版本时间;

若所述目标变更类型不为删除类型,则执行后续根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新的步骤。

在一种可能的实施方式中,所述根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新,包括:

若确定不存在所述目标标识信息的索引文档的第二版本时间,或,所述第二版本时间不晚于所述第一版本时间,则根据所述目标数据信息,对所述目标标识信息的索引文档进行更新;并根据所述第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;

若确定存在所述目标标识信息的索引文档的第二版本时间,且所述第二版本时间晚于所述第一版本时间,确定不对所述目标标识信息的索引文档进行更新。

在一种可能的实施方式中,通过如下方式获取所述第一版本时间:

若所述目标数据信息是通过目标时间段内发生变更的待同步数据信息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述第一时间,确定所述第一版本时间;

若所述目标数据信息是通过接收到的通知消息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述目标数据信息对应的第四时间,确定所述第一版本时间。

本公开提供了一种数据处理装置,所述装置包括:

处理单元,用于获取发生变更的目标数据信息的第一版本时间以及所述目标数据信息中包含的目标标识信息;其中,所述第一版本时间用于标识所述目标数据信息被更新的时间;

更新单元,用于根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新;所述第二版本时间用于标识所述目标标识信息的索引文档被更新的时间。

在一种可能的实施方式中,所述处理单元,具体用于根据接收到的变更通知消息中携带的数据信息确定所述发生变更的目标数据信息。

在一种可能的实施方式中,所述处理单元,具体用于若确定第一时间满足预设的确定条件,则确定在目标时间段内发生变更的待同步数据信息;将任一所述变更的待同步数据信息确定为所述目标数据信息;所述目标时间段为所述第一时间与第二时间之间的时间间隔;所述第二时间为上一次确定的满足所述确定条件的时间。

在一种可能的实施方式中,所述处理单元,具体用于若确定所述第一时间为接收到全量同步指令的时间,则确定所述第一时间满足预设的确定条件;所述全量同步指令为将所述第一时间的每个待同步数据分别同步到对应的索引文档中的指令;或,若确定所述第一时间与所述第二时间之间的时间间隔达到预设的时长,则确定所述第一时间满足预设的确定条件。

在一种可能的实施方式中,所述处理单元,具体用于离线获取所述第一时间的每个待同步数据,并按照所述每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总;针对每个所述标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息;获取所述第二时间对应的每条第二数据信息;根据所述每条第一数据信息、以及所述每条第二数据信息,确定在所述目标时间段内发生变更的待同步数据信息,并根据所述每条第一数据信息,对所述每条第二数据信息进行更新。

在一种可能的实施方式中,所述处理单元,具体用于针对所述每条第一数据信息包含的标识信息,若确定不存在包含该标识信息的第二数据信息,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息;若确定存在包含该标识信息的第二数据信息,且所述第二数据信息与包含该标识信息的第一数据信息不一致,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息。

在一种可能的实施方式中,所述获取单元,还用于获取所述目标数据信息的目标变更类型;

所述更新单元,还用于判断所述目标变更类型是否为删除类型;所述删除类型表示删除所述目标数据信息包含的所述目标标识信息对应的每个待同步数据;若所述目标变更类型为删除类型,则直接将所述目标标识信息的索引文档包含的所述目标标识信息对应的每个待同步数据删除,并根据所述目标数据信息对应的第三时间,更新所述目标标识信息的索引文档的第二版本时间;若所述目标变更类型不为删除类型,则执行后续根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新的步骤。

在一种可能的实施方式中,所述更新单元,具体用于若确定不存在所述目标标识信息的索引文档的第二版本时间,或,所述第二版本时间不晚于所述第一版本时间,则根据所述目标数据信息,对所述目标标识信息的索引文档进行更新;并根据所述第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;若确定存在所述目标标识信息的索引文档的第二版本时间,且所述第二版本时间晚于所述第一版本时间,确定不对所述目标标识信息的索引文档进行更新。

在一种可能的实施方式中,所述更新单元,具体用于通过如下方式获取所述第一版本时间:

若所述目标数据信息是通过所述变更的待同步数据信息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述第一时间,确定所述第一版本时间;

若所述目标数据信息是通过接收到的通知消息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述目标数据信息对应的第四时间,确定所述第一版本时间。

本公开提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述数据处理方法的步骤。

本公开提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述数据处理方法的步骤。

在本公开中,由于发生变更的目标数据信息对应有第一版本时间,该第一版本时间用于标识目标数据信息被更新的时间,并且目标标识信息的索引文档也对应有第二版本时间,该第二版本时间用于标识目标标识信息的索引文档被更新的时间,后续在根据目标数据信息,对所述目标标识信息的索引文档进行更新时,可以考虑到目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,从而有效避免目标数据信息被更新的时间早于目标标识信息的索引文档被更新的时间时,直接根据目标数据信息对目标标识信息的索引文档进行更新,导致目标标识信息的索引文档中后更新的数据被该目标数据信息替换的问题,有效提高了数据同步的准确性以及稳定性。

附图说明

为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的一种实时任务流程示意图;

图2为本公开实施例提供的一种全量任务流程示意图;

图3为本公开实施例提供的一种数据处理过程示意图;

图4为本公开提供的具体的数据处理流程示意图;

图5为本公开提供的具体的数据处理流程示意图;

图6为本公开实施例提供的具体的数据处理流程的场景示意图;

图7为本公开实施例提供的具体的数据处理流程的场景示意图;

图8为本公开提供的具体的音乐数据库中的数据处理过程示意图;

图9为本公开实施例提供的一种数据处理装置的结构示意图;

图10为本公开实施例提供的一种电子设备结构示意图。

具体实施方式

下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

为了方便理解,下面对本公开实施例中涉及的部分概念进行解释:

文档:搜索引擎当中具有一定数据结构的内容载体,相当于关系型数据库的表的行记录。

索引:搜索引擎中由相同结构文档构成的集合。

源表:相对于索引中用于保存文档内容来源的数据的表结构。

实时任务:实时监听源表变更并同步文档的任务。

全量任务:遍历所有源表数据构建并同步文档到搜索引擎的任务。

由于互联网技术的发展,越来越多的用户会使用搜索平台搜索想要查询的内容。而一般会使用两个关键技术以实现在搜索平台上查询内容,其分别为:用于将数据库中的文档同步到搜索引擎中的技术、以及基于用户输入的搜索关键字和搜索引擎中保存的文档的内容进行相关性匹配的技术。其中,用于将数据库中的文档同步到搜索引擎中的技术是实现用户能否在搜索平台上查询数据的前提。

在首次将数据库中保存的数据同步到搜索引擎中时,只需将数据库中的数据进行汇总并清洗,以获取适合存储在搜索引擎中的数据结构(例如,文档),然后将获取到的文档同步到搜索引擎中即可。但由于数据库中保存的数据可能随时会发生变化,需要实时监听数据库中保存的数据是否发生变更,比如,增删数据、更改数据等,并及时将变更的待同步数据同步到搜索引擎当中,以便用户可以查询到更新后的数据,保证搜索引擎中可被查询的内容的准确性。因此,如何实现准确且快速地将发生变更的待同步数据同步到搜索引擎中是近几年来人们日益关注的问题。

相关技术中,一般会采用实时任务和全量任务,以实现准确且快速地将发生变更的待同步数据同步到搜索引擎中。其中,实时任务可以保障将发生变更的待同步数据同步到搜索引擎中的实时性,全量任务可以保障发生变更的待同步数据均可以被同步到搜索引擎中。下面分别对实时任务和全量任务进行详细的介绍:

一、实时任务。为了方便介绍实时任务,结合附图进行介绍:

图1为本公开实施例提供的一种实时任务流程示意图。如图1所示,当数据库中保存的源表中存在数据发生变更时,数据库会向用于索引同步的电子设备发送一个目标数据信息发生变更的索引同步请求。电子设备接收到该索引同步请求后,获取数据库中该目标数据信息所在源表中的相关数据。根据获取到的相关数据,生成文档并将该文档发送到搜索引擎,以便搜索引擎根据该文档对保存的文档进行更新。

二、全量任务。为了方便介绍全量任务,结合附图进行介绍:

图2为本公开实施例提供的一种全量任务流程示意图。如图2所示,用于索引同步的电子设备按照预设的周期,获取数据库中保存的源表中的数据,即定时遍历数据库保存的源表中的数据。将获取到的数据进行汇总并清洗,以获取每个文档。然后将生成的每个文档发送到搜索引擎,以便搜索引擎根据接收到的每个文档,对保存的每个文档进行更新。

不管是实时任务还是全量任务,在实现对搜索引擎中的数据进行更新时,均存在数据库中保存的数据和搜索引擎中更新后的数据不一致的问题。

例如,对于实时任务,可能会由于多个索引同步请求的顺序,与生成的文档发送到搜索引擎的顺序不一致的问题,导致电子设备即使每次都会再获取发生变更的待同步数据的相关数据,后续也会存在先变更的待同步数据所对应的文档后被发送到搜索引擎中,导致电子设备会根据后来接收到的文档,对保存的索引文档进行更新,即根据现变更的待同步数据所对应的文档,对搜索引擎中后变更的待同步数据所对的索引文档进行更新。

再例如,对于全量任务,在电子设备获取到数据库中包含的每个数据后,搜索引擎基于接收到的文档对保存的索引文档进行更新之前,如果数据库中包含的数据又发生了变更,则会导致全量任务所同步的数据将实时任务同步的数据替换掉,导致数据库中保存的数据和搜索引擎中索引文档中的数据仍不一致的问题。

因此,为了解决现有无法及时且准确地对搜索引擎中的文档进行更新的问题,本公开提供了一种数据处理方法、装置、设备及介质。在本公开中,由于发生变更的目标数据信息对应有第一版本时间,该第一版本时间用于标识目标数据信息被更新的时间,并且目标标识信息的索引文档也对应有第二版本时间,该第二版本时间用于标识目标标识信息的索引文档被更新的时间,后续在根据目标数据信息,对所述目标标识信息的索引文档进行更新时,可以考虑到目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,从而有效避免目标数据信息被更新的时间早于目标标识信息的索引文档被更新的时间时,直接根据目标数据信息对目标标识信息的索引文档进行更新,导致目标标识信息的索引文档中后更新的数据被该目标数据信息替换的问题,有效提高了数据同步的准确性以及稳定性。

图3为本公开实施例提供的一种数据处理过程示意图,该过程包括:

s301:获取发生变更的目标数据信息的第一版本时间以及所述目标数据信息中包含的目标标识信息;其中,所述第一版本时间用于标识所述目标数据信息被更新的时间。

本公开提供的数据处理方法可应用于电子设备,该电子设备可以是服务器,也可以是智能设备等。具体实施过程中,可以根据实际需求进行灵活设置,在此不做具体限定。

为了方便且准确地确定需要进行更新的索引文档,在本公开中,当待同步数据发生变更时,电子设备会获取到发生变更的目标数据信息,该目标数据信息中包含有目标标识信息。后续,该电子设备可以根据该目标标识信息快速确定需要更新的索引文档。其中,该目标标识信息用于指示需要进行更新的索引文档,该索引文档可以为搜索引擎中保存的文档,也可以是备份数据库中保存的文档等。具体实施过程中,可以根据实际需求进行灵活设置,在此不做具体限定。

该待同步数据可以保存在数据库中,也可以保存在存储区域中。保存该待同步数据的设备可以与电子设备相同,也可以不同。

在一种示例中,该目标数据信息中可以只包括目标标识信息、以及发生变更的待同步数据。

在另一种示例中,该目标数据信息中可以包括目标标识信息以及目标标识信息所对应的每个待同步数据。每个待同步数据中包括发生变更的待同步数据,还可以包括没有发生变更的待同步数据。

需要说明的是,该目标标识信息可以表示为数字、字符串等,也可以表示为其他形式,只要唯一可以标识文档的表示形式均可以用于本公开中索引文档的标识信息。

而为了方便且准确地对文档进行更新,在本公开中,当待同步数据发生变更时,电子设备还会获取到发生变更的目标数据信息的版本时间(记为第一版本时间)。该第一版本时间用于标识目标数据信息被更新的时间。比如,该第一版本时间用于标识目标数据信息最晚被更新的时间。后续根据该第一版本时间,进行相应的处理,确定是否对目标标识信息的索引文档进行更新。

s302:根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新;所述第二版本时间用于标识所述目标标识信息的索引文档被更新的时间。

为了目标数据信息被更新的时间早于目标标识信息的索引文档被更新的时间时,直接根据目标数据信息对目标标识信息的索引文档进行更新,导致目标标识信息的索引文档中后更新的数据被该目标数据信息替换的问题,在本公开中,目标标识信息的索引文档也对应有版本时间(记为第二版本时间)。当基于上述的实施例获取到了目标数据信息的目标标识信息以及第一版本时间后,获取该目标标识信息的索引文档的第二版本时间,将该第一版本时间与第二版本时间进行比较。根据比较结果,确定是否对目标标识信息的索引文档进行更新。其中,第二版本时间用于标识目标标识信息的索引文档被更新的时间。比如,该第二版本时间用于标识目标标识信息的索引文档最晚被更新的时间确定的。

在一种示例中,一般按照被更新的时间的先后顺序对目标标识信息的索引文档进行更新的,因此,当第一版本时间晚于第二版本时间时,说明该目标数据信息的变更是在目标标识信息的索引文档被更新的时间之后发生的,则可以根据该目标数据信息,对目标标识信息的索引文档进行更新。

当第一版本时间早于第二版本时间时,说明该目标数据信息的变更是在目标标识信息的索引文档被更新的时间之前发生的,则可以不对目标标识信息的索引文档进行更新。

在一种可能的实施方式中,若目标数据信息只包括目标标识信息、以及发生变更的待同步数据,则为了准确地对目标标识信息的索引文档进行更新,当确定根据该目标数据信息,对目标标识信息的索引文档进行更新时,可以从保存待同步数据的设备获取该目标标识信息所对应的每个待同步数据,即回查保存待同步数据的设备中保存的该目标标识信息所对应的每个待同步数据,并根据该目标标识信息以及该目标标识信息所对应的每个待同步数据,构建目标文档。根据目标文档对目标标识信息的索引文档进行更新。

在另一种可能的实施方式中,若该目标数据信息中包括目标标识信息以及目标标识信息所对应的每个待同步数据,在额可以根据该目标数据信息,构建目标文档。根据目标文档对目标标识信息的索引文档进行更新。

在本公开中,由于发生变更的目标数据信息对应有第一版本时间,该第一版本时间用于标识目标数据信息被更新的时间,并且目标标识信息的索引文档也对应有第二版本时间,该第二版本时间用于标识目标标识信息的索引文档被更新的时间,后续在根据目标数据信息,对所述目标标识信息的索引文档进行更新时,可以考虑到目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,从而有效避免目标数据信息被更新的时间早于目标标识信息的索引文档被更新的时间时,直接根据目标数据信息对目标标识信息的索引文档进行更新,导致目标标识信息的索引文档中后更新的数据被该目标数据信息替换的问题,有效提高了数据同步的准确性以及稳定性。

为了及时对文档进行更新,在上述实施例的基础上,在本公开中,所述获取发生变更的目标数据信息,包括:

根据接收到的变更通知消息中携带的数据信息确定所述发生变更的目标数据信息。

在一种可能的实施方式中,由于可能存在随时对待同步数据进行变更的情况,为了及时对发生变更的待同步数据进行处理,可以实时监听保存待同步数据的设备中的数据变更情况,比如,通过监听保存待同步数据的设备的数据库binlog的变更事件。当确定待同步数据发生变化时,电子设备会接收到变更通知消息后,对该变更通知消息进行解析,获取该变更通知消息中携带的目标数据信息。

在另一种可能的实施方式中,所述获取发生变更的目标数据信息,包括:

若确定第一时间满足预设的确定条件,则确定在目标时间段内发生变更的待同步数据信息;将任一所述变更的待同步数据信息确定为所述目标数据信息;所述目标时间段为所述第一时间与第二时间之间的时间间隔;所述第二时间为上一次确定的满足所述确定条件的时间。

由于还可能存在定时对待同步数据进行变更,或,实时对发生变更的待同步数据进行同步的过程中存在部分数据没有被同步到电子设备中的情况,而为了保证电子设备可以获取到所有发生变更的待同步数据并同步,预设有确定条件。该确定条件可以是第一时间为预设的时间,也可以是第一时间与第二时间之间的时间间隔达到预设的时长,还可以为第一时间为接收到全量同步指令的时间。电子设备可以根据第一时间是否满足预设的确定条件,确定是否获取发生变更的目标数据信息。其中,第一时间可以为当前时间,也可以为当前时间之前预设时长的时间,当然还可以是预设的某一时间。第二时间为在第一时间之前的时间,该第二时间为上一次确定的满足确定条件的时间,可以理解的是,该第二时间为上一第一时间。

在一种示例中,若预设的确定条件为第一时间为接收到全量同步指令的时间,当用户希望将当前保存的所有待同步数据中,发生变更的每个待同步数据同步到电子设备中时,可以通过智能设备输入全量同步指令。其中,用户通过智能设备输入全量同步指令的方式有很多,可以通过操作控制设备的方式输入,比如,鼠标、头盔、遥控器等,可以通过语音的方式输入,也可以通过操作智能设备的显示器的方式输入,还可以通过操作智能设备上的硬件按钮输入。具体实施过程中,可以根据实际需求进行灵活设置,在此不做具体限定。当智能设备接收到用户输入的全量同步指令后,可以将该全量同步指令发送至电子设备。电子设备将接收到该全量同步指令的时间确定为第一时间,并确定该第一时间满足预设的确定条件。其中,全量同步指令为用于指示电子设备将第一时间的每个待同步数据分别同步到对应的索引文档中的指令。

需要说明的是,该电子设备与该智能设备可以相同也可以不同。具体实施过程中,可以根据实际需求进行灵活设置,在此不做具体限定。

在另一种示例中,若预设的确定条件为第一时间与第二时间之间的时间间隔达到预设的时长,当电子设备确定计时器上所记录的时长达到预设时长时,可以确定计时器上所记录时长达到预设时长时的时间为满足预设的确定条件的第一时间。该计时器上所记录的时长为该第一时间与第二时间之间的时间间隔,并且每当计时器上所记录的时长达到预设时长时,该计时器清零。

在相关技术中,对于待同步数据的数据量比较大的情况下,比如,上亿条待同步数据,则所有的待同步数据进行汇总并清洗,生成每个文档并将每个文档同步到搜索引擎中是非常耗时的,也不利于用户在电子设备进行全量任务过程中查询到准确地内容。因此,为了提高数据同步的效率,减少同步发生变更的待同步数据所耗费的时间,可以只将第一时间与第二时间之间的时间间隔(目标时间段)内发生变化的数据信息确定为目标数据信息并进行后续的同步。若确定第一时间满足上述的至少一种预设的确定条件,则获取在该目标时间段内发生变更的待同步数据信息。然后针对每个发生变更的待同步数据信息,将该发生变更的待同步数据信息确定为目标数据信息。

在一种可能的实施方式中,所述确定在目标时间段内发生变更的待同步数据信息,包括:

离线获取所述第一时间的每个待同步数据,并按照所述每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总;

针对每个所述标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息;

获取所述第二时间对应的每条第二数据信息;

根据所述每条第一数据信息、以及所述每条第二数据信息,确定在所述目标时间段内发生变更的待同步数据信息,并根据所述每条第一数据信息,对所述每条第二数据信息进行更新。

相关技术中,在根据获取到的每个待同步数据生成文档的过程中,频繁多次读取保存待同步数据的设备,会造成保存待同步数据的设备的读压力变大,可能会影响其他业务,或者造成保存待同步数据的设备宕机。基于此,为了避免上述问题的发生,可以离线获取第一时间的保存的每个待同步数据,即从第一时间开始,依次或随机离线获取保存待同步数据的设备中保存的每个待同步数据。在该离线获取过程中,仍可以对该待同步数据的设备中保存的每个待同步数据进行更新。

离线获取到第一时间的保存的每个待同步数据后,按照每个待同步数据分别对应的标识信息,将每个待同步数据汇总,即获取每个标识信息分别对应的数据集合。然后针对每个标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息。

例如,将该标识信息以及该标识信息所对应的每个待同步数据拼接。

再例如,将该标识信息所对应的每个待同步数据进行去重处理,然后将该标识信息以及去重处理后的待同步数据拼接。其中,将该标识信息所对应的每个待同步数据进行去重处理包括:若确定该标识信息所对应的m个待同步数据中存在完全相同的n个待同步数据,则将该n个待同步数据中的n-1个待同步数据删除。其中,n为大于等于2且小于等于m的整数,m为大于等于2的整数。

当基于上述的实施例获取到每个第一数据信息后,获取第二时间对应的每条数据信息。然后根据每条第一数据信息以及每条第二数据信息,确定目标时间段内发生变更的待同步数据信息。

在一种可能的实施方式中,所述根据所述每条第一数据信息、以及所述每条第二数据信息,确定在所述目标时间段内发生变更的待同步数据信息,包括:

针对所述每条第一数据信息包含的标识信息,若确定不存在包含该标识信息的第二数据信息,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息;若确定存在包含该标识信息的第二数据信息,且所述第二数据信息与包含该标识信息的第一数据信息不一致,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息。

由于在目标时间段内,可能对第二时间所保存的待同步数据进行了修改、新增、删除等处理。基于此,在确定每个第一数据信息中发生变更的待同步数据信息时,可以针对每条第一数据信息包含的标识信息,判断该标识信息是否与任一第二数据信息所包含的标识信息匹配,即判断是否存在包含该标识信息的第二数据信息。

若确定不存在包含该标识信息的第二数据信息,说明该第一数据信息是目标时间段内新增的数据信息,则可以将该第一数据信息确定为发生变更的待同步数据信息。

若确定存在包含该标识信息的第二数据信息,说明该第一数据信息不是目标时间段内新增的数据信息,但有可能是其他变更类型的数据信息,则可以继续判断包含该标识信息的第二数据信息是否与该第一数据信息不一致,从而准确地确定该第一数据信息是否为发生变更的待同步数据信息。

若确定包含该标识信息的第二数据信息与该第一数据信息不一致,说明该第一数据信息为其他变更类型的数据信息,则确定该第一数据信息为发生变更的待同步数据信息;若确定包含该标识信息的第二数据信息与该第一数据信息一致,说明该第一数据信息可能在目标时间段内并未发生变更,则确定该第一数据信息不为发生变更的待同步数据信息。

为了方便在下一个满足预设的确定条件的第一时间,确定发生变更的待同步数据信息,当基于上述的实施例,从第一数据信息中确定发生变更的待同步数据信息后,根据每个第一数据信息,对保存的第二数据信息进行更新。

通过上述离线的方式确定目标数据信息,不仅可以方便电子设备准确地获取到目标数据信息,还可以降低对保存待同步数据的设备的读压力。后续可以只对确定的目标数据信息进行同步,减少了电子设备在数据同步过程中所需的工作量,进而减少同步保存的每个待同步数据所耗费的时间,提高了同步保存的每个待同步数据的效率。

下面通过具体的实施例对本公开提供的数据处理方法进行介绍,图4为本公开提供的具体的数据处理流程示意图,如图4所示,该流程包括:

s401:若接收到变更通知消息,则根据接收到的变更通知消息中携带的数据信息,确定发生变更的目标数据信息,执行s408。

s402:若确定第一时间满足预设的确定条件,则离线获取第一时间的每个待同步数据。

其中,本公开不对s401和s402的执行顺序进行限定,即s401可以执行在s402之前,s401也可以执行在s402之后,s401和s402可以同时执行。

在一种可能的实施方式中,若确定第一时间为接收到全量同步指令的时间,则确定第一时间满足预设的确定条件。其中,该全量同步指令为将第一时间的每个待同步数据分别同步到对应的索引文档中的指令。

在另一种可能的实施方式中,若确定第一时间与第二时间之间的时间间隔达到预设的时长,则确定第一时间满足预设的确定条件。

其中,第二时间为上一次确定的满足确定条件的时间。

s403:按照s402获取到的每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总。

s404:针对s403中的每个标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息。

s405:获取第二时间对应的每条第二数据信息。

s406:根据每条第一数据信息、以及每条第二数据信息,确定在目标时间段内发生变更的待同步数据信息。

其中,具体的确定在目标时间段内发生变更的待同步数据信息包括:

针对每条第一数据信息包含的标识信息,若确定不存在包含该标识信息的第二数据信息,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息;若确定存在包含该标识信息的第二数据信息,且第二数据信息与包含该标识信息的第一数据信息不一致,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息。

s407:根据每条第一数据信息,对每条第二数据信息进行更新。

s408:获取发生变更的目标数据信息的第一版本时间以及目标数据信息中包含的目标标识信息。

s409:根据目标标识信息的索引文档的第二版本时间以及第一版本时间的比较结果,确定是否对目标标识信息的索引文档进行更新。

为了提高数据同步过程中的准确性,在上述各实施例的基础上,在本公开中,所述方法还包括:

获取所述目标数据信息的目标变更类型;

判断所述目标变更类型是否为删除类型;所述删除类型表示删除所述目标数据信息包含的所述目标标识信息对应的每个待同步数据;

若所述目标变更类型为删除类型,则直接将所述目标标识信息的索引文档包含的所述目标标识信息对应的每个待同步数据删除,并根据所述目标数据信息对应的第三时间,更新所述目标标识信息的索引文档的第二版本时间;

若所述目标变更类型不为删除类型,则执行后续根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新的步骤。

为了方便且准确地对文档进行更新,在本公开中,当待同步数据发生变更时,电子设备还会获取到发生变更的目标数据信息的目标变更类型,以方便后续根据该目标变更类型,确定具体的对目标标识信息的索引文档进行更新的方式。其中,目标变更类型可以为删除、新增、修改等。

一般情况下,删除了的索引文档后续是不允许继续写入的。因此,在目标数据信息的目标变更类型为删除时,可以直接将目标标识信息的索引文档中该目标标识信息所对应的每个数据删除即可,无需后续再从保存待同步数据的设备中获取该目标标识信息对应的每个待同步数据,或去比较第一版本时间和第二版本时间的大小。基于此,在本公开中,若目标变更类型为删除类型,说明要删除目标标识信息的索引文档包含的目标标识信息对应的每个数据,则可以将目标标识信息的索引文档包含的目标标识信息对应的每个数据删除,并根据目标数据信息对应的第三时间,更新该目标标识信息的索引文档的第二版本时间。

其中,目标数据信息对应的第三时间可以是根据删除目标标识信息的索引文档包含的目标标识信息对应的每个待同步数据的时间确定的,可以是预设的某一时间确定,还可以是根据当前时间确定的。具体实施过程中可以根据实际需求进行灵活设置,在此不做具体赘述。

在另一种可能的实施方式中,目标数据类型的目标变更类型也可能不为删除类型,对于不为删除类型的变更,则需要根据目标标识信息的索引文档的第二版本时间以及第一版本时间的比较结果,确定是否对目标标识信息的索引文档进行更新。

若目标变更类型不为删除类型,说明不需要删除目标标识信息的索引文档包含的目标标识信息对应的每个待同步数据,则可以根据目标数据信息的第一版本时间及第一版本时间的比较结果,确定是否对目标标识信息的索引文档进行更新。

在一种示例中,所述根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新,包括:

若确定不存在所述目标标识信息的索引文档的第二版本时间,或,所述第二版本时间不晚于所述第一版本时间,则根据所述目标数据信息,对所述目标标识信息的索引文档进行更新;并根据所述第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;

若确定存在所述目标标识信息的索引文档的第二版本时间,且所述第二版本时间晚于所述第一版本时间,确定不对所述目标标识信息的索引文档进行更新。

由于可能存在目标标识信息的索引文档对应有第二版本信息,也可能没有对应的第二版本信息的情况,因此,在根据目标数据信息的第一版本时间及第一版本时间的比较结果,确定是否对目标标识信息的索引文档进行更新时,可以先确定是否存在目标标识信息的索引文档的第二版本时间,以及存在第二版本时间时,第二版本时间与第一版本时间的比较结果,确定目标标识信息的索引文档的被更新的时间是否早于该目标数据信息被更新的时间,从而确定是否根据目标数据信息,对目标标识信息的索引文档进行更新。

在一种示例中,若确定不存在该目标标识信息的索引文档的第二版本时间,或第二版本时间不晚于第一版本时间,说明该目标标识信息的索引文档的被更新的时间要早于该目标数据信息被更新的时间的,则可以直接根据目标数据信息,对目标标识信息的索引文档进行更新。

为了方便下一次对目标标识信息的索引文档进行更新,可以根据目标数据信息的第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新。

在另一种示例中,若确定存在该目标标识信息的索引文档的第二版本时间,且第二版本时间晚于第一版本时间,说明该目标标识信息的索引文档的被更新的时间要晚于该目标数据信息被更新的时间的,则确定不对目标标识信息的索引文档进行更新。

在一种可能的实施方式中,根据所述目标变更类型及所述目标数据信息,对所述目标标识信息的索引文档进行更新具体可以通过如下计算逻辑实现:

其中,params.deleted表示目标数据信息的变更类型为删除类型,doc为目标标识信息的索引文档,params为目标数据信息,doc.dataversion为第二版本时间,params.dataversion为第一版本时间。

通过是否保存有第二版本时间,以及保存有第二版本时间时,第二版本时间以及第一版本时间的比较,确定目标标识信息的索引文档的被更新的时间是否早于该目标数据信息被更新的时间,进而确定是否根据目标数据信息,对目标标识信息的索引文档进行更新,避免了获取到的多个目标数据信息之间的顺序,与该多个目标数据信息之间发生数据变更的顺序不一致时,导致更新后的目标标识信息的索引文档与待同步的数据不一致的问题,提高了数据同步的准确性以及稳定性。

下面通过具体的实施例对本公开提供的数据处理方法进行介绍,图5为本公开提供的具体的数据处理流程示意图,如图5所示,该流程包括:

s501:获取发生变更的目标数据信息。

其中,具体获取发生变更的目标数据信息的过程,可以参见上述实施例中图4所示的s401~s407。

s502:获取发生变更的目标数据信息的第一版本时间以及目标数据信息中包含的目标标识信息。

在一种可能的实施方式中,若通过图4所示的s402~s407,获取到的目标数据信息,即目标数据信息是通过目标时间段内发生变更的待同步数据信息确定的,则确定目标数据信息包含的目标标识信息对应的待同步数据被更新的时间;根据被更新的时间、以及第一时间,确定第一版本时间。

在另一种可能的实施方式中,若通过图4所示的s401,获取到的目标数据信息,即目标数据信息是通过接收到的通知信息确定的,则确定目标数据信息包含的目标标识信息对应的待同步数据被更新的时间;根据被更新的时间、以及目标数据信息对应的第四时间,确定第一版本时间。

s503:获取目标数据信息的目标变更类型。

s504:判断目标变更类型是否为删除类型,若是,则执行s505,否则,执行s506。

其中,该删除类型表示删除目标数据信息包含的目标标识信息对应的每个待同步数据。

s505:直接将目标标识信息的索引文档包含的目标标识信息对应的每个待同步数据删除,并根据目标数据信息对应的第三时间,更新目标标识信息的索引文档的第二版本时间。

s506:根据目标标识信息的索引文档的第二版本时间以及第一版本时间的比较结果,确定是否对目标标识信息的索引文档进行更新。

其中,具体根据目标标识信息的索引文档的第二版本时间以及第一版本时间的比较结果,确定是否对目标标识信息的索引文档进行更新的过程,包括:

若确定不存在目标标识信息的索引文档的第二版本时间,或,第二版本时间不晚于第一版本时间,则根据目标数据信息,对目标标识信息的索引文档进行更新;并根据第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;

若确定存在目标标识信息的索引文档的第二版本时间,且第二版本时间晚于第一版本时间,确定不对目标标识信息的索引文档进行更新。

为了提高了数据同步的准确性以及稳定性,在上述各实施例的基础上,在本公开中,可以通过如下方式获取所述第一版本时间:

若所述目标数据信息是通过目标时间段内发生变更的待同步数据信息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述第一时间,确定所述第一版本时间;

若所述目标数据信息是通过接收到的通知消息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述目标数据信息对应的第四时间,确定所述第一版本时间。

作为一种可能的实施方式,可以将目标数据信息包含的目标标识信息对应的待同步数据被更新的时间中,最晚的被更新的时间确定为第一版本时间。

作为另一种可能的实施方式,由于在离线获取第一时间的所有待同步数据时,是从第一时间开始,离线每个待同步数据的。在离线完所有的待同步数据的过程中,可能仍存在对待同步数据进行变更的操作,导致离线获取到的待同步数据中,有的待同步数据所对应的被更新的时间在该第一时间之后,也可能在该第一时间之前,甚至有得待同步数据可能不存在对应的被更新的时间。因此,在确定目标数据信息的第一版本时间时,若目标数据信息是通过目标时间段内发生变更的待同步数据信息确定的,可以先确定目标数据信息包含的目标标识信息对应的待同步数据的被更新的时间中,最晚的被更新的时间。然后将该最晚的被更新的时间与开始离线的时间(即第一时间)进行比较,根据比较结果,确定目标数据信息的第一版本时间。其中,若该目标数据信息包含的目标标识信息对应的待同步数据数据未记录有被更新的时间,则可以将该被更新的时间确定为任一不大于第一时间的时间。比如,可以为第一时间,也可以为0等。

在一种示例中,可以将最晚的被更新的时间以及第一时间中的最大值确定为第一版本时间。具体可以通过如下计算逻辑确定:

dataversion=max(max(relatedentitiesupdatetime),dumptaskstarttime)

其中,dataversion为第一版本时间,relatedentitiesupdatetime为最晚的被更新的时间,dumptaskstarttime为第一时间。

例如,若最晚的被更新的时间大于第一时间,说明该最晚的被更新的时间晚于第一时间,则将该最晚的被更新的时间确定为第一版本时间。

再例如,若最晚的被更新的时间不大于第一时间,说明该最晚的被更新的时间不晚于第一时间,则将该第一时间确定为第一版本时间。

作为再一种可能的实施方式,为了避免网络状态等原因,导致目标数据信息的发送顺序与接收目标数据信息的顺序不同,从而影响对索引文档的更新,在目标数据信息是通过接收到的通知消息确定的时,还可以根据目标数据信息包含的目标标识信息对应的待同步数据被更新的时间、以及生成通知消息的时间(记为第四时间),确定第一版本时间。

在确定目标数据信息的第一版本时间时,若目标数据信息是通过目标时间段内发生变更的待同步数据信息确定的,可以先确定目标数据信息包含的目标标识信息对应的待同步数据被更新的时间中,最晚的被更新的时间。然后将该最晚的被更新的时间与第四时间进行比较,根据比较结果,确定目标数据信息的第一版本时间。其中,若该目标数据信息包含的目标标识信息对应的待同步数据数据未记录有被更新的时间,则可以将该被更新的时间确定为任一不大于第四时间的时间。比如,可以为第四时间,也可以为0等。

在一种示例中,可以将最晚的被更新的时间以及第三间中的最大值确定为第一版本时间。具体可以通过如下计算逻辑确定:

dataversion=max(max(relatedentitiesupdatetime),currtime)

其中,dataversion为第一版本时间,relatedentitiesupdatetime为最晚的被更新的时间,currtime为第四时间。

例如,若最晚的被更新的时间大于第四时间,说明该最晚的被更新的时间晚于第四时间,则将该最晚的被更新的时间确定为第一版本时间。

再例如,若最晚的被更新的时间不大于第四时间,说明该最晚的被更新的时间不晚于第四时间,则将该第四时间确定为第一版本时间。

通过上述实施例中的方法确定第一版本时间,保证了该第一版本时间可以精准地表征最晚更新目标数据信息的时间,进而有利于后续通过第二版本时间以及第一版本时间的比较,确定目标标识信息的索引文档的被更新的时间是否早于该目标数据信息被更新的时间,进而确定是否根据目标数据信息,对目标标识信息的索引文档进行更新,避免了获取到的多个目标数据信息之间的顺序,与该多个目标数据信息之间发生数据变更的顺序不一致时,导致更新后的目标标识信息的索引文档与待同步的数据不一致的问题,提高了数据同步的准确性以及稳定性。

下面通过具体的实施例对本公开提供的数据处理方法进行描述,图6为本公开实施例提供的具体的数据处理流程的场景示意图。如图6所示,当确定第一时间满足预设的确定条件时,获取用于保存待同步数据的设备中保存的待同步数据。该待同步数据是在该设备中的数据库中,以源表的形式进行保存的。

例如,若确定第一时间与第二时间之间的时间间隔达到预设的时长,dump用于保存待同步数据的设备中保存的源表中的每个待同步数据。其中,第二时间为上一次确定的满足确定条件的时间。

按照每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总。比如,将dump到的源表中包含的每个待同步数据进行join。

针对每个标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息。其中,该第一数据信息的数据格式可以与索引文档的数据格式相同。

例如,可以通过spark大数据平台根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息。

获取第二时间对应的每条第二数据信息。

根据每条第一数据信息、以及每条第二数据信息,确定在目标时间段内发生变更的待同步数据信息,并根据每条第一数据信息,对每条第二数据信息进行更新。其中,目标时间段为第一时间与第二时间之间的时间间隔,将任一变更的待同步数据信息确定为目标数据信息。

对于确定的任一目标数据信息,均执行以下的步骤:

获取发生变更的目标数据信息的第一版本时间、获取目标数据信息的目标变更类型、以及目标数据信息中包含的目标标识信息。

其中,可以通过确定目标数据信息包含的目标标识信息对应的待同步数据被更新的时间;根据被更新的时间、以及目标数据信息对应的第四时间,确定第一版本时间。

判断目标变更类型是否为删除类型。其中,删除类型表示删除目标数据信息包含的目标标识信息对应的每个待同步数据。

若目标变更类型为删除类型,则直接将目标标识信息的索引文档包含的目标标识信息对应的每个待同步数据删除,并根据目标数据信息对应的第三时间,更新目标标识信息的索引文档的第二版本时间。

若目标变更类型不为删除类型,则判断是否存在目标标识信息的索引文档的第二版本时间,以及第二版本时间是否不晚于第一版本时间。

若确定不存在目标标识信息的索引文档的第二版本时间,或,第二版本时间不晚于第一版本时间,则根据目标数据信息,对目标标识信息的索引文档进行更新;并根据第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;

若确定存在目标标识信息的索引文档的第二版本时间,且第二版本时间晚于第一版本时间,确定不对目标标识信息的索引文档进行更新。

下面通过具体的实施例对本公开提供的数据处理方法进行描述,图7为本公开实施例提供的具体的数据处理流程的场景示意图。如图7所示,可以实时监听用于保存待同步数据的设备中保存的待同步数据的变更时间。比如,用于保存待同步数据的设备中保存的待同步数据。该待同步数据是在该设备中的数据库中,以源表的形式进行保存的,电子设备监听数据库binlog的变更时间。

当接收到的变更通知消息时,对该变更通知消息进行解析,获取该变更通知信息中携带的发生变更的目标数据信息的第一版本时间、获取目标数据信息的目标变更类型、以及目标数据信息中包含的目标标识信息。

其中,可以确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间。根据所述被更新的时间、以及所述第一时间,确定所述第一版本时间。

判断目标变更类型是否为删除类型。其中,删除类型表示删除目标数据信息包含的目标标识信息对应的每个待同步数据。

若目标变更类型为删除类型,则直接将目标标识信息的索引文档包含的目标标识信息对应的每个待同步数据删除,并根据目标数据信息对应的第三时间,更新目标标识信息的索引文档的第二版本时间。

若目标变更类型不为删除类型,则判断是否存在目标标识信息的索引文档的第二版本时间,以及第二版本时间是否不晚于第一版本时间。

若确定不存在目标标识信息的索引文档的第二版本时间,或,第二版本时间不晚于第一版本时间,则根据目标数据信息,对目标标识信息的索引文档进行更新;并根据第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;

若确定存在目标标识信息的索引文档的第二版本时间,且第二版本时间晚于第一版本时间,确定不对目标标识信息的索引文档进行更新。

在本公开中,由于发生变更的目标数据信息对应有第一版本时间,该第一版本时间用于标识目标数据信息被更新的时间,并且目标标识信息的索引文档也对应有第二版本时间,该第二版本时间用于标识目标标识信息的索引文档被更新的时间,后续在根据目标数据信息,对所述目标标识信息的索引文档进行更新时,可以考虑到目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,从而有效避免目标数据信息被更新的时间早于目标标识信息的索引文档被更新的时间时,直接根据目标数据信息对目标标识信息的索引文档进行更新,导致目标标识信息的索引文档中后更新的数据被该目标数据信息替换的问题,有效提高了数据同步的准确性以及稳定性。

下面结合具体的应用场景进行说明,图8为本公开提供的具体的音乐数据库中的数据处理过程示意图,该过程包括:

在用于保存待同步数据的设备中保存有清单行宽表、歌曲宽表、以及授权书合同宽表,每个表中保存有待同步数据。

若确定第一时间与第二时间之间的时间间隔达到预设的时长,dump用于保存待同步数据的设备中保存的源表。

按照清单行宽表和授权书合同宽表中保存的每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总,获取清单-授权书聚合表。

再按照清单-授权书聚合表和歌曲宽表中保存的每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总,获取歌曲清单宽表。

针对每个标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息并将该数据信息的数据格式转换为doc。

获取第二时间对应的每条第二数据信息。

根据每条第一数据信息、以及每条第二数据信息,确定在目标时间段内发生变更的待同步数据信息。其中,目标时间段为第一时间与第二时间之间的时间间隔,将任一变更的待同步数据信息确定为目标数据信息。

对于确定的任一目标数据信息,均执行以下的数据同步地步骤:

获取发生变更的目标数据信息的第一版本时间、获取目标数据信息的目标变更类型、以及目标数据信息中包含的目标标识信息。

其中,可以通过确定目标数据信息包含的目标标识信息对应的待同步数据被更新的时间;根据被更新的时间、以及目标数据信息对应的第四时间,确定第一版本时间。

判断目标变更类型是否为删除类型。其中,删除类型表示删除目标数据信息包含的目标标识信息对应的每个待同步数据。

若目标变更类型为删除类型,则直接将目标标识信息的索引文档包含的目标标识信息对应的每个待同步数据删除,并根据目标数据信息对应的第三时间,更新目标标识信息的索引文档的第二版本时间。

若目标变更类型不为删除类型,则判断是否存在目标标识信息的索引文档的第二版本时间,以及第二版本时间是否不晚于第一版本时间。

若确定不存在目标标识信息的索引文档的第二版本时间,或,第二版本时间不晚于第一版本时间,则根据目标数据信息,对目标标识信息的索引文档进行更新;并根据第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;

若确定存在目标标识信息的索引文档的第二版本时间,且第二版本时间晚于第一版本时间,确定不对目标标识信息的索引文档进行更新。

当确定将每个目标数据信息同步到了分别对应的索引文档中后,可以将同步结果通过预设的通信方式通知相关工作人员。

本公开还提供了一种数据处理装置,图9为本公开实施例提供的一种数据处理装置的结构示意图,该装置包括:

处理单元91,用于获取发生变更的目标数据信息的第一版本时间以及所述目标数据信息中包含的目标标识信息;其中,所述第一版本时间用于标识所述目标数据信息被更新的时间;

更新单元92,用于根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新;所述第二版本时间用于标识所述目标标识信息的索引文档被更新的时间。

由于上述数据处理装置解决问题的原理与数据处理方法相似,因此上述数据处理装置的实施可以参见方法的实施,重复之处不再赘述。

在一种可能的实施方式中,所述处理单元91,具体用于根据接收到的变更通知消息中携带的数据信息确定所述发生变更的目标数据信息。

在一种可能的实施方式中,所述处理单元91,具体用于若确定第一时间满足预设的确定条件,则确定在目标时间段内发生变更的待同步数据信息;将任一所述变更的待同步数据信息确定为所述目标数据信息;所述目标时间段为所述第一时间与第二时间之间的时间间隔;所述第二时间为上一次确定的满足所述确定条件的时间。

在一种可能的实施方式中,所述处理单元91,具体用于若确定所述第一时间为接收到全量同步指令的时间,则确定所述第一时间满足预设的确定条件;所述全量同步指令为将所述第一时间的每个待同步数据分别同步到对应的索引文档中的指令;或,若确定所述第一时间与所述第二时间之间的时间间隔达到预设的时长,则确定所述第一时间满足预设的确定条件。

在一种可能的实施方式中,所述处理单元91,具体用于离线获取所述第一时间的每个待同步数据,并按照所述每个待同步数据分别对应的标识信息,将每个待同步数据进行汇总;针对每个所述标识信息,根据该标识信息以及该标识信息所对应的每个待同步数据,确定第一数据信息;获取所述第二时间对应的每条第二数据信息;根据所述每条第一数据信息、以及所述每条第二数据信息,确定在所述目标时间段内发生变更的待同步数据信息,并根据所述每条第一数据信息,对所述每条第二数据信息进行更新。

在一种可能的实施方式中,所述处理单元91,具体用于针对所述每条第一数据信息包含的标识信息,若确定不存在包含该标识信息的第二数据信息,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息;若确定存在包含该标识信息的第二数据信息,且所述第二数据信息与包含该标识信息的第一数据信息不一致,则将包含该标识信息的第一数据信息确定为发生变更的待同步数据信息。

在一种可能的实施方式中,所述获取单元,还用于获取所述目标数据信息的目标变更类型;

所述更新单元92,还用于判断所述目标变更类型是否为删除类型;所述删除类型表示删除所述目标数据信息包含的所述目标标识信息对应的每个待同步数据;若所述目标变更类型为删除类型,则直接将所述目标标识信息的索引文档包含的所述目标标识信息对应的每个待同步数据删除,并根据所述目标数据信息对应的第三时间,更新所述目标标识信息的索引文档的第二版本时间;若所述目标变更类型不为删除类型,则执行后续根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新的步骤。

在一种可能的实施方式中,所述更新单元92,具体用于若确定不存在所述目标标识信息的索引文档的第二版本时间,或,所述第二版本时间不晚于所述第一版本时间,则根据所述目标数据信息,对所述目标标识信息的索引文档进行更新;并根据所述第一版本时间,对更新后的目标标识信息的索引文档的第二版本时间进行更新;若确定存在所述目标标识信息的索引文档的第二版本时间,且所述第二版本时间晚于所述第一版本时间,确定不对所述目标标识信息的索引文档进行更新。

在一种可能的实施方式中,所述更新单元92,具体用于通过如下方式获取所述第一版本时间:

若所述目标数据信息是通过所述变更的待同步数据信息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述第一时间,确定所述第一版本时间;

若所述目标数据信息是通过接收到的通知消息确定的,确定所述目标数据信息包含的所述目标标识信息对应的待同步数据被更新的时间;根据所述被更新的时间、以及所述目标数据信息对应的第四时间,确定所述第一版本时间。

在本公开中,由于发生变更的目标数据信息对应有第一版本时间,该第一版本时间用于标识目标数据信息被更新的时间,并且目标标识信息的索引文档也对应有第二版本时间,该第二版本时间用于标识目标标识信息的索引文档被更新的时间,后续在根据目标数据信息,对所述目标标识信息的索引文档进行更新时,可以考虑到目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,从而有效避免目标数据信息被更新的时间早于目标标识信息的索引文档被更新的时间时,直接根据目标数据信息对目标标识信息的索引文档进行更新,导致目标标识信息的索引文档中后更新的数据被该目标数据信息替换的问题,有效提高了数据同步的准确性以及稳定性。

如图10为本公开实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本公开实施例还提供了一种电子设备,如图10所示,包括:处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信;

所述存储器1003中存储有计算机程序,当所述程序被所述处理器1001执行时,使得所述处理器1001执行如下步骤:

获取发生变更的目标数据信息的第一版本时间以及所述目标数据信息中包含的目标标识信息;其中,所述第一版本时间用于标识所述目标数据信息被更新的时间;

根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新;所述第二版本时间用于标识所述目标标识信息的索引文档被更新的时间。

由于上述电子设备解决问题的原理与数据处理方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口1002用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述处理器可以是通用处理器,包括中央处理器、网络处理器(networkprocessor,np)等;还可以是数字指令处理器(digitalsignalprocessing,dsp)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

在上述各实施例的基础上,本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:

获取发生变更的目标数据信息的第一版本时间以及所述目标数据信息中包含的目标标识信息;其中,所述第一版本时间用于标识所述目标数据信息被更新的时间;

根据所述目标标识信息的索引文档的第二版本时间以及所述第一版本时间的比较结果,确定是否对所述目标标识信息的索引文档进行更新;所述第二版本时间用于标识所述目标标识信息的索引文档被更新的时间。

由于计算机可读存储介质解决问题的原理与上述数据处理方法相似,因此具体实施可以参见数据处理方法的实施,重复之处不再赘述。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1