一种远程数据同步的方法和装置与流程

文档序号:12666850阅读:219来源:国知局
一种远程数据同步的方法和装置与流程

本发明实施例涉及通信领域,尤其涉及一种远程数据同步的方法和装置。



背景技术:

随着社会的发展和科技的进步,用户越来越依赖网络系统来处理各种事务。网络系统的正常运行依赖于数据中心系统的稳定运行,一旦数据由于某种原因丢失,将会使得某些功能陷入瘫痪,对用户造成不可估量的损失。为了保证源数据库中数据安全,通常采用备份数据的方式保证数据的连续性,将服务器上的源数据库的数据远程同步至目标数据库,以便于在服务器出现故障时,能使用目标数据库中的数据。

现有技术中,数据库之间的远程同步主要采用数据库本身数据的复制技术,数据库本身数据的数据量大,在远距离传输时,传输带宽需求大而且传输速度很慢,容易出现传输中断的问题。可见,现有技术中,无法快速、高效率的远距离传输数据;因此,亟需一种远程数据同步方法,快速、高效率的实现远距离传输数据。



技术实现要素:

本发明实施例提供一种远程数据同步的方法和装置,用以快速、高效率的实现远距离传输数据。

本发明实施例提供一种远程数据同步的方法,包括:服务器获取日志文件中的M条数据记录;其中,所述M条数据记录中每条数据记录中包括预设字段对应的信息;其中,所述M为大于等于2的整数;所述服务器根据所述M条数据记录中每条数据记录中的预设字段对应的信息,确定出所述M条数据记录中每条数据记录的主键;所述服务器针对所述M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从所述M条数据记录中删除所述N条数据记录中的N-1条数据记录;其中,所述N为大于等于2、且小于等于M的整数;所述服务器将所述M条数据记录中剩余的K条数据记录发送给终端;其中,所述K为大于等于1、且小于等于M的整数。

可选地,所述从所述M条数据记录中删除所述N条数据记录中的N-1条数据记录,包括:从所述M条数据记录中,将所述N条数据记录中除日期最近的一条数据记录之外的N-1条数据记录删除。

可选地,所述服务器获取日志文件中的M条数据记录,包括:所述服务器获取事件流格式的日志文件;所述服务器解析所述事件流格式的日志文件,得到所述日志文件中包括的行变换对象流格式的所述M条数据记录。

可选地,所述服务器将所述M条数据记录中剩余的K条数据记录发送给终端,包括:通过L个调度进程将所述K条数据记录中转换成L个工作对象流;其中,所述L个调度进程中的每个调度进程对应转换所述K条数据记录中的至少一条数据记录;其中,所述L为大于等于1的整数;所述服务器将转换得到的L个工作对象流发送给所述终端。

可选地,所述服务器将转换得到的L个工作对象流发送给所述终端,包括:所述服务器对得到的L个工作对象流中的每个工作对象流进行序列化;所述服务器对序列化后的每个工作对象流进行压缩和加密,将得到的压缩和加密之后的每个工作对象流发送给所述终端。

本发明实施例提供另一种远程数据同步的方法,包括:终端接收服务器发送的所述M条数据记录中的K条数据记录;其中,所述K为大于等于1、且小于等于M的整数;所述M为大于等于2的整数;所述终端将所述K条数据记录发送至数据库;其中,所述K条数据记录是所述服务器获取日志文件中的M条数据记录;根据所述M条数据记录中每条数据记录中的预设字段对应的信息,确定出所述M条数据记录中每条数据记录的主键;针对所述M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从所述M条数据记录中删除所述N条数据记录中的N-1条数据记录之后得到的;其中,所述M条数据记录中每条数据记录中包括预设字段对应的信息;所述N为大于等于2、且小于等于M的整数。

可选地,所述终端接收服务器发送的所述M条数据记录中剩余的K条数据记录,包括:所述终端接收所述服务器发送的序列化、且进行压缩和加密后的所述L个工作对象流中的每个工作对象流;其中,所述L个工作对象流为所述K条数据记录通过L个调度进程转换得到的;所述L个调度进程中的每个调度进程对应转换所述K条数据记录中的至少一条数据记录;其中,所述L为大于等于1的整数;所述终端接收服务器发送的所述M条数据记录中剩余的K条数据记录之后,将所述K条数据记录发送至数据库之前,还包括:所述终端将所述每个工作对象流进行解密和解压缩,并对所述解密和解压缩后的每个工作对象流进行反序列化,得到K条数据记录。

可选地,所述终端将所述K条数据记录发送至数据库,包括:所述终端通过N个线程将所述K条数据记录中并行发送至所述数据库;其中,所述N个线程中的每个线程对应发送所述K条数据记录中的至少一条数据记录;其中,所述N为大于等于1的整数。

本发明实施例提供一种用于远程数据同步的服务器,包括:

获取单元,用于获取日志文件中的M条数据记录;其中,所述M条数据记录中每条数据记录中包括预设字段对应的信息;其中,所述M为大于等于2的整数;

处理单元,用于根据所述M条数据记录中每条数据记录中的预设字段对应的信息,确定出所述M条数据记录中每条数据记录的主键;针对所述M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从所述M条数据记录中删除所述N条数据记录中的N-1条数据记录;其中,所述N为大于等于2、且小于等于M的整数;

发送单元,用于所述服务器将所述M条数据记录中剩余的K条数据记录发送给终端;其中,所述K为大于等于1、且小于等于M的整数。

可选地,所述处理单元,用于:从所述M条数据记录中,将所述N条数据记录中除日期最近的一条数据记录之外的N-1条数据记录删除。

可选地,所述获取单元,用于:获取事件流格式的日志文件;所述处理单元,用于:解析所述事件流格式的日志文件,得到所述日志文件中包括的行变换对象流格式的所述M条数据记录。

可选地,所述处理单元,用于:通过L个调度进程将所述K条数据记录中转换成L个工作对象流;其中,所述L个调度进程中的每个调度进程对应转换所述K条数据记录中的至少一条数据记录;其中,所述L为大于等于1的整数;发送单元,用于:将转换得到的L个工作对象流发送给所述终端。

可选地,所述处理单元,用于:为得到的L个工作对象流中的每个工作对象流分配序列号;将分配序列号后的每个工作对象流进行压缩和加密;所述发送单元,用于:将得到的压缩和加密之后的每个工作对象流发送给所述终端。

本发明实施例提供一种用于远程数据同步的终端,包括:接收单元,用于接收服务器发送的所述M条数据记录中的K条数据记录;其中,所述K为大于等于1、且小于等于M的整数;所述M为大于等于2的整数;发送单元,用于将所述K条数据记录发送至数据库;其中,所述K条数据记录是所述服务器获取日志文件中的M条数据记录;根据所述M条数据记录中每条数据记录中的预设字段对应的信息,确定出所述M条数据记录中每条数据记录的主键;针对所述M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从所述M条数据记录中删除所述N条数据记录中的N-1条数据记录之后得到的;其中,所述M条数据记录中每条数据记录中包括预设字段对应的信息;所述N为大于等于2、且小于等于M的整数。

可选地,所述接收单元,用于:接收所述服务器发送的分配了序列号的、且进行压缩和加密后的所述L个工作对象流中的每个工作对象流;其中,所述L个工作对象流为所述K条数据记录通过L个调度进程转换得到的;所述L个调度进程中的每个调度进程对应转换所述K条数据记录中的至少一条数据记录;其中,所述L为大于等于1的整数;所述终端还包括处理单元,用于:将所述每个工作对象流进行解密和解压缩,并对所述解密和解压缩后的每个工作对象流进行反序列化,得到K条数据记录。

可选地,所述终端将所述K条数据记录发送至数据库,包括:所述发送单元,用于通过N个线程将所述K条数据记录中并行发送至所述数据库;其中,所述N个线程中的每个线程对应发送所述K条数据记录中的至少一条数据记录;其中,所述N为大于等于1的整数。

本发明实施例中,由于服务器根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键,并针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录;其中,N为大于等于2、且小于等于M的整数;服务器将M条数据记录中剩余的K条数据记录发送给终端;如此,一方面,服务器对M条数据记录中主键相同的数据记录只保留一条,最后得到K条主键不相同的数据记录,消除了数据冗余,大大降低数据同步过程中对传输带宽的容量需求,从而降低了远距离传输数据时出现中断的可能性,而且传输效率更高;另一方面,服务器向终端发送的数据记录数量K条,小于从日志文件中获取的数据记录数量M条,减小了传输的数据量,从而更快速的完成数据传输;从而实现了快速、高效率的实现远距离传输数据。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。

图1为本发明实施例提供了一种远程数据同步的系统架构示意图;

图2为本发明实施例提供的一种远程数据同步的方法流程示意图;

图3为本发明实施例提供的另一种远程数据同步系统的结构示意图;

图4为本发明实施例提供的另一种远程数据同步的方法流程示意图;

图5为本发明实施例提供的一种用于远程数据同步的服务器的结构示意图;

图6为本发明实施例提供的一种用于远程数据同步的终端的结构示意图。

具体实施方式

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

图1示例性示出了本发明实施例适用的一种远程数据同步的系统架构示意图,如图1所示,本发明实施例适用的系统架构包括服务器101,以及终端102和终端103,通过无线连接或有线连接或其他方式连接。

服务器101可以是用于与终端进行通信的设备,例如,可以是GSM系统或CDMA中的基站(Base Transceiver Station,简称BTS),也可以是WCDMA系统中的基站(NodeB,简称NB),还可以是LTE系统中的演进型基站(Evolutional Node B,简称eNB或eNodeB),或者该服务器可以为中继站、接入点、车载设备、可穿戴设备以及未来5G网络中的服务器侧设备或未来演进的PLMN网络中的服务器等。

终端102和终端103中的任一个终端可以经无线接入网(Radio Access Network,简称RAN)与一个或多个核心网进行通信,终端可以指用户设备(User Equipment,简称UE)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、无线通信设备、用户代理或用户装置。

本发明实施例中,服务器上的数据库向终端上的数据库传输数据;服务器

通过authentication和binlog dump协议进行数据库二进制日志数据获取,并解析得到DML语句的数据记录,对数据记录进行过滤、序列化、压缩和加密之后,向终端上进行网络传输。终端接收服务器发送压缩包,并进行解压缩、反序列化和解密,将得到的解压缩、反序列化和解密后的数据记录载入工作池,再将工作池中的数据记录并行发送至终端上的数据库。

图2示例性示出了本发明实施例提供的一种远程数据同步的方法流程示意图。

基于图1所示的系统架构,如图2所示,本发明实施例提供的一种远程数据同步方法的方法,包括以下步骤:

步骤S201:服务器获取日志文件中的M条数据记录;

其中,M条数据记录中每条数据记录中包括预设字段对应的信息;其中,M为大于等于2的整数;

步骤S202:服务器根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键;

步骤S203:服务器针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录;

其中,N为大于等于2、且小于等于M的整数;

步骤S204:服务器将M条数据记录中剩余的K条数据记录发送给终端;其中,K为大于等于1、且小于等于M的整数;

步骤S205:终端接收服务器发送的M条数据记录中的K条数据记录;

其中,K为大于等于1、且小于等于M的整数;M为大于等于2的整数;

步骤S206:终端将K条数据记录发送至数据库。

上述实施例步骤S201中,服务器上的本地数据中心从的源数据库获取日志文件,该日志文件为二进制日志文件。具体实施中,服务器上的本地数据中心获取该日志文件之后,得到M条数据记录中每条数据记录中的预设字段对应的信息;可选地,每条数据记录中包括的预设字段对应的信息有多种,根据实际应用过程中的需求进行设置,也可针对不同类型的数据记录进行设置,例如交易数据记录、聊天数据记录等等;举个例子,以一条交易数据记录为例,预设字段对应的信息可以为订单号、流水号、交易内容、交易金额、交易时间、交易状态中的至少一种。

上述实施例步骤S202中,主键可以根据实际应用过程中的需求进行设置,一条数据记录中的预设字段对应的信息包括多种信息,以其中一种信息为主键;举个例子,以交易数据记录为例,主键可以设置为订单号、或流水号;

上述实施例步骤S203中,N为大于等于2、且小于等于M的整数;例如,M条数据记录中:记录一、记录二、记录三、记录四为交易记录,交易记录主键设置为订单号,其中,记录一的主键为201610001,记录二、记录三、记录四的主键为201610002,此时,就删除记录二、记录三、记录四中的两条数据记录,保留其中一条数据记录,可以任选其中一条保留,也可以设置为时间最近的一条保留,此处不限定保留的具体方式。

上述实施例步骤S204中,服务器K条数据记录发送给终端的具体方式不限定,可以为压缩之后发送、也可以为加密之后发送。

上述实施例步骤S205中,终端上的本地数据中心接收服务器发送的K条数据记录。

上述实施例步骤S206中,终端将K条数据记录发送至终端上的目标数据库,发送方式有多种,可以采用一个线程发送,例如一条一条数据记录发送,也可以多条数据记录一起发送;也可以采用多个线程发送:例如五个线程,每个线程发送20条数据记录;具体采用的线程数量可根据实际需求进行设置。

本发明实施例中,由于服务器根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键,并针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录;其中,N为大于等于2、且小于等于M的整数;服务器将M条数据记录中剩余的K条数据记录发送给终端;如此,一方面,服务器对M条数据记录中主键相同的数据记录只保留一条,最后得到K条主键不相同的数据记录,消除了数据冗余,大大降低数据同步过程中对传输带宽的容量需求,从而降低了远距离传输数据时出现中断的可能性,而且传输效率更高;另一方面,服务器向终端发送的数据记录数量K条,小于从日志文件中获取的数据记录数量M条,减小了传输的数据量,从而更快速的完成数据传输;如此,可以实现快速、高效率的实现远距离传输数据。

本发明实施例中,服务器在监测到源数据库中更新或生成日志文件的情况下,通过二进制日志接口获取日志文件;也就是说,一方面,在获取日志文件时并不直接对数据库中的数据进行访问,因此对源数据库本身的运行影响非常小;另一方面,在检测到日志文件更新或生成新的日志文件时,就获取日志文件,因此本发明实施例提供的方案是实时获取数据记录的,进而实现实时同步数据的效果。

可选地,服务器获取日志文件中的M条数据记录,包括:服务器获取事件流格式的日志文件;服务器解析事件流格式的日志文件,得到日志文件中包括的行变换对象流格式的M条数据记录。

本发明实施例中,可选地,事件流格式可以为binlog格式,行变换对象流格式可以为Row Change对象流格式;将事件流格式的日志文件转换为行变换对象流格式的M条数据记录,例如,DML或者DDL语句,如此,便于服务器对行变换对象流格式的M条数据流进行同主键的数据记录进行处理,进而降低对传输带宽的容量需求。

可选地,服务器针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,服务器从M条数据记录中删除N条数据记录中的N-1条数据记录,包括:从M条数据记录中,将N条数据记录中除日期最近的一条数据记录之外的N-1条数据记录删除。

本发明实施例中,服务器通过DML合成器对M条数据记录进行处理,将M条数据记录中的主键相同的数据记录进行处理,只保留日期最近的一条数据记录,删除不需要的数据记录。举个例子,例如M等于10,N等于3,也就是说,10条数据记录中有3条数据记录的主键相同,这3条数据记录的日期为分别为同一天的8点、9点、10点,那么将10点对应的数据记录保留,删除8点和9点对应的2条数据记录。如此,消除了数据冗余,大大降低数据同步过程中对传输带宽的容量需求,从而降低了远距离传输数据时出现中断的可能性,而且传输效率更高。

可选地,服务器将M条数据记录中剩余的K条数据记录发送给终端,包括:通过L个调度进程将K条数据记录中转换成L个工作对象流;其中,L个调度进程中的每个调度进程对应转换K条数据记录中的至少一条数据记录;其中,L为大于等于1的整数;服务器将转换得到的L个工作对象流发送给终端。

本发明实施例中,服务器通过Work调度器对行变换对象流格式的K条数据记录进行处理;可选地,L的具体数值可根据实际需求进行设置;例如,K等于20,L等于5,也就是说,将20条数据记录通过Work调度器转换成5个工作对象流。如此,便于服务器对数据记录进行压缩、加密处理,进而更快传输数据。

可选地,服务器将转换得到的L个工作对象流发送给终端,包括:服务器对得到的L个工作对象流中的每个工作对象流进行序列化;服务器对序列化后的每个工作对象流进行压缩和加密,将得到的压缩和加密之后的每个工作对象流发送给终端。如此,一方面,对数据进行压缩,降低了对数据传输带宽的需求量,保证了数据传输的正常、高效的进行传输;另一方面,对数据记录进行加密,可以保证在进行数据同步的过程中的数据安全,提高数据安全性。

相应的,终端接收服务器发送的M条数据记录中剩余的K条数据记录,包括:终端接收服务器发送的序列化、且进行压缩和加密后的L个工作对象流中的每个工作对象流;其中,L个工作对象流为K条数据记录通过L个调度进程转换得到的;L个调度进程中的每个调度进程对应转换K条数据记录中的至少一条数据记录;其中,L为大于等于1的整数;终端接收服务器发送的M条数据记录中剩余的K条数据记录之后,将K条数据记录发送至数据库之前,还包括:终端将每个工作对象流进行解密和解压缩,并对解密和解压缩后的每个工作对象流进行反序列化,得到K条数据记录。可选地,终端对接收到的K条数据记录进行解压缩、解密、反序列化,将解压缩、解密、反序列化的K条数据记录放入工作(Work)池,以便于对K条数据记录进行缓存。

可选地,终端接收服务器发送的数据记录之后,若终端接收到压缩的数据包,则向服务器发送响应;若终端未接收到压缩的数据包,则不会向服务器发送响应;相应的,终端在预设时长内未接收到响应,则再次向终端发送压缩的数据包,以确保数据包完整发送成功。

可选地,终端将K条数据记录发送至数据库,包括:终端通过N个线程将K条数据记录中并行发送至数据库;其中,N个线程中的每个线程对应发送K条数据记录中的至少一条数据记录;其中,N为大于等于1的整数。

本发明实施例中,通过回放器调用N个线程并行将K条数据记录发送至目标数据库中;例如,K等于20,N等于4,也就是说,通过4个线程发送20条数据记录,一个线程发送5条数据记录。由于终端接收到的数据记录之前,已经对数据记录中的相同主键的数据记录进行了处理,此时不存在相同主键的数据记录,因此,回放器可以对K条数据记录进行多并行发送,不会出现存在相同主键时,并行发送数据记录导致的相同主键的数据记录在不同的线程进行发送的情况。如此,并行发送大大提高了终端侧将数据记录发送至数据库的速度,进而提高了数据传输的速度,而且提高了数据传输的效率。

为了更清楚的介绍服务器向终端远距离数据同步的过程,本发明实施提供如下实施例。

图3示例性示出了本发明实施例提供的另一种远程数据同步系统的结构示意图。

如图3所示,本发明实施例适用的另一种远程数据同步系统包括服务器310和终端320;服务器310上包括本地数据中心311、数据库316;本地数据中心311包括解析器321、DML合成器313、Work调度器314、网络传输服务315;终端320上包括本地数据中心321、数据库325;本地数据中心321包括网络传输服务322、Work池323、回放器324;

本发明实施例中,数据传输过程如下:服务器310中的本地数据中心311从数据库316获取日志文件;服务器311上的解析器312对获取的日志文件进行解析,获取日志文件中的M条数据记录,将数据记录的格式从事件流格式转换为对象流格式,以便于DML合成器313对数据记录进行处理;DML合成器313用于将事件流格式的数据记录中的主键相同的数据记录进行筛选,保留日期最近的一条数据记录,剩余的K条数据记录均为主键不同的数据记录;Work调度器314用于调度L个调度进程,将DML合成器313中得到的K条数据记录转换成L个工作对象流;网络传输服务315将L个工作对象进行序列化、压缩、加密之后,得到序列化、压缩、加密后的K条数据记录,并将K条数据记录发送至终端320。终端320接收K条数据记录之后,通过网络传输服务322将L个工作对象流进行解压缩、反序列化、解密,得到解压缩、反序列化、解密后的K条数据记录,并放入Work池323中;Work池323对K条数据记录进行持久化缓存;回放器324将K条数据记录调用N个线程并行发送数据库325;本发明实施例中,将服务器310上的数据库316中的数据同步传输至终端320上的数据库325;如此,保证了服务器上的数据库的数据备份的完整性,避免了服务器中的数据库数据记录丢失的情况下,导致的数据难以恢复的情况。

为了更清楚的介绍上述方法流程,本发明实施例提供以下示例。

图4示例性示出了本发明实施例提供的另一种远程数据同步方法的方法流程示意图,如图4所示,该方法包括:

步骤S401:服务器获取事件流格式的日志文件;

步骤S402:服务器解析事件流格式的日志文件,得到日志文件中包括的行变换对象流格式的M条数据记录;其中,M条数据记录中每条数据记录中包括预设字段对应的信息;其中,M为大于等于2的整数;

步骤S403:服务器根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键;

步骤S404:服务器针对M条数据记录对应的所有主键中的每个主键:在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中,将N条数据记录中除日期最近的一条数据记录之外的N-1条数据记录删除;其中,N为大于等于2、且小于等于M的整数;

步骤S405:服务器得到M条数据记录中剩余的K条数据记录;其中,K为大于等于1、且小于等于M的整数;

步骤S406:通过L个调度进程将M条数据记录中剩余的K条数据记录中转换成L个工作对象流;

其中,L个调度进程中的每个调度进程对应转换K条数据记录中的至少一条数据记录;其中,L为大于等于1的整数;

步骤S407:服务器通过L个调度进程将K条数据记录中转换成L个工作对象流;

步骤S408:服务器将L个工作对象流中的每个工作对象流进行序列化、压缩和加密,得到序列化、压缩和加密后的L个工作对象流;

步骤S409:服务器向终端发送序列化、压缩和加密后的L个工作对象流;

步骤S410:终端接收服务器发送的序列化、压缩和加密后的L个工作对象流;其中,L个工作对象流为K条数据记录通过L个调度进程转换得到的;L个调度进程中的每个调度进程对应转换K条数据记录中的至少一条数据记录;其中,L为大于等于1的整数;

步骤S411:终端将序列化、压缩和加密后的每个工作对象流进行解压缩、反序列化和解密,得到K条数据记录。

步骤S412:终端通过N个线程将K条数据记录中并行发送至数据库;其中,N个线程中的每个线程对应发送K条数据记录中的至少一条数据记录;其中,N为大于等于1的整数。

从上述内容可看出:由于服务器根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键,并针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录;其中,N为大于等于2、且小于等于M的整数;服务器将M条数据记录中剩余的K条数据记录发送给终端;如此,一方面,服务器对M条数据记录中主键相同的数据记录只保留一条,最后得到K条主键不相同的数据记录,消除了数据冗余,大大降低数据同步过程中对传输带宽的容量需求,从而降低了远距离传输数据时出现中断的可能性,而且传输效率更高;另一方面,服务器向终端发送的数据记录数量K条,小于从日志文件中获取的数据记录数量M条,减小了传输的数据量,从而更快速的完成数据传输;如此,可以实现快速、高效率的实现远距离传输数据。进一步,本发明实施例提供的方法在数据传输之前进行压缩和加密,解决了远距离的数据库之间的数据同步过程中数据时效性、一致性、安全性等关键问题,对数据库的影响较低,具有高效、低带宽、低延时、高安全性等效果。

图5示例性示出了本发明实施例提供的一种用于远程数据同步的服务器的结构示意图。

基于相同构思,本发明实施例提供的一种用于远程数据同步的服务器,如图5所示,该服务器500包括获取单元501、处理单元502和发送单元503;其中:

获取单元501,用于获取日志文件中的M条数据记录;其中,M条数据记录中每条数据记录中包括预设字段对应的信息;其中,M为大于等于2的整数;

处理单元502,用于根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键;针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录;其中,N为大于等于2、且小于等于M的整数;

发送单元503,用于服务器将M条数据记录中剩余的K条数据记录发送给终端;其中,K为大于等于1、且小于等于M的整数。

可选地,处理单元502,用于:从M条数据记录中,将N条数据记录中除日期最近的一条数据记录之外的N-1条数据记录删除。

可选地,获取单元501,用于:获取事件流格式的日志文件;处理单元502,用于:解析事件流格式的日志文件,得到日志文件中包括的行变换对象流格式的M条数据记录。

可选地,处理单元502,用于:通过L个调度进程将K条数据记录中转换成L个工作对象流;其中,L个调度进程中的每个调度进程对应转换K条数据记录中的至少一条数据记录;其中,L为大于等于1的整数;发送单元503,用于:将转换得到的L个工作对象流发送给终端。

可选地,处理单元502,用于:为得到的L个工作对象流中的每个工作对象流分配序列号;将分配序列号后的每个工作对象流进行压缩和加密;发送单元503,用于:将得到的压缩和加密之后的每个工作对象流发送给终端。

从上述内容可看出:由于服务器根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键,并针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录;其中,N为大于等于2、且小于等于M的整数;服务器将M条数据记录中剩余的K条数据记录发送给终端;如此,一方面,服务器对M条数据记录中主键相同的数据记录只保留一条,最后得到K条主键不相同的数据记录,消除了数据冗余,大大降低数据同步过程中对传输带宽的容量需求,从而降低了远距离传输数据时出现中断的可能性,而且传输效率更高;另一方面,服务器向终端发送的数据记录数量K条,小于从日志文件中获取的数据记录数量M条,减小了传输的数据量,从而更快速的完成数据传输;如此,可以实现快速、高效率的实现远距离传输数据。进一步,本发明实施例提供的方法在数据传输之前进行压缩和加密,解决了远距离的数据库之间的数据同步过程中数据时效性、一致性、安全性等关键问题,对数据库的影响较低,具有高效、低带宽、低延时、高安全性等效果。

图6示例性示出了本发明实施例提供的一种用于远程数据同步的终端的结构示意图。

基于相同构思,本发明实施例提供的一种用于远程数据同步的终端,如图6所示,该终端600包括接收单元601和发送单元602,其中:

接收单元601,用于接收服务器发送的M条数据记录中的K条数据记录;其中,K为大于等于1、且小于等于M的整数;M为大于等于2的整数;

发送单元602,用于将K条数据记录发送至数据库;其中,K条数据记录是服务器获取日志文件中的M条数据记录;根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键;针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录之后得到的;其中,M条数据记录中每条数据记录中包括预设字段对应的信息;N为大于等于2、且小于等于M的整数。

可选地,接收单元601,用于:接收服务器发送的分配了序列号的、且进行压缩和加密后的L个工作对象流中的每个工作对象流;其中,L个工作对象流为K条数据记录通过L个调度进程转换得到的;L个调度进程中的每个调度进程对应转换K条数据记录中的至少一条数据记录;其中,L为大于等于1的整数;终端还包括处理单元,用于:将每个工作对象流进行解密和解压缩,并对解密和解压缩后的每个工作对象流进行反序列化,得到K条数据记录。

可选地,终端将K条数据记录发送至数据库,包括:发送单元602,用于通过N个线程将K条数据记录中并行发送至数据库;其中,N个线程中的每个线程对应发送K条数据记录中的至少一条数据记录;其中,N为大于等于1的整数。

从上述内容可看出:由于服务器根据M条数据记录中每条数据记录中的预设字段对应的信息,确定出M条数据记录中每条数据记录的主键,并针对M条数据记录对应的所有主键中的每个主键,在确定存在N条数据记录的主键为该主键的情况下,从M条数据记录中删除N条数据记录中的N-1条数据记录;其中,N为大于等于2、且小于等于M的整数;服务器将M条数据记录中剩余的K条数据记录发送给终端;如此,一方面,服务器对M条数据记录中主键相同的数据记录只保留一条,最后得到K条主键不相同的数据记录,消除了数据冗余,大大降低数据同步过程中对传输带宽的容量需求,从而降低了远距离传输数据时出现中断的可能性,而且传输效率更高;另一方面,服务器向终端发送的数据记录数量K条,小于从日志文件中获取的数据记录数量M条,减小了传输的数据量,从而更快速的完成数据传输;如此,可以实现快速、高效率的实现远距离传输数据。进一步,本发明实施例提供的方法在数据传输之前进行压缩和加密,解决了远距离的数据库之间的数据同步过程中数据时效性、一致性、安全性等关键问题,对数据库的影响较低,具有高效、低带宽、低延时、高安全性等效果。

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

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

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

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

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

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

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