本发明涉及数据处理技术领域,尤其涉及一种数据对比的方法和装置。
背景技术:
随着终端技术的快速发展,各种类型的终端不断涌现,如台式机、笔记本电脑、手机、平板电脑等,这些终端已经成为人们日常工作和生活的重要工具,被人们使用的频率越来越高。用户在使用终端的过程中,会在终端中产生各种各样的数据,比如照片、视频文件、联系人等数据。随着时间的积累,终端中存储的数据越来越多,而终端的存储容量是有限的,所以,很多用户通过云服务将终端中的数据进行备份。为了防止数据丢失,目前大多数云服务已具备数据自动备份的功能,云服务会定期将系统数据库中的数据备份到备份数据库中,一旦系统数据库中的数据丢失,可利用备份数据库中的备份数据对系统数据库中的数据进行恢复。但是,如果将备份数据库中的全部备份数据都恢复到系统数据库中,恢复时间较长、效率较差。如果可以提供一种快速准确的找出两份对比数据之间的差异数据的方法,就可以利用所述差异数据快速准确的将当前数据恢复到某一备份节点时的备份数据。
技术实现要素:
本发明的主要目的在于提出一种数据对比的方法和装置,快速准确的找出两份对比数据之间的差异数据。
为实现上述目的,本发明提供的一种数据对比的装置,包括:
接收模块,用于接收在云服务中注册的终端发送来的数据对比请求信息,所述数据对比请求信息包括:终端信息、数据类型信息和指定版本号信息;
获取模块,用于在所述云服务的备份数据库中获取所述终端的所述数据类型的所述指定版本号的数据,并在所述云服务的系统数据库中获取所述终端的所述数据类型的最新版本号的数据;
对比模块,用于将所述指定版本号的数据与所述最新版本号的数据进行对比,并将对比结果反馈给所述终端。
进一步的,所述系统数据库用于存储所述云服务中的各个终端的各个数据类型的最新版本号的数据;
所述备份数据库用于存储所述云服务中的各个终端的各个数据类型的各个版本号的数据。
进一步的,所述获取模块,还用于:
判断所述系统数据库中的所述终端的所述数据类型的最新版本号是否与所述备份数据库中的所述终端的所述数据类型的最新版本号相同,
若是,则从所述备份数据库中获取所述最新版本号的数据;
若否,则从所述系统数据库中获取所述最新版本号的数据。
进一步的,所述对比模块,具体用于:
以所述指定版本号的数据为基准,确定所述最新版本号的数据中的差异数据,所述差异数据包括:修改数据、删除数据和添加数据。
进一步的,所述装置还包括:
存储模块,用于将所述对比结果存储在所述云服务的会话缓存中。
此外,为实现上述目的,本发明还提出一种数据对比的方法,包括:
接收在云服务中注册的终端发送来的数据对比请求信息,所述数据对比请求信息包括:终端信息、数据类型信息和指定版本号信息;
在所述云服务的备份数据库中获取所述终端的所述数据类型的所述指定版本号的数据,并在所述云服务的系统数据库中获取所述终端的所述数据类型的最新版本号的数据;
将所述指定版本号的数据与所述最新版本号的数据进行对比,并将对比结果反馈给所述终端。
进一步的,所述系统数据库用于存储所述云服务中的各个终端的各个数据类型的最新版本号的数据;
所述备份数据库用于存储所述云服务中的各个终端的各个数据类型的各个版本号的数据。
进一步的,所述在所述云服务的系统数据库中获取所述终端的所述数据类型的最新版本号的数据,包括:
判断所述系统数据库中的所述终端的所述数据类型的最新版本号是否与所述备份数据库中的所述终端的所述数据类型的最新版本号相同,
若是,则从所述备份数据库中获取所述最新版本号的数据;
若否,则从所述系统数据库中获取所述最新版本号的数据。
进一步的,所述将所述指定版本号的数据与所述最新版本号的数据进行对比,包括:
以所述指定版本号的数据为基准,确定所述最新版本号的数据中的差异数据,所述差异数据包括:修改数据、删除数据和添加数据。
进一步的,所述方法还包括:
将所述对比结果存储在所述云服务的会话缓存中。
本发明提出的数据对比的方法和装置,通过指定的版本号在所述备份数据库中查找与之对应的数据,并将指定版本号的数据与最新版本号的数据进行对比,确定出两者之间的差异数据,以便于后期系统数据库利用所述差异数据将所述系统数据库中的最新版本号的数据恢复到所述指定版本号的数据。本发明可以快速准确的找出指定版本号的数据与最新版本号的数据之间的差异数据。
附图说明
图1为本发明第一实施例的数据对比的装置的组成结构示意图;
图2为本发明第二实施例的数据对比的装置的组成结构示意图;
图3为本发明第三实施例的数据对比的方法的流程图;
图4为本发明第四实施例的数据对比的方法的流程图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明第一实施例提出一种数据对比的装置,具体包括以下组成部分:
1)接收模块101,用于接收在云服务中注册的终端发送来的数据对比请求信息,所述数据对比请求信息包括:终端信息、数据类型信息和指定版本号信息。
具体的,所述终端信息为在所述云服务中注册的终端用户的信息。
所述数据类型包括:联系人、通话记录、短信、记事本、闹铃、日历和书签。
终端向云服务发送数据对比请求,以请求将所述终端中的一个数据类型的当前数据与所述终端的所述一个数据类型的某个备份节点的备份数据进行对比,从而确定出所述当前数据与所述备份数据之间的差异。例如,终端请求将所述终端的指定版本的联系人信息与所述终端的当前版本的联系人信息进行对比,从而确定出两个版本的联系人信息的差异。
2)获取模块102,用于在所述云服务的备份数据库中获取所述终端的所述数据类型的所述指定版本号的数据,并在所述云服务的系统数据库中获取所述终端的所述数据类型的最新版本号的数据。
具体的,所述系统数据库用于存储所述云服务中的各个终端的各个数据类型的最新版本号的数据;
所述备份数据库用于存储所述云服务中的各个终端的各个数据类型的各个版本号的数据。
获取模块102,具体包括:
备份数据查询单元,用于根据所述数据对比请求信息中的终端信息、数据类型信息和指定版本号信息,在所述云服务的备份数据库中查找到所述终端的所述数据类型的指定版本号的数据。
最新数据查询单元,用于从所述服务云中获取所述终端的所述数据类型的最新版本号的数据。
进一步的,所述最新数据查询单元,具体用于:
判断所述系统数据库中的所述终端的所述数据类型的最新版本号是否与所述备份数据库中的所述终端的所述数据类型的最新版本号相同,
若是,则从所述备份数据库中获取所述最新版本号的数据;
若否,则从所述系统数据库中获取所述最新版本号的数据。
由于从所述备份数据库中获取数据的速度大于从所述系统数据库中获取数据的速度,所以为了提高数据对比的效率,如果备份数据库中的一个数据类型的最新版本号与系统数据库中的所述一个数据类型的最新版本号相同,则从所述备份数据库中获取数据。
3)对比模块103,用于将所述指定版本号的数据与所述最新版本号的数据进行对比,并将对比结果反馈给所述终端。
具体的,对比模块103,用于:
以所述指定版本号的数据为基准,确定所述最新版本号的数据中的差异数据,所述差异数据包括:修改数据、删除数据和添加数据。
进一步的,对比模块103,具体用于:
判断所述最新版本号的数据中的每个数据的SID与所述指定版本号的数据中的对应数据的SID是否一致,
若否,则所述最新版本号的数据中的数据为添加数据或删除数据;
若是,则判断所述最新版本号的数据中的数据的小版本号与所述指定版本号的数据中的对应数据的小版本号是否一致,在不一致的情况下再继续判断所述最新版本号的数据中的数据的内容与所述指定版本号的数据中的对应数据的内容是否一致,若还不一致,则所述最新版本号的数据中的数据为修改数据。
此外,对比模块103还能基于上述方法以所述最新版本号的数据为基准,确定所述指定版本号的数据中的差异数据。
更进一步的,所述装置还包括:
存储模块,用于将所述对比结果存储在所述云服务的会话缓存中。
所述对比结果包括:终端信息、数据类型信息、指定版本号信息、最新版本号信息,以及所述最新版本号的数据相对于所述指定版本号的数据的差异数据。所述云服务可以基于所述对比结果将所述系统数据库中的所述数据类型的所述最新版本号的数据恢复到所述备份数据库中的所述数据类型的所述指定版本号的数据。
如图2所示,本发明第二实施例提出一种数据对比的装置,具体包括以下组成部分:
1)时光机控制模块201,用于接收终端发送来的数据对比请求信息,所述数据对比请求信息包括:终端信息、数据类型信息和指定版本号信息。
具体的,所述数据类型包括:联系人、通话记录、短信、记事本、闹铃、日历和书签。
终端向云服务发送数据对比请求,以请求将所述终端中的一个数据类型的当前数据与所述终端的所述一个数据类型的某个备份节点的备份数据进行对比,从而确定出所述当前数据与所述备份数据之间的差异。例如,终端请求将所述终端的指定版本的联系人信息与所述终端的当前版本的联系人信息进行对比,从而确定出两个版本的联系人信息的差异。
进一步的,时光机控制模块201,还用于:
对所述数据对比请求进行预处理操作,判断发送所述数据对比请求的终端是否已在所述服务云中注册,若是,则触发时光机处理模块202;若否,则拒绝所述数据对比请求。
2)时光机处理模块202,用于判断所述云服务的会话缓存中是否已存在所述终端的所述数据类型的所述指定版本号的数据与所述终端的所述数据类型的最新版本号的数据的对比结果;
若是,则从所述会话缓存中获取所述对比结果,对所述对比结果进行解锁操作,并将所述对比结果格式化为前端可用的数据结构,再将所述格式化后的对比结果反馈给所述终端;
若否,则在所述云服务的Mongo数据库中获取所述终端的所述数据类型的所述指定版本号的数据,并在所述云服务的MySQL数据库中获取所述终端的所述数据类型的最新版本号的数据。
本实施例中的Mongo数据库相当于第一实施例中的备份数据库,用于存储所述云服务中的各个终端的各个数据类型的各个版本号的数据。
本实施例中的MySQL数据库相当于第一实施例中的系统数据库,用于存储所述云服务中的各个终端的各个数据类型的最新版本号的数据。
具体的,时光机处理模块202,还用于:
将所述指定版本号的数据与所述最新版本号的数据进行对比,并将对比结果反馈给时光机控制模块201。
所述对比结果包括:终端信息、数据类型信息、指定版本号信息、最新版本号信息,以及所述最新版本号的数据相对于所述指定版本号的数据的差异数据。
所述差异数据包括:修改数据、删除数据和添加数据。
进一步的,时光机控制模块201,还用于:
将所述对比结果存储到会话缓存中,并将所述对比结果格式化为前端可用的数据结构,再将所述格式化后的对比结果反馈给所述终端。
如图3所示,本发明第三实施例提出一种数据对比的方法,具体包括以下步骤:
步骤S301:接收在云服务中注册的终端发送来的数据对比请求信息,所述数据对比请求信息包括:终端信息、数据类型信息和指定版本号信息。
具体的,所述终端信息为在所述云服务中注册的终端用户的信息。
所述数据类型包括:联系人、通话记录、短信、记事本、闹铃、日历和书签。
终端向云服务发送数据对比请求,以请求将所述终端中的一个数据类型的当前数据与所述终端的所述一个数据类型的某个备份节点的备份数据进行对比,从而确定出所述当前数据与所述备份数据之间的差异。例如,终端请求将所述终端的指定版本的联系人信息与所述终端的当前版本的联系人信息进行对比,从而确定出两个版本的联系人信息的差异。
步骤S302,用于在所述云服务的备份数据库中获取所述终端的所述数据类型的所述指定版本号的数据,并在所述云服务的系统数据库中获取所述终端的所述数据类型的最新版本号的数据。
具体的,所述系统数据库用于存储所述云服务中的各个终端的各个数据类型的最新版本号的数据;
所述备份数据库用于存储所述云服务中的各个终端的各个数据类型的各个版本号的数据。
步骤S302,具体包括:
根据所述数据对比请求信息中的终端信息、数据类型信息和指定版本号信息,在所述云服务的备份数据库中查找到所述终端的所述数据类型的指定版本号的数据。
从所述服务云中获取所述终端的所述数据类型的最新版本号的数据。
进一步的,所述从所述服务云中获取所述终端的所述数据类型的最新版本号的数据,具体用于:
判断所述系统数据库中的所述终端的所述数据类型的最新版本号是否与所述备份数据库中的所述终端的所述数据类型的最新版本号相同,
若是,则从所述备份数据库中获取所述最新版本号的数据;
若否,则从所述系统数据库中获取所述最新版本号的数据。
由于从所述备份数据库中获取数据的速度大于从所述系统数据库中获取数据的速度,所以为了提高数据对比的效率,如果备份数据库中的一个数据类型的最新版本号与系统数据库中的所述一个数据类型的最新版本号相同,则从所述备份数据库中获取数据。
步骤S303,将所述指定版本号的数据与所述最新版本号的数据进行对比,并将对比结果反馈给所述终端。
具体的,步骤S303,包括:
以所述指定版本号的数据为基准,确定所述最新版本号的数据中的差异数据,所述差异数据包括:修改数据、删除数据和添加数据。
进一步的,,步骤S303,具体包括:
判断所述最新版本号的数据中的每个数据的SID与所述指定版本号的数据中的对应数据的SID是否一致,
若否,则所述最新版本号的数据中的数据为添加数据或删除数据;
若是,则判断所述最新版本号的数据中的数据的小版本号与所述指定版本号的数据中的对应数据的小版本号是否一致,在不一致的情况下再继续判断所述最新版本号的数据中的数据的内容与所述指定版本号的数据中的对应数据的内容是否一致,若还不一致,则所述最新版本号的数据中的数据为修改数据。
此外,还能基于上述方法以所述最新版本号的数据为基准,确定所述指定版本号的数据中的差异数据。
更进一步的,所述方法还包括:
将所述对比结果存储在所述云服务的会话缓存中。
所述对比结果包括:终端信息、数据类型信息、指定版本号信息、最新版本号信息,以及所述最新版本号的数据相对于所述指定版本号的数据的差异数据。所述云服务可以基于所述对比结果将所述系统数据库中的所述数据类型的所述最新版本号的数据恢复到所述备份数据库中的所述数据类型的所述指定版本号的数据。
如图4所示,本发明第四实施例提出一种数据对比的方法,具体包括以下步骤:
步骤S401:云服务接收终端发送来的数据对比请求信息,所述数据对比请求信息包括:终端信息、数据类型信息和指定版本号信息。
具体的,所述数据类型包括:联系人、通话记录、短信、记事本、闹铃、日历和书签。所述
终端向云服务发送数据对比请求,以请求将所述终端中的一个数据类型的当前数据与所述终端的所述一个数据类型的某个备份节点的备份数据进行对比,从而确定出所述当前数据与所述备份数据之间的差异。例如,终端请求将所述终端的指定版本的联系人信息与所述终端的当前版本的联系人信息进行对比,从而确定出两个版本的联系人信息的差异。
步骤S402,云服务对所述数据对比请求进行登录校验,若所述发送所述数据对比请求的终端已在所述服务云中注册,则通过校验,执行步骤S403;若所述发送所述数据对比请求的终端没有在所述服务云中注册,则校验失败,拒绝所述数据对比请求。
步骤S403,判断所述云服务的会话缓存中是否已存在所述终端的所述数据类型的所述指定版本号的数据与所述终端的所述数据类型的最新版本号的数据的对比结果;
若存在,则从所述会话缓存中获取所述对比结果,对所述对比结果进行解锁操作,并将所述对比结果格式化为前端可用的数据结构,再将所述格式化后的对比结果反馈给所述终端;
若不存在,则执行步骤S404。
步骤S404,在所述云服务的Mongo数据库中获取所述终端的所述数据类型的所述指定版本号的数据。
本实施例中的Mongo数据库相当于第一实施例和第三实施例中的备份数据库,用于存储所述云服务中的各个终端的各个数据类型的各个版本号的数据。
步骤S405,判断所述MySQL数据库的所述数据类型的最新版本号是否与所述Mongo数据库的所述数据类型的最新版本号相同,
若是,则从所述Mongo数据库中获取所述最新版本号的数据;
若否,则从所述MySQL数据库中获取所述最新版本号的数据。
本实施例中的MySQL数据库相当于第一实施例和第三实施例中的系统数据库,用于存储所述云服务中的各个终端的各个数据类型的最新版本号的数据。
步骤S406,将所述指定版本号的数据与所述最新版本号的数据进行对比,并将对比结果反馈给所述终端。
所述对比结果包括:终端信息、数据类型信息、指定版本号信息、最新版本号信息,以及所述最新版本号的数据相对于所述指定版本号的数据的差异数据。
所述差异数据包括:修改数据、删除数据和添加数据。
进一步的,步骤S406,具体包括:
将所述对比结果存储到会话缓存中,并将所述对比结果格式化为前端可用的数据结构,再将所述格式化后的对比结果反馈给所述终端。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。