增量数据的同步方法、装置、系统及电子设备与流程

文档序号:18192942发布日期:2019-07-17 05:40阅读:185来源:国知局
增量数据的同步方法、装置、系统及电子设备与流程
本发明涉及通信
技术领域
,尤其涉及一种增量数据的同步方法、装置、系统及电子设备。
背景技术
:数据库的数据同步是一直存在的普遍需求。其典型应用场景如,将交易数据库中的部分表同步到分析型数据库中,用于产生报表;或者,将业务a所在数据库中的部分表同步到业务b所在数据库中,用做支撑业务b。目前,一种主流的数据同步方法,是通过解析增量日志获取增量数据,然后把增量数据同步到目的数据库。该同步方式,首先通过解析增量日志,还原源数据表的插入(insert)、修改(update)、删除(delete)操作,以获取增量数据,然后通过对目的数据库中的表执行相同的操作,从而将增量数据同步到目的数据库。发明人在实现本发明的过程中,发现现有技术至少存在如下问题:上述解析增量日志的数据同步方式,需要将源数据表中执行过的所有操作在目的数据库中再逐行执行一遍,当增量数据量非常大时,同步效率很低。技术实现要素:本发明实施例提供一种增量数据的同步方法、装置、系统及电子设备,以解决现有技术中当增量数据量大时,同步效率低的缺陷,提高增量数据的同步效率。为达到上述目的,本发明实施例提供了一种增量数据的同步方法,包括:对源数据表的增量数据进行预处理,获取有效增量数据,所述有效增量数据由所述源数据表中同一行数据的最新行操作所产生;对所述有效增量数据进行同步处理。本发明实施例还提供了一种增量数据的同步装置,包括:预处理模块,用于对源数据表的增量数据进行预处理,获取有效增量数据,所述有效增量数据由所述源数据表中同一行数据的最新行操作所产生;同步模块,用于对所述有效增量数据进行同步处理。本发明实施例还提供了一种增量数据的同步系统,包括:源数据库、目的数据库和客户端,所述客户端用于,从所述源数据库中获取源数据表的增量数据,对源数据表的增量数据进行预处理,获取有效增量数据,所述有效增量数据由所述源数据表中同一行数据的最新行操作所产生,将所述有效增量数据同步到所述目的数据库的目的数据表中。本发明实施例还提供一种电子设备,包括:存储器,用于存储程序;处理器,用于运行所述存储器中存储的所述程序,以用于:对源数据表的增量数据进行预处理,获取有效增量数据,所述有效增量数据由所述源数据表中同一行数据的最新行操作所产生;对所述有效增量数据进行同步处理。本发明实施例提供的增量数据的同步方法、装置、系统及电子设备,通过获取源数据表中同一行数据的最新操作所产生的有效增量数据,仅对有效增量数据进行同步,大大缩减了待同步的数据量,提高了同步效率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本发明提供的增量数据的同步系统实施例的系统框图;图2为本发明提供的增量数据的同步方法一个实施例的流程图;图3为本发明提供的增量数据的同步方法另一个实施例的流程图;图4为本发明提供的增量数据的同步装置实施例的结构示意图;图5为本发明提供的电子设备实施例的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。在现有技术中,针对上一次同步的数据(旧数据),源数据库中对其进行一些操作(包括:插入行,修改行,删除行),从而产生的新数据称之为旧数据的增量数据。在进行数据同步时,需要从日志文件中获取这段时间内针对旧数据的各种操作,然后,在目的数据库中,将这些操作对旧数据再重新执行一遍,便可实现增量数据的同步。针对现有技术中逐行进行数据同步(所有操作都需重新执行),造成同步效率低的缺陷,本申请提供一种解决方案,其主要原理是:在向目的数据库同步增量数据之前,首先对增量数据进行预处理,获取源数据表中同一行数据的最新行操作所产生的有效增量数据,然后只针对有效增量数据进行同步。由于在源数据库中增量数据产生的阶段,针对一个数据表中的同一行数据可能进行过多次操作,而中间的多次操作结果会被最新的操作所覆盖,因此,只有最新行操作所产生的增量数据才是有效的。因此,仅对有效增量数据进行同步,既可实现增量数据的完美同步,又能够大大缩减待同步的数据量,从而提高数据同步效率。上述实施例是对本发明实施例的技术原理的说明,下面通过多个实施例来进一步对本发明实施例具体技术方案进行详细描述。实施例一图1为本发明提供的增量数据的同步系统实施例的系统框图。如图1所示,该增量数据的同步系统包括:源数据库1、目的数据库2和客户端3。其中,客户端3用于将源数据库1中的增量数据同步到目的数据库2中。客户端3从源数据库1中获取源数据表的增量数据,对源数据表的增量数据进行预处理,获取有效增量数据,该有效增量数据由源数据表中同一行数据的最新行操作所产生,将有效增量数据同步到目的数据库2的目的数据表中。客户端3对增量数据的预处理操作可以具体为:向增量数据中添加操作标识,该操作标识与源数据表的行操作唯一对应、且按行操作的时间先后顺序逐渐增大;对于源数据表中同一行数据的增量数据,按照操作标识降序的顺序进行排序,并将排序后的序号更新为增量数据的预处理标记;针对源数据表中同一行数据的增量数据,将预处理标记最小的增量数据确定为该行数据的有效增量数据。在本发明实施例中,客户端3可以是一个独立的逻辑体,独立部署于源数据库1和目的数据库2之外。客户端3可以以事务(包含至少一个源数据表)为单位从源数据库1中获取增量日志,对增量日志进行解析,获取至少一个源数据表的增量数据,并按一定格式存储在客户端的本地数据库中。然后,在本地数据库中对增量数据进行预处理操作,获取有效增量数据。其次,客户端3在将增量数据写入本地数据库后,以事务为单位将增量数据向目的数据库2进行提交,以保证数据同步的事务一致性。再次,客户端3还可以以事务为单位,根据事务中源数据表的个数,开启多个并行线程,每个线程用于对一个源数据表执行同步操作。本发明实施例提供的增量数据的系统,通过获取源数据表中同一行数据的最新操作所产生的有效增量数据,仅对有效增量数据进行同步,大大缩减了待同步的数据量,提高了同步效率。同时,客户端以事务为单位进行数据处理,能够保证数据同步的事务一致性。实施例二图2为本发明提供的增量数据的同步方法一个实施例的流程图,该方法的执行主体可以为上述实施例所描述的系统中的客户端。如图2所示,该增量数据的同步方法包括如下步骤:s201,对源数据表的增量数据进行预处理,获取有效增量数据,该有效增量数据由源数据表中同一行数据的最新行操作所产生。在本发明实施例中,客户端从源数据库中获取源数据表的增量数据,并对增量数据进行预处理,获取源数据表中同一行数据的最新行操作所产生的有效增量数据。s202,对所述有效增量数据进行同步处理。在获取到有效增量数据后,客户端对有效增量数据进行同步处理,将有效增量数据同步至目的数据库。本发明实施例提供的增量数据的同步方法,通过获取源数据表中同一行数据的最新操作所产生的有效增量数据,仅对有效增量数据进行同步,大大缩减了待同步的数据量,提高了同步效率。实施例三图3为本发明提供的增量数据的同步方法另一个实施例的流程图。如图3所示,在上述图2所示实施例的基础上,本实施例提供的增量数据的同步方法还可以包括以下步骤:s301,获取增量日志,从增量日志中解析出源数据表的增量数据。在本发明实施例中,客户端从源数据库中获取增量日志,并对增量日志进行解析,获取源数据库中源数据表的增量数据。s302,向增量数据中添加操作标识,该操作标识与源数据表的行操作唯一对应、且按行操作的时间先后顺序逐渐增大。s303,对于源数据表中同一行数据的增量数据,按照操作标识降序的顺序进行排序,并将排序后的序号更新为增量数据的预处理标记。s304,针对源数据表中同一行数据的增量数据,将预处理标记最小的增量数据确定为该行数据的有效增量数据。客户端创建本地数据库,将获取到的增量数据存储到本地数据库中,存储的内容包括:操作标识(id,与从增量日志中解析出的对源数据库中的源数据表的操作唯一对应,按时间顺序逐渐增大)、操作类型(event,包括:insert、update、delete)、源数据表名(tbname)、源数据表中某一行操作后的数据(new_row)、源数据表中某一行变更前的索引数据(old_key,索引数据作为表结构的主键,用于唯一标识表中的某一行)、预处理标记(flag)。对于同一张表(即,tbname相同)中的同一行(即,old_key相同)的数据,按照id降序的顺序进行排序,然后将排序后的序号更新到对应行的flag列中。如下表所示:表1经过排序处理后,得到表2。最后得到flag=1的数据,即为所有的有效增量数据。表1idtbnameold_keyflag1aa12bb13aa14bb15aa26aa1表2在本发明实施例中,上述步骤s303中,对于源数据表中同一行数据的增量数据,客户端也可以按照操作标识升序的顺序进行排序;此时,步骤s304中,则针对源数据表中同一行数据的增量数据,将预处理标记最大的增量数据确定为该行数据的有效增量数据。s305,删除目的数据表中与有效增量数据相对应的行数据。客户端可以将目的数据库中目标数据表的相关行(flag=1对应的行)中的数据进行批量删除。具体地,可以创建临时数据表;然后,将有效增量数据中的索引值(old_key)批量写入临时数据表中;最后,在目的数据表中,批量删除与临时数据表中的索引值相同的行数据。s306,将有效增量数据写入目的数据表。客户端可以将本地数据库中的有效增量数据(flag=1对应的行中的数据)批量写入(如,以copy语句的方式,比insert语句的性能快两个数量级)目的数据表。本发明实施例提供的增量数据的同步方法,通过获取源数据表中同一行数据的最新操作所产生的有效增量数据,仅对有效增量数据进行同步,大大缩减了待同步的数据量,同时,对数据进行批量处理,极大地提高了数据同步效率。实施例四图4为本发明提供的增量数据的同步装置实施例的结构示意图,可用于执行如图2和图3所示的方法步骤。如图4所示,该装置可以包括:预处理模块41和同步模块42。其中,预处理模块41用于对源数据表的增量数据进行预处理,获取有效增量数据,该有效增量数据由源数据表中同一行数据的最新行操作所产生;同步模块42用于对有效增量数据进行同步处理。在本发明实施例中,预处理模块41从源数据库中获取源数据表的增量数据,并对增量数据进行预处理,获取源数据表中同一行数据的最新行操作所产生的有效增量数据。同步模块42对有效增量数据进行同步处理,将有效增量数据同步至目的数据库。进一步地,预处理模块41还可以用于向增量数据中添加操作标识,该操作标识与源数据表的行操作唯一对应、且按行操作的时间先后顺序逐渐增大;对于源数据表中同一行数据的增量数据,按照操作标识降序的顺序进行排序,并将排序后的序号更新为增量数据的预处理标记;针对源数据表中同一行数据的增量数据,将预处理标记最小的增量数据确定为该行数据的有效增量数据。或者,预处理模块41也可以用于向增量数据中添加操作标识,该操作标识与源数据表的行操作唯一对应、且按行操作的时间先后顺序逐渐增大;对于源数据表中同一行数据的增量数据,按照操作标识升序的顺序进行排序,并将排序后的序号更新为增量数据的预处理标记;针对源数据表中同一行数据的增量数据,将预处理标记最大的增量数据确定为该行数据的有效增量数据。更进一步地,同步模块42还可以用于删除目的数据表中与有效增量数据相对应的行数据;并将有效增量数据写入目的数据表。具体地,同步模块42可以批量删除目的数据表中与有效增量数据相对应的行数据;并将有效增量数据批量写入目的数据表。本发明实施例提供的增量数据的同步装置,通过获取源数据表中同一行数据的最新操作所产生的有效增量数据,仅对有效增量数据进行同步,大大缩减了待同步的数据量,同时,对数据进行批量处理,极大地提高了数据同步效率。实施例五以上描述了增量数据的同步装置的内部功能和结构,该装置可实现为一种电子设备。图5为本发明提供的电子设备实施例的结构示意图。如图5所示,该电子设备包括存储器51和处理器52。存储器51,用于存储程序。除上述程序之外,存储器51还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。处理器52,与存储器51耦合,执行存储器51所存储的程序,以用于:对源数据表的增量数据进行预处理,获取有效增量数据,该有效增量数据由源数据表中同一行数据的最新行操作所产生;对有效增量数据进行同步处理。进一步,如图5所示,电子设备还可以包括:通信组件53、电源组件54、音频组件55、显示器56等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。通信组件53被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件53经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件53还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。电源组件54,为电子设备的各种组件提供电力。电源组件54可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。音频组件55被配置为输出和/或输入音频信号。例如,音频组件55包括一个麦克风(mic),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器51或经由通信组件53发送。在一些实施例中,音频组件55还包括一个扬声器,用于输出音频信号。显示器56包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1