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

文档序号:17089232发布日期:2019-03-13 23:14阅读:167来源:国知局
数据同步方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种数据同步方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,产生了大量的数据。当数据在不同的电子设备中进行修改时,需要进行数据同步。在传统的数据同步技术中,根据字符序号进行控制更新。根据字符序号获取一端的电子设备中的全部数据,对另一端的电子设备中字符序号对应的全部数据进行替换。这种将全部数据替换进行同步的方法,很容易将电子设备中修改后的数据进行替换,存在准确性低的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高准确性的数据同步方法、装置、计算机设备和存储介质。

一种数据同步方法,应用于数据接收端,所述方法包括:

接收数据发送端发送的第一数据集合,其中,所述第一数据集合中包含至少一条第一数据及每一条所述第一数据对应的第一时间戳,所述第一时间戳用于表示所述第一数据最近一次修改的时刻;

获取对应于所述第一数据集合的第二数据集合,其中,所述第二数据集合中包含至少一条第二数据及每一条所述第二数据对应的第二时间戳,所述第二时间戳用于表示所述第二数据最近一次修改的时刻;

将所述第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果;

根据比较结果生成同步数据集合,并将所述同步数据集合发送至所述数据发送端,所述同步数据集合用于所述数据发送端对所述第一数据集合进行更新;

根据所述同步数据集合对所述第二数据集合进行更新。

在一个实施例中,所述将所述第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:

将所述第一数据的第一时间戳与对应的第二数据的第二时间戳进行比较,获取所述第一时间戳和第二时间戳中时刻较晚的时间戳作为同步时间戳;

获取各个所述同步时间戳对应的第一数据或第二数据作为同步数据;

根据所述同步数据得到比较结果。

在一个实施例中,所述将所述第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:

获取所述第一数据集合对应的第一同步时间戳,以及所述第二数据集合对应的第二同步时间戳,其中,所述第一同步时间戳用于表示所述第一数据集合最近一次更新成功的时刻,所述第二同步时间戳用于表示所述第二数据集合最近一次更新成功的时刻;

从所述第一数据集合中包含的第一数据中获取第一比较数据,其中,所述第一比较数据对应的第一时间戳晚于第一同步时间戳;

从所述第二数据集合中包含的第二数据中获取第二比较数据,其中,所述第二比较数据对应的第二时间戳晚于第二同步时间戳;

将所述第一比较数据的第一时间戳与第二比较数据的第二时间戳进行比较,得到比较结果。

在一个实施例中,所述接收数据发送端发送的第一数据集合之后,还包括:

将所述第一数据集合中包含的每一条第一数据从第一格式转换为第二格式得到第一目标数据,并将第一目标数据对应的第一时间戳作为第一目标时间戳;

所述获取第二数据集合之后,还包括:

将所述第二数据集合中包含的每一条第二数据从第三格式转换为所述第二格式得到第二目标数据,并将第二目标数据对应的第二时间戳作为第二目标时间戳;

所述将所述第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:

将所述第一目标数据的第一目标时间戳与第二目标数据的第二目标时间戳进行比较,得到比较结果。

在一个实施例中,所述方法还包括:

获取所述第一数据集合中不存在对应第一标识的第一数据作为第一新增数据,并获取所述第二数据集合中不存在对应第二标识的第二数据作为第二新增数据;

所述根据比较结果生成同步数据集合,包括:

对第一新增数据生成第一新增标识,并对第二新增数据生成第二新增标识;

根据第一新增数据和对应的第一新增标识,第二新增数据和对应的第二新增标识以及比较结果生成同步数据集合。

在一个实施例中,所述根据比较结果生成同步数据集合之后,还包括:

对所述同步数据集合进行校验;

当所述同步数据集合校验成功时,执行将所述同步数据集合发送至所述数据发送端步骤。

在一个实施例中,所述同步数据标识中包含的每一个同步数据对应一个同步标识,所述同步标识用于唯一标示一个同步数据,对所述同步数据集合进行校验,包括:

当所述同步数据集合中的一个同步数据被另外一个同步数据引用时,将被引用的同步数据作为被引用数据;

根据所述被引用数据对应的同步标识生成第一标识集合;

根据所述同步数据集合中包含的所有同步数据所对应的同步标识生成第二标识集合;

根据所述第一标识集合和第二标识集合对所述同步数据集合进行校验;

所述当所述同步数据集合校验成功时,执行将所述同步数据集合发送至所述数据发送端步骤,包括:

当所述第一标识集合中的同步标识都包含在所述第二标识集合中时,判定所述同步数据集合校验成功,执行将所述同步数据集合发送至所述数据发送端步骤。

在一个实施例中,所述将所述同步数据集合发送至所述数据发送端,包括:

将所述同步数据集合中包含的每一条同步数据从所述第二格式转换为所述第一格式得到第一同步数据,并将所述第一同步数据发送至所述数据发送端;

所述根据所述同步数据集合对所述第二数据集合进行更新,包括:

当接收到数据发送端发送的更新成功指令时,将所述同步数据集合中包含的每一条同步数据从所述第二格式转换为第三格式得到第二同步数据;

根据所述第二同步数据对所述第二数据集合进行更新。

一种数据同步方法,应用于数据发送端,所述方法包括:

发送第一数据集合至数据接收端,其中,所述第一数据集合中包含至少一条第一数据及每一条所述第一数据对应的第一时间戳,所述第一时间戳用于表示所述第一数据最近一次修改的时刻,所述第一数据集合用于指示数据接收端获取对应的第二数据集合,所述第二数据集合中包含至少一条第二数据及每一条所述第二数据对应的第二时间戳,所述第二时间戳用于表示所述第二数据最近一次修改的时刻;

接收所述数据接收端发送的同步数据集合,其中,所述同步数据集合用于所述数据接收端对所述第二数据集合进行更新,所述同步数据集合是根据比较结果生成的,所述比较结果是根据第一数据的第一时间戳与第二数据的第二时间戳进行比较得到的;

根据所述同步数据集合对所述第一数据集合进行更新。

一种数据同步装置,应用数据接收端,所述装置包括:

接收模块,用于接收数据发送端发送的第一数据集合,其中,所述第一数据集合中包含至少一条第一数据及每一条所述第一数据对应的第一时间戳,所述第一时间戳用于表示所述第一数据最近一次修改的时刻;

获取模块,用于获取对应于所述第一数据集合的第二数据集合,其中,所述第二数据集合中包含至少一条第二数据及每一条所述第二数据对应的第二时间戳,所述第二时间戳用于表示所述第二数据最近一次修改的时刻;

比较模块,用于将所述第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果;

发送模块,用于根据比较结果生成同步数据集合,并将所述同步数据集合发送至所述数据发送端,所述同步数据集合用于所述数据发送端对所述第一数据集合进行更新;

更新模块,用于根据所述同步数据集合对所述第二数据集合进行更新。

一种数据同步装置,应用数据发送端,所述装置包括:

发送模块,用于发送第一数据集合至数据接收端,其中,所述第一数据集合中包含至少一条第一数据及每一条所述第一数据对应的第一时间戳,所述第一时间戳用于表示所述第一数据最近一次修改的时刻,所述第一数据集合用于指示数据接收端获取对应的第二数据集合,所述第二数据集合中包含至少一条第二数据及每一条所述第二数据对应的第二时间戳,所述第二时间戳用于表示所述第二数据最近一次修改的时刻;

接收模块,用于接收所述数据接收端发送的同步数据集合,其中,所述同步数据集合用于所述数据接收端对所述第二数据集合进行更新,所述同步数据集合是根据比较结果生成的,所述比较结果是根据第一数据的第一时间戳与第二数据的第二时间戳进行比较得到的;

更新模块,用于根据所述同步数据集合对所述第一数据集合进行更新。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据同步方法的步骤。

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

上述数据同步方法、装置、计算机设备和存储介质,接收数据发送端发送的第一数据集合,其中,第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第一时间戳用于表示第一数据最近一次修改的时刻;获取对应于第一数据集合的第二数据集合,其中,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳,第二时间戳用于表示第二数据最近一次修改的时刻;将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果;根据比较结果生成同步数据集合,并将同步数据集合发送至数据发送端,同步数据集合用于数据发送端对第一数据集合进行更新;根据同步数据集合对第二数据集合进行更新。获取数据发送端的第一数据集合和数据接收端的第二数据集合,将第一数据集合中的第一数据的第一时间戳与第二数据集合中的第二数据的第二时间戳进行比较,获取同步数据集合,并对数据发送端和数据接收端进行数据的更新,可以根据时间获取最新的数据进行更新,提高了数据同步的准确性。

附图说明

图1为一个实施例中数据同步方法的应用环境图;

图2为一个实施例中数据同步方法的流程示意图;

图3为一个实施例中数据同步步骤的流程示意图;

图4为一个实施例中数据同步步骤的流程示意图;

图5为一个实施例中数据同步方法的流程示意图;

图6为另一个实施例中数据同步方法的流程示意图;

图7为另一个实施例中数据同步方法的流程示意图;

图8为一个实施例中数据同步装置的结构框图;

图9为另一个实施例中数据同步装置的结构框图;

图10为另一个实施例中数据同步装置的结构框图;

图11为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的数据同步方法,可以应用于如图1所示的应用环境中。其中,数据发送端102通过网络与数据接收端104通过网络进行通信。数据发送端102发起数据同步请求并将第一数据集合发送至数据接收端104,数据接收端104接收数据发送端发送的第一数据集合,其中,第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第一时间戳用于表示第一数据最近一次修改的时刻;获取对应于第一数据集合的第二数据集合,其中,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳,第二时间戳用于表示第二数据最近一次修改的时刻;将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果;根据比较结果生成同步数据集合,并将同步数据集合发送至数据发送端,同步数据集合用于数据发送端对第一数据集合进行更新;根据同步数据集合对第二数据集合进行更新。其中,数据发送端102和数据接收端104可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备、独立的服务器或者是多个服务器组成的服务器集群。

在一个实施例中,如图2所示,提供了一种数据同步方法,应用于数据接收端,包括以下步骤:

步骤202,接收数据发送端发送的第一数据集合,其中,第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第一时间戳用于表示第一数据最近一次修改的时刻。

时间戳指的是能唯一地标识某一刻的时间的数据,通常是一个字符序列。第一时间戳指的是第一数据最近一次修改的时刻。在第一数据集合中,不同的第一数据的第一时间戳可以相同,也可以不同。

进一步地,数据接收端接收数据发送端发送的第一数据集合,包括:接收数据发送端发送的同步请求和第一数据集合,其中,同步请求包含第一版本号,第一版本号用于识别第一数据集合。

其中,同步请求是数据发送端发起的,指示数据发送端的第一数据集合和数据接收端的第二数据集合进行数据同步。

步骤204,获取对应于第一数据集合的第二数据集合,其中,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳,第二时间戳用于表示第二数据最近一次修改的时刻。

第二时间戳指的是第二数据最近一次修改的时刻。在第二数据集合中,不同的第二数据的第一时间戳可以相同,也可以不同。

进一步地,数据接收端中存储至少一个数据集合以及各个数据集合对应的版本号,获取对应于第一数据集合的第二数据集合,包括:获取数据接收端中存储的与第一版本号匹配的版本号,作为第二版本号;获取第二版本号对应的数据集合作为第二数据集合。

其中,版本号指的是数据集合表结构的版本标识。第一版本号指的是第一数据集合的版本号,第二版本号指的是第二数据集合的版本号。第一数据集合的第一版本号与对应于第一数据集合的第二数据集合的第二版本号相同。

在数据接收端中,每个数据集合都存在对应的版本号,可以通过第一数据集合的版本号获取数据接收端的第二版本号,根据第二版本号获取对应的第二数据集合。

数据接收端采用分布式锁的方式进行并发控制,每当接收到一个第一数据集合时,将该第一数据集合的状态记录在分布式缓存系统中,只有当数据同步过程完成时才会移除该第一数据集合的状态。在分布式缓存系统中,只能记录一个第一数据集合的状态,确保任意时间只有一个数据发送端进行同步。

可以理解的是,在一个应用程序中,需要根据业务对应用程序进行升级处理。在开发新的应用程序版本时,数据的表结构也与之前的表结构不同。因此,可以获取与第一版本号匹配的第二版本号,从而根据第二版本号获取第二数据集合。

例如,第一数据集合的第一版本号为“v3.3”,在数据接收端中,存储着“v1.0”、“v1.1”、“v2.0”、“v2.1”、“v3.1”、“v3.2”、“v3.3”等版本号。将第一版本号“v3.3”与数据接收端中的版本号进行匹配,获取第二版本号“v3.3”,再获取第二版本号“v3.3”对应的数据集合作为第二数据集合。

在一个实施例中,可以对第一数据集合或第二数据集合生成第一同步标签或第二同步标签,第一同步标签或第二同步标签具有唯一性,可以唯一标示任意设备、任意应用程序、任意数据集合。

步骤206,将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果。

第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳。获取第一数据和对应的第一时间戳,第二数据和对应的第二时间戳。将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果。

比较结果可以是时间戳较晚的第一数据或第二数据的集合,也可以是时间戳较晚的第一数据或第二数据的集合,以及时间较早的第一数据或第二数据的集合,还可以是时间戳较晚的第一数据的标识或第二数据的标识,不限于此。

例如,第一数据为“本月日用品支出500元”,标识为“a5”,第一时间戳为“2018年12月11日09时43分28秒”,第二数据为“本月日用品支出200元”,标识为“b5”,第一时间戳为“2018年12月08日09时23分28秒”。将第一时间戳与第二时间戳进行比较,第一时间戳的时刻较晚。则比较结果可以是“同步的数据:本月日用品支出500元”,也可以是“同步的数据:本月日用品支出500元;被同步的数据:本月日用品支出200元”,还可以是“同步的数据:a5”。

步骤208,根据比较结果生成同步数据集合,并将同步数据集合发送至数据发送端,同步数据集合用于数据发送端对第一数据集合进行更新。

同步数据集合用于对数据发送端的第一数据集合和数据接收端的第二数据集合中的数据进行更新。同步数据集合可以包括在第一数据集合和第二数据集合中存在数据变化的最新的数据,也可以包括不存在数据变化的第一数据或第二数据。对第一数据集合进行更新指的是将同步数据集合中的同步数据替换第一数据集合中对应的第一数据。

具体地,将同步数据集合发送至数据发送端后,数据发送端可以获取同步数据集合中同步数据,将同步数据替换第一数据集合中对应于同步数据的第一数据。

步骤210,根据同步数据集合对第二数据集合进行更新。

在将同步数据集合发送至数据发送端,数据发送端根据同步数据集合对数据发送端进行更新后,数据接收端可以同步数据集合对第二数据集合进行更新,即将同步数据集合中的同步数据替换第二数据集合中对应的第二数据。

上述数据同步方法中,获取数据发送端的第一数据集合和数据接收端的第二数据集合,将第一数据集合中的第一数据的第一时间戳与第二数据集合中的第二数据的第二时间戳进行比较,获取同步数据集合,并对数据发送端和数据接收端进行数据的更新,可以根据时间获取最新的数据进行更新,提高了数据同步的准确性。

在一个实施例中,将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:将第一数据的第一时间戳与对应的第二数据的第二时间戳进行比较,获取第一时间戳和第二时间戳中时刻较晚的时间戳作为同步时间戳;获取各个同步时间戳对应的第一数据或第二数据作为同步数据;根据同步数据得到比较结果。

可以理解的是,用户对第一数据或第二数据进行修改后,修改时刻较晚的数据为用户所需要的数据,也就是将修改时刻较晚的第一数据或第二数据作为同步数据。

第一数据集合中包含至少一条第一数据,第二数据集合中包含至少一条第二数据,当第一数据与第二数据都不是新增的数据,并且不是被删除的数据时,第一数据与第二数据一一对应。当第一数据与第二数据都不存在数据变化时,将第一数据和第二数据中的一个数据作为同步的数据,另外一个数据作为被同步的数据。

当第一数据或第二数据存在数据变化时,将第一数据和第二数据中存在变化的数据作为同步的数据,另外一个数据作为被同步的数据。

当第一数据与第二数据都存在数据变化时,将第一时间戳与第二时间戳进行比较,将时间戳较晚的第一数据或第二数据作为同步的数据,另外一个数据作为被同步的数据。具体的,当第一时间戳晚于第二时间戳时,将第一数据作为同步数据;当第二时间戳晚于第一时间戳时,将第二数据作为同步数据。

在第一数据集合或第二数据集合中,每一条第一数据或第二数据都存在对应的元数据。元数据指的是记录第一数据或第二数据属性的数据。元数据可以包括第一数据或第二数据的创建时刻,最近一次的修改时刻即第一时间戳或第二时间戳,数据量大小,唯一标识等。

将第一数据的元数据作为第一元数据,第二数据的元数据作为第二元数据。将第一元数据的唯一标识作为第一标识,第二元数据的唯一标识作为第二标识。当检测第一数据的第一元数据存在第一标识,且第二数据集合中不存在对应于第一数据的第二数据时,表示第二数据被删除,则同步操作为将第一数据作删除处理。

相应地,当检测第二数据的第二元数据存在第二标识,且第一数据集合中不存在对应于第二数据的第一数据时,表示第一数据被删除,则同步操作为将第二数据作删除处理。

获取第一数据集合中不存在对应第一标识的第一数据作为第一新增数据,并获取第二数据集合中不存在对应第二标识的第二数据作为第二新增数据。根据第一新增数据、第二新增数据以及比较结果生成同步数据集合。

在一个实施例中,第一数据集合中的第一数据对应第一标识,第一标识用于唯一标示一个第一数据。可以理解的是,第一数据集合中可能会存在没有第一标识的第一数据,假设第一数据存在对应的第一标识,说明该第一数据为上次更新第一数据集合时就已存在的数据,假设第一数据不存在对应的第一标识,说明该第一数据为上次更新第一数据集合之后新增的数据。

同样的,第二数据集合中可能会存在没有第二标识的第二数据,假设第二数据存在对应的第二标识,说明该第二数据为上次更新第二数据集合时就已存在的数据,假设第二数据不存在对应的第二标识,说明该二数据为上次更新第二数据集合之后新增的数据。

具体地,当检测第一数据的第一元数据不存在第一标识时,表示第一数据为新增数据,则将第一新增数据作为同步的数据。相应地,当检测第二数据的第二元数据不存在第一标识时,表示第二数据为新增数据,则将第二新增数据作为同步的数据。

进一步地,根据第一新增数据、第二新增数据以及比较结果生成同步数据集合,包括:对第一新增数据生成第一新增标识,并对第二新增数据生成第二新增标识;根据第一新增数据和对应的第一新增标识,第二新增数据和对应的第二新增标识以及比较结果生成同步数据集合。

具体地,可以根据idmap转化器对第一新增数据生成第一新增标识,对第二新增数据生成第二新增标识。第一新增标识和第二新增标识具有唯一性。在同步数据集合中,第一新增数据、第二新增数据也就是同步数据,第一新增标识、第二新增标识也就是同步标识。

在本实施例中,将第一数据的第一时间戳与第二数据的第二时间戳进行比较,获取第一时间戳和第二时间戳中时刻较晚的时间戳作为同步时间戳,并获取各个同步时间戳对应的第一数据或第二数据作为同步数据集合,可以获取修改时刻较晚的数据进行更新,提高了数据同步的准确性。

在本实施例中,将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:

步骤302,获取第一数据集合对应的第一同步时间戳,以及第二数据集合对应的第二同步时间戳,其中,第一同步时间戳用于表示第一数据集合最近一次更新成功的时刻,第二同步时间戳用于表示第二数据集合最近一次更新成功的时刻。

其中,第一同步时间戳与第二同步时间戳可以相同,也可以不同。当第一同步时间戳与第二同步时间戳相同时,表示最近一次同步更新时的数据发送端和数据接收端为本次的数据发送端和数据接收端相同。当第一同步时间戳与第二同步时间戳不同时,表示最近一次更新成功时的数据发送端和数据接收端为本次的数据发送端和数据接收端不同。

步骤304,从第一数据集合中包含的第一数据中获取第一比较数据,其中,第一比较数据对应的第一时间戳晚于第一同步时间戳。

第一比较数据指的是第一时间戳晚于第一同步时间戳的第一数据。当第一时间戳晚于第一同步时间戳时,表示第一数据在最近一次更新成功后进行修改,则将该第一数据作为第一比较数据。

步骤306,从第二数据集合中包含的第二数据中获取第二比较数据,其中,第二比较数据对应的第二时间戳晚于第二同步时间戳。

第二比较数据指的是第二时间戳晚于第二同步时间戳的第二数据。当第二时间戳晚于第二同步时间戳时,表示第一数据在最近一次更新成功后进行修改,则将该第二数据作为第二比较数据。

步骤308,将第一比较数据的第一时间戳与第二比较数据的第二时间戳进行比较,得到比较结果。

当第一比较数据与第二比较数据相对应时,将第一比较数据的第一时间戳与第二比较数据的第二时间戳进行比较,得到比较结果。

当第一比较数据不存在对应的第二比较数据时,获取对应于第一比较数据的第二数据。当第二比较数据不存在对应的第一比较数据时,获取对应于第二比较数据的第一数据。根据第一比较数据或第二比较数据得到比较结果。

当第一比较数据或第二比较数据为新增的数据时,根据第一比较数据或第二比较数据得到比较结果。

当第一比较数据为被删除的数据时,获取第一比较数据的标识,并将该标识的状态标记为删除状态。获取与第一比较数据的标识对应的第二数据。当第二比较数据为被删除的数据时,获取第二比较数据的标识,并将该标识的状态标记为删除状态。获取与第二比较数据的标识对应的第一数据。根据第一比较数据的标识和删除状态,或第二比较数据的标识和删除状态得到比较结果。

在本实施例中,获取晚于最近一次更新成功的时刻的第一时间戳或第二时间戳,根据该第一时间戳或第二时间戳获取第一比较数据或第二比较数据,将第一比较数据的第一时间戳与第二比较数据的第二时间戳进行比较,得到比较结果,避免了获取第一数据集合和第二数据集合中的所有数据,提高了数据获取的效率,降低了电子设备的处理压力。

在一个实施例中,接收数据发送端发送的第一数据集合之后,还包括:

步骤402,将第一数据集合中包含的每一条第一数据从第一格式转换为第二格式得到第一目标数据,并将第一目标数据对应的第一时间戳作为第一目标时间戳。

其中,第一格式指的是第一数据的文件格式。第二格式指的是第一目标数据的文件格式。第一格式或第二格式可以是sqlite,json,text,googleprotocolbuffer,yaml,jar,dat等,不限于此。在一个实施例中,第一目标数据可以是javabean对象的数据。在其他实施例中,可以是其他的数据,不限于此。

在一个实施例中,可以通过数据解析器将第一数据集合中包含的每一条第一数据从第一格式转换为第二格式得到第一目标数据。其中,数据解析器用于将各种不同格式的数据解析成特定格式的数据。如,根据数据解析器将sqlite的第一数据解析成javabean对象的第一目标数据。

获取第二数据集合之后,还包括:

步骤404,将第二数据集合中包含的每一条第二数据从第三格式转换为第二格式得到第二目标数据,并将第二目标数据对应的第二时间戳作为第二目标时间戳。

相应地,第三格式可以是sqlite,json,text,googleprotocolbuffer,yaml,jar,dat等,不限于此。在一个实施例中,第二目标数据可以是jar格式的javabean对象的数据。在其他实施例中,可以是其他格式的数据,不限于此。

在一个实施例中,可以通过数据解析器将第二数据集合中包含的每一条第二数据从第三格式转换为第二格式得到第二目标数据。其中,数据解析器用于将各种不同格式的数据解析成特定格式的数据。如,根据数据解析器将dat的第二数据解析成javabean对象的第二目标数据。

将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:

步骤406,将第一目标数据的第一目标时间戳与第二目标数据的第二目标时间戳进行比较,得到比较结果。

在本实施例中,将不同格式的第一数据和第二数据转换成第二格式的第一目标数据和第二目标数据,根据第一目标数据和第二目标数据进行数据同步处理。避免了对每个格式的第一数据和第二数据设置一套数据同步逻辑和算法,提高了数据同步逻辑和算法的复用率,节约了电子设备的存储空间和资源。

在一个实施例中,上述数据同步方法还包括:获取第一数据集合中不存在对应第一标识的第一数据作为第一新增数据,并获取第二数据集合中不存在对应第二标识的第二数据作为第二新增数据;根据比较结果生成同步数据集合,包括:对第一新增数据生成第一新增标识,并对第二新增数据生成第二新增标识;根据第一新增数据和对应的第一新增标识,第二新增数据和对应的第二新增标识以及比较结果生成同步数据集合。

在一个实施例中,根据比较结果生成同步数据集合之后,还包括:对同步数据集合进行校验;当同步数据集合校验成功时,执行将同步数据集合发送至数据发送端步骤。

在数据同步的过程中,需要处理非常多的数据,且需要经过一系列的处理逻辑与算法,容易出现错误。因此,需要对同步数据集合进行校验。

当同步数据集合校验成功时,则将同步数据集合发送至数据发送端,指示同步数据集合对数据发送端的第一数据集合进行更新。当同步数据集合校验失败时,终止数据同步过程,并将同步数据集合校验失败的原因生成一份日志,存储在数据接收端并发送至数据发送端。其中,日志中存储校验失败的数据,校验失败的原因,校验的时间等。将日志发送至数据发送端,用于指示数据发送端重新发起数据同步请求。

在本实施例中,在生成同步数据集合之后,对同步数据集合进行校验,当同步数据集合校验成功时,将同步数据集合发送至数据发送端,提高了数据同步的准确性。

在一个实施例中,同步数据标识中包含的每一个同步数据对应一个同步标识,同步标识用于唯一标示一个同步数据,对同步数据集合进行校验,包括:当同步数据集合中的一个同步数据被另外一个同步数据引用时,将被引用的同步数据作为被引用数据;根据被引用数据对应的同步标识生成第一标识集合;根据同步数据集合中包含的所有同步数据所对应的同步标识生成第二标识集合;根据第一标识集合和第二标识集合对同步数据集合进行校验;当同步数据集合校验成功时,执行将同步数据集合发送至数据发送端步骤,包括:当第一标识集合中的同步标识都包含在第二标识集合中时,判定同步数据集合校验成功,执行将同步数据集合发送至数据发送端步骤。

需要说明的是,在对第一数据和第二数据进行数据同步处理的过程中,当第一数据或第二数据被删除时,则同步数据集合中也将该第一数据或第二数据删除,即同步数据集合中不存在对应于被删除的第一数据或第二数据的同步数据。但是,当同步数据集合中的同步数据引用被删除的同步数据时,则获取不到被删除的同步数据,从而得到错误的同步数据。因此,需要对同步数据集合中的引用逻辑进行校验。

其中,第一标识集合指的是被引用数据的同步标识的集合,第二标识集合指的是同步数据集合中所有同步数据的同步标识的集合。当第一标识集合中的同步标识在第二标识集合中都能找到,即被引用数据都存在与同步数据集合中,则可以判定同步数据集合中的引用逻辑正确,对同步数据集合校验成功。

例如,在同步数据集合中,同步标识为“t1”的同步数据为“11月工资收入3000元”,同步标识为“t2”的同步数据为“11月炒股收入1000元”,同步标识为“t3”的同步数据为“11月其他收入1000元”,同步标识为“t4”的同步数据为“11月医疗支出200元”,同步标识为“t5”的同步数据为“11月交通费用300元”,同步标识为“t6”的同步数据为“11月总收入5000元”。同步数据“t6”引用了同步数据t1、t2和t3。

第一标识集合为(t1、t2、t3),第二标识集合为(t1、t2、t3、t4、t5、t6),第一标识集合中的同步标识t1、t2、t3在第二标识集合(t1、t2、t3、t4、t5、t6)中都能找到,即被引用数据都存在与同步数据集合中,可以判定同步数据集合中的引用逻辑正确,对同步数据集合校验成功。

当“11月炒股收入1000元”为被删除的数据时,则同步数据集合中不存在同步标识“t2”的同步数据。第一标识集合为(t1、t2、t3),第二标识集合为(t1、t3、t4、t5、t6)。第一标识集合中的同步标识t1、t3在第二标识集合(t1、t3、t4、t5、t6)中可以找到,但是在第二标识集合(t1、t3、t4、t5、t6)不存在第一标识集合中的同步标识t2,可以判定同步数据集合中的引用逻辑不正确,对同步数据集合校验失败。

当对同步数据集合校验失败时,可以对同步数据集合进行修复,如将被删除的数据进行还原等。当同步过程中发现某个终端数据严重损坏,可以让该数据发送端初始化本地数据(做好备份),然后再进行同步,保证数据最终的正确性。

对同步数据集合的校验还可以是对同步数据的总数进行校验,对应用进行校验、对业务进行校验等,不限于此。

需要说明的是,在对同步数据集合进行校验时,是串行进行校验的。在数据同步过程中的其他步骤,都可以并发进行。

在本实施例中,将同步数据集合中被引用数据对应的标识生成第一标识集合,将同步数据集合中所有的同步数据对应的同步标识生成第二标识集合,根据第一标识集合中的同步标识是否都包含在第二标识集合中,可以判定同步数据集合的引用逻辑是否正确,更加提高了数据同步的准确性。

在一个实施例中,将同步数据集合发送至数据发送端,包括:将同步数据集合中包含的每一条同步数据从第二格式转换为第一格式得到第一同步数据,并将第一同步数据发送至数据发送端。根据同步数据集合对第二数据集合进行更新,包括:当接收到数据发送端发送的更新成功指令时,将同步数据集合中包含的每一条同步数据从第二格式转换为第三格式得到第二同步数据;根据第二同步数据对第二数据集合进行更新。

其中,第一同步数据指的是第一格式的同步数据。第二同步数据指的是第三格式的同步数据。

在一个实施例中,可以通过数据解析器将同步数据集合中包含的每一条同步数据从第二格式转换为第一格式得到第一同步数据。可以通过数据解析器将同步数据集合中包含的每一条同步数据从第二格式转换为第三格式得到第二同步数据。

将第一同步数据发送至数据发送端后,数据发送端根据第一同步数据对第一数据集合进行更新,更新完成时,并更新第一数据集合的第一同步时间戳。数据发送端的第一数据集合更新成功后,发送更新成功指令到数据接收端中。

数据接收端接收到更新成功指令后,根据第二同步数据对第二数据集合进行更新,更新完成时,并更新第二数据集合的第二同步时间戳。

当数据接收端更新失败时,如数据接收端宕机、断电等,则将更新失败指令发送至数据发送端,指示数据发送端重新发起数据同步请求。

可以理解的是,当数据发送端在更新的过程中出现一些问题,如断电、内存不足等,停止更新并将更新失败指令发送至数据接收端。数据接收端接收到更新失败指令后,不执行更新操作。避免了将第一同步数据在数据发送端、第二同步数据在数据接收端进行并发更新,出现的其中一端出现更新失败而将另一端的数据持久化更新的问题。

在本实施例中,将第一同步数据发送到数据发送端对第一数据集合进行更新,当接收到数据发送端发送的更新成功指令时,则表示数据发送端更新成功。然后将第二同步数据对第二数据集合进行更新,可以避免其中一端更新失败而将另一端的数据持久化更新的问题,提高了数据同步的准确性。

在一个实施例中,如图5所示,提供了一种数据同步方法,应用于数据发送端,包括一下步骤:

步骤502,发送第一数据集合至数据接收端,其中,第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第一时间戳用于表示第一数据最近一次修改的时刻,第一数据集合用于指示数据接收端获取对应的第二数据集合,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳,第二时间戳用于表示第二数据最近一次修改的时刻;

步骤504,接收数据接收端发送的同步数据集合,其中,同步数据集合用于数据接收端对第二数据集合进行更新,同步数据集合是根据比较结果生成的,比较结果是根据第一数据的第一时间戳与第二数据的第二时间戳进行比较得到的;

步骤506,根据同步数据集合对第一数据集合进行更新。

应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

如图6所示,数据发送端可以是android、ios、ipad等终端设备,发起数据同步请求并将第一数据集合发送至数据接收端中。数据发送端和数据接收端可以并发地进行数据变化检查,即检查上次同步成功后进行修改的数据。数据发送端可以根据数据变化的情况,如数据量的大小、涉及的具体业务数据表、服务端特殊标记等,选择文件同步或json同步。其中,文件同步指的是将第一数据集合的所有第一数据和第二数据集合的所有第二数据进行数据同步。json同步指的是将在上次同步成功后进行修改的第一数据和第二数据进行数据同步。

当数据同步处理后,将数据下发到数据发送端,数据发送端检查同步数据是否正确。当数据发送端检查数据正确时,将数据进行更新并发送更新成功指令到数据接收端。数据接收端接收到更新成功指令后,将同步数据进行更新。

当数据发送端检查数据不正确时,终止数据同步过程,并发送更新失败指令到数据接收端。数据接收端收到更新失败指令后,终止数据同步过程。

如图7所示,在数据发送阶段,数据发送端发送数据同步请求并将第一数据集合发送至数据接收端。在上传数据解析阶段,数据接收端通过数据解析器将不同格式,如json、sqlite以及其他格式的第一数据解析转换成javabean对象的数据。在表数据融合阶段,数据接收端进行数据准备,从数据库中获取第二数据,并将第一数据和第二数据进行比较,生成同步数据集合。当同步数据为新增的数据时,在idmap更新阶段,通过idmap转换器对同步数据生成唯一的标识。在数据校验阶段,通过数据校验器对同步数据进行校验。校验成功后,在数据解析阶段,将同步数据逆向解析成不同的格式,如json、sqlite以及其他格式,并在数据下发阶段将解析后的数据发送至数据发送端。

在一个实施例中,上述数据同步方法还可以包括以下步骤:

(1)接收数据发送端发送的同步请求和第一数据集合,其中,同步请求包含第一版本号,第一版本号用于识别第一数据集合;

(2)将第一数据集合中包含的每一条第一数据从第一格式转换为第二格式得到第一目标数据,并将第一目标数据对应的第一时间戳作为第一目标时间戳;

(3)获取数据接收端中存储的与第一版本号匹配的版本号,作为第二版本号;获取第二版本号对应的数据集合作为第二数据集合;

(4)将第二数据集合中包含的每一条第二数据从第三格式转换为第二格式得到第二目标数据,并将第二目标数据对应的第二时间戳作为第二目标时间戳;

(5)获取第一数据集合对应的第一同步时间戳,以及第二数据集合对应的第二同步时间戳,其中,第一同步时间戳用于表示第一数据集合最近一次更新成功的时刻,第二同步时间戳用于表示第二数据集合最近一次更新成功的时刻;

(6)从第一目标数据中获取第一比较数据,其中,第一比较数据对应的第一目标时间戳晚于第一同步时间戳;

(7)从第二目标数据中获取第二比较数据,其中,第二比较数据对应的第二目标时间戳晚于第二同步时间戳;

(8)获取不存在对应第一目标标识的第一目标数据作为第一新增数据,并获取不存在对应第二目标标识的第二目标数据作为第二新增数据;

在一个实施例中,第一数据集合中的第一数据对应第一标识,第一标识用于唯一标示一个第一数据。可以理解的是,第一数据集合中可能会存在没有第一标识的第一数据,假设第一数据存在对应的第一标识,说明该第一数据为上次更新第一数据集合时就已存在的数据,假设第一数据不存在对应的第一标识,说明该第一数据为上次更新第一数据集合之后新增的数据。

同样的,第二数据集合中可能会存在没有第二标识的第二数据,假设第二数据存在对应的第二标识,说明该第二数据为上次更新第二数据集合时就已存在的数据,假设第二数据不存在对应的第二标识,说明该二数据为上次更新第二数据集合之后新增的数据。

将第一数据转化为第一目标数据之后,就将第一数据对应的第一标识作为第一目标数据对应的第一目标标识。同样的,将第二数据转化为第二目标数据之后,就将第二数据对应的第二标识作为第二目标数据对应的第二目标标识。

(9)对第一新增数据生成第一新增标识,并对第二新增数据生成第二新增标识;

(10)将第一比较数据的第一目标时间戳与第二比较数据的第二目标时间戳进行比较,得到比较结果;

(11)根据第一新增数据、第二新增数据和比较结果生成同步数据集合;

(12)当同步数据集合中的一个同步数据被另外一个同步数据引用时,将被引用的同步数据作为被引用数据;

(13)根据被引用数据对应的同步标识生成第一标识集合;

(14)根据同步数据对应的同步标识生成第二标识集合;

(15)根据第一标识集合和第二标识集合对同步数据集合进行校验;

(16)当第一标识集合中的同步标识都包含在第二标识集合中时,判定同步数据集合校验成功;

(17)将同步数据集合中包含的每一条同步数据从第二格式转换为第一格式得到第一同步数据,并将第一同步数据发送至数据发送端;

(18)当接收到数据发送端发送的更新成功指令时,将同步数据集合中包含的每一条同步数据从第二格式转换为第三格式得到第二同步数据;

(19)根据第二同步数据对第二数据集合进行更新。

在一个实施例中,如图8所示,提供了一种数据同步装置800,应用于数据接收端,包括:接收模块802、获取模块804、比较模块806、发送模块808和更新模块810,其中:

接收模块802,用于接收数据发送端发送的第一数据集合,其中,所述第一数据集合中包含至少一条第一数据及每一条所述第一数据对应的第一时间戳,所述第一时间戳用于表示所述第一数据最近一次修改的时刻。

获取模块804,用于获取对应于所述第一数据集合的第二数据集合,其中,所述第二数据集合中包含至少一条第二数据及每一条所述第二数据对应的第二时间戳,所述第二时间戳用于表示所述第二数据最近一次修改的时刻。

比较模块806,用于将所述第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果。

发送模块808,用于根据比较结果生成同步数据集合,并将所述同步数据集合发送至所述数据发送端,所述同步数据集合用于所述数据发送端对所述第一数据集合进行更新。

更新模块810,用于根据所述同步数据集合对所述第二数据集合进行更新。

上述数据同步装置中,获取数据发送端的第一数据集合和数据接收端的第二数据集合,将第一数据集合中的第一数据的第一时间戳与第二数据集合中的第二数据的第二时间戳进行比较,获取同步数据集合,并对数据发送端和数据接收端进行数据的更新,可以根据时间获取最新的数据进行更新,提高了数据同步的准确性。

在一个实施例中,如图9所示,提供了一种数据同步装置900,应用于数据接收端,包括:接收模块902、获取模块904、格式转换模块906、比较模块908、校验模块910、发送模块912和更新模块914,其中:

接收模块902,用于接收数据发送端发送的第一数据集合,其中,所述第一数据集合中包含至少一条第一数据及每一条所述第一数据对应的第一时间戳,所述第一时间戳用于表示所述第一数据最近一次修改的时刻。

获取模块904,用于获取对应于所述第一数据集合的第二数据集合,其中,所述第二数据集合中包含至少一条第二数据及每一条所述第二数据对应的第二时间戳,所述第二时间戳用于表示所述第二数据最近一次修改的时刻。

格式转换模块906,用于将第一数据集合中包含的每一条第一数据从第一格式转换为第二格式得到第一目标数据,并将第一目标数据对应的第一时间戳作为第一目标时间戳。还用于将第二数据集合中包含的每一条第二数据从第三格式转换为第二格式得到第二目标数据,并将第二目标数据对应的第二时间戳作为第二目标时间戳。

比较模块908,用于将所述第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果。

校验模块910,用于对同步数据集合进行校验;当同步数据集合校验成功时,执行将同步数据集合发送至数据发送端步骤。

发送模块912,用于根据比较结果生成同步数据集合,并将所述同步数据集合发送至所述数据发送端,所述同步数据集合用于所述数据发送端对所述第一数据集合进行更新。

更新模块914,用于根据所述同步数据集合对所述第二数据集合进行更新。

上述数据同步装置中,获取数据发送端的第一数据集合和数据接收端的第二数据集合,将第一数据集合中的每一条第一数据从第一格式转换为第二格式得到第一目标数据,并将第二数据集合中的每一条第二数据从第三格式转换为第二格式得到第二目标数据,将第一目标数据的第一目标时间戳与第二目标数据的第二目标时间戳进行比较,获取同步数据集合,对同步数据集合进行校验,校验成功后对数据发送端和数据接收端进行数据的更新,可以将不同格式的第一数据和第二数据转换成特定格式的数据,可以提高数据同步逻辑和算法的复用率,根据时间获取最新的数据,并进行校验,更加提高了数据同步的准确性。

在一个实施例中,上述比较模块908还用于将第一数据的第一时间戳与对应的第二数据的第二时间戳进行比较,获取第一时间戳和第二时间戳中时刻较晚的时间戳作为同步时间戳;获取各个同步时间戳对应的第一数据或第二数据作为同步数据;根据同步数据得到比较结果。

在一个实施例中,上述比较模块908还用于获取第一数据集合对应的第一同步时间戳,以及第二数据集合对应的第二同步时间戳,其中,第一同步时间戳用于表示第一数据集合最近一次更新成功的时刻,第二同步时间戳用于表示第二数据集合最近一次更新成功的时刻;从第一数据集合中包含的第一数据中获取第一比较数据,其中,第一比较数据对应的第一时间戳晚于第一同步时间戳;从第二数据集合中包含的第二数据中获取第二比较数据,其中,第二比较数据对应的第二时间戳晚于第二同步时间戳;将第一比较数据的第一时间戳与第二比较数据的第二时间戳进行比较,得到比较结果。

在一个实施例中,上述校验模块910还用于当同步数据集合中的一个同步数据被另外一个同步数据引用时,将被引用的同步数据作为被引用数据;根据被引用数据对应的同步标识生成第一标识集合;根据同步数据对应的同步标识生成第二标识集合;根据第一标识集合和第二标识集合对同步数据集合进行校验。上述发送模块912还用于当第一标识集合中的同步标识都包含在第二标识集合中时,判定同步数据集合校验成功,执行将同步数据集合发送至数据发送端步骤。

在一个实施例中,上述发送模块912还用于将同步数据集合中包含的每一条同步数据从第二格式转换为第一格式得到第一同步数据,并将第一同步数据发送至数据发送端。上述更新模块914还用于当接收到数据发送端发送的更新成功指令时,将同步数据集合中包含的每一条同步数据从第二格式转换为第三格式得到第二同步数据;根据第二同步数据对第二数据集合进行更新。

在一个实施例中,如图10所示,提供了一种数据同步装置1000,应用于数据发送端,包括:发送模块1002、接收模块1004和更新模块1006,其中:

发送模块1002,用于发送第一数据集合至数据接收端,其中,第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第一时间戳用于表示第一数据最近一次修改的时刻,第一数据集合用于指示数据接收端获取对应的第二数据集合,其中,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳,第二时间戳用于表示第二数据最近一次修改的时刻;

接收模块1004,用于接收数据接收端发送的同步数据集合,其中,同步数据集合用于数据接收端对第二数据集合进行更新,同步数据集合是根据比较结果生成的,比较结果是根据第一数据的第一时间戳与第二数据的第二时间戳进行比较得到的;

更新模块1006,用于根据同步数据集合对第一数据集合进行更新。

关于数据同步装置的具体限定可以参见上文中对于数据同步方法的限定,在此不再赘述。上述数据同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图11所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收数据发送端发送的第一数据集合,其中,第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第一时间戳用于表示第一数据最近一次修改的时刻;获取对应于第一数据集合的第二数据集合,其中,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳,第二时间戳用于表示第二数据最近一次修改的时刻;将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果;根据比较结果生成同步数据集合,并将同步数据集合发送至数据发送端,同步数据集合用于数据发送端对第一数据集合进行更新;根据同步数据集合对第二数据集合进行更新。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将第一数据的第一时间戳与对应的第二数据的第二时间戳进行比较,获取第一时间戳和第二时间戳中时刻较晚的时间戳作为同步时间戳;获取各个同步时间戳对应的第一数据或第二数据作为同步数据;根据同步数据得到比较结果。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第一数据集合对应的第一同步时间戳,以及第二数据集合对应的第二同步时间戳,其中,第一同步时间戳用于表示第一数据集合最近一次更新成功的时刻,第二同步时间戳用于表示第二数据集合最近一次更新成功的时刻;从第一数据集合中包含的第一数据中获取第一比较数据,其中,第一比较数据对应的第一时间戳晚于第一同步时间戳;从第二数据集合中包含的第二数据中获取第二比较数据,其中,第二比较数据对应的第二时间戳晚于第二同步时间戳;将第一比较数据的第一时间戳与第二比较数据的第二时间戳进行比较,得到比较结果。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将第一数据集合中包含的每一条第一数据从第一格式转换为第二格式得到第一目标数据,并将第一目标数据对应的第一时间戳作为第一目标时间戳。获取第二数据集合之后,还包括:将第二数据集合中包含的每一条第二数据从第三格式转换为第二格式得到第二目标数据,并将第二目标数据对应的第二时间戳作为第二目标时间戳;将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:将第一目标数据的第一目标时间戳与第二目标数据的第二目标时间戳进行比较,得到比较结果。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对同步数据集合进行校验;当同步数据集合校验成功时,执行将同步数据集合发送至数据发送端步骤。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当同步数据集合中的一个同步数据被另外一个同步数据引用时,将被引用的同步数据作为被引用数据;根据被引用数据对应的同步标识生成第一标识集合;根据同步数据对应的同步标识生成第二标识集合;根据第一标识集合和第二标识集合对同步数据集合进行校验。当同步数据集合校验成功时,执行将同步数据集合发送至数据发送端步骤,包括:当第一标识集合中的同步标识都包含在第二标识集合中时,判定同步数据集合校验成功,执行将同步数据集合发送至数据发送端步骤。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将同步数据集合中包含的每一条同步数据从第二格式转换为第一格式得到第一同步数据,并将第一同步数据发送至数据发送端。根据同步数据集合对第二数据集合进行更新,包括:当接收到数据发送端发送的更新成功指令时,将同步数据集合中包含的每一条同步数据从第二格式转换为第三格式得到第二同步数据;根据第二同步数据对第二数据集合进行更新。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收数据发送端发送的第一数据集合,其中,第一数据集合中包含至少一条第一数据及每一条第一数据对应的第一时间戳,第一时间戳用于表示第一数据最近一次修改的时刻;获取对应于第一数据集合的第二数据集合,其中,第二数据集合中包含至少一条第二数据及每一条第二数据对应的第二时间戳,第二时间戳用于表示第二数据最近一次修改的时刻;将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果;根据比较结果生成同步数据集合,并将同步数据集合发送至数据发送端,同步数据集合用于数据发送端对第一数据集合进行更新;根据同步数据集合对第二数据集合进行更新。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将第一数据的第一时间戳与对应的第二数据的第二时间戳进行比较,获取第一时间戳和第二时间戳中时刻较晚的时间戳作为同步时间戳;获取各个同步时间戳对应的第一数据或第二数据作为同步数据;根据同步数据得到比较结果。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取第一数据集合对应的第一同步时间戳,以及第二数据集合对应的第二同步时间戳,其中,第一同步时间戳用于表示第一数据集合最近一次更新成功的时刻,第二同步时间戳用于表示第二数据集合最近一次更新成功的时刻;从第一数据集合中包含的第一数据中获取第一比较数据,其中,第一比较数据对应的第一时间戳晚于第一同步时间戳;从第二数据集合中包含的第二数据中获取第二比较数据,其中,第二比较数据对应的第二时间戳晚于第二同步时间戳;将第一比较数据的第一时间戳与第二比较数据的第二时间戳进行比较,得到比较结果。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将第一数据集合中包含的每一条第一数据从第一格式转换为第二格式得到第一目标数据,并将第一目标数据对应的第一时间戳作为第一目标时间戳。获取第二数据集合之后,还包括:将第二数据集合中包含的每一条第二数据从第三格式转换为第二格式得到第二目标数据,并将第二目标数据对应的第二时间戳作为第二目标时间戳;将第一数据的第一时间戳与第二数据的第二时间戳进行比较,得到比较结果,包括:将第一目标数据的第一目标时间戳与第二目标数据的第二目标时间戳进行比较,得到比较结果。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对同步数据集合进行校验;当同步数据集合校验成功时,执行将同步数据集合发送至数据发送端步骤。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当同步数据集合中的一个同步数据被另外一个同步数据引用时,将被引用的同步数据作为被引用数据;根据被引用数据对应的同步标识生成第一标识集合;根据同步数据对应的同步标识生成第二标识集合;根据第一标识集合和第二标识集合对同步数据集合进行校验。当同步数据集合校验成功时,执行将同步数据集合发送至数据发送端步骤,包括:当第一标识集合中的同步标识都包含在第二标识集合中时,判定同步数据集合校验成功,执行将同步数据集合发送至数据发送端步骤。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将同步数据集合中包含的每一条同步数据从第二格式转换为第一格式得到第一同步数据,并将第一同步数据发送至数据发送端。根据同步数据集合对第二数据集合进行更新,包括:当接收到数据发送端发送的更新成功指令时,将同步数据集合中包含的每一条同步数据从第二格式转换为第三格式得到第二同步数据;根据第二同步数据对第二数据集合进行更新。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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