数据同步方法及装置与流程

文档序号:12063914阅读:181来源:国知局
数据同步方法及装置与流程
本申请涉及通信
技术领域
,尤其涉及一种数据同步方法及装置。
背景技术
:在设备运行业务期间,通常会涉及到数据表间同步数据的过程,即将源数据表中的数据同步到目的数据表中,以对目的数据表中的数据进行处理。在相关技术中,由于源数据表是用于记录业务运行过程中产生的数据,因此,只要业务运行,源数据表中的数据时刻都在发生变化,为了使源数据表中的数据与目的数据表中的数据能够保持一致,在同步数据过程中,需要停止业务进行数据同步的过程。然而在实际应用环境中,如果停止业务,会造成业务中断的问题。技术实现要素:有鉴于此,本申请提供一种数据同步方法及装置,以解决停止业务进行数据同步的过程会造成业务中断的问题。根据本申请实施例的第一方面,提供一种数据同步方法,所述方法应用于包括源数据表、与所述源数据表对应的变化表、目的数据表的系统上,所述变化表用于记录所述源数据表中变化的数据,所述方法包括:将所述源数据表中的数据同步到所述目的数据表,并确定已同步数据;从所述变化表中查找所述已同步数据;在所述变化表中,为查找到的已同步数据设置预设标记;将所述变化表中未设置所述预设标记的数据确定为未同步数据,并将所述未同步数据同步到所述目的数据表。根据本申请实施例的第二方面,提供一种数据同步装置,所述装置应用于包括源数据表、与所述源数据表对应的变化表、目的数据表的系统上,所述变化表用于记录所述源数据表中变化的数据,所述装置包括:第一同步模块,用于将所述源数据表中的数据同步到所述目的数据表,并确定已同步数据;查找模块,用于从所述变化表中查找所述已同步数据;设置模块,用于在所述变化表中,为查找到的已同步数据设置预设标记;确定模块,用于将所述变化表中未设置所述预设标记的数据确定为未同步数据;第二同步模块,用于将所述未同步数据同步到所述目的数据表。应用本申请实施例,网络设备先将源数据表中的数据同步到目的数据表,并确定已同步数据,然后从变化表中查找该已同步数据,并在变化表中,为查找到的已同步数据设置预设标记,从而可以将变化表中未设置预设标记的数据确定为未同步数据,并将该未同步数据同步到目的数据表,从而实现在不停止业务的情况下,也可以完成数据同步的过程。基于上述实现方式,由于变化表是用于记录源数据表中变化的数据的,在业务运行过程中,如果源数据表中的数据发生变化,变化表也会记录变化的数据,因此,通过在变化表中为已同步数据设置预设标记,以确保同步过的数据不再同步,进而确保同步到目的数据表中的数据不会出现重复数据,并且在数据同步过程中,也不会造成业务中断的问题。附图说明图1为本申请根据一示例性实施例示出的一种数据同步方法的实施例流程图;图2为本申请根据一示例性实施例示出的一种网络设备的硬件结构图;图3为本申请根据一示例性实施例示出的一种数据同步装置的实施例结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1为本申请根据一示例性实施例示出的一种数据同步方法的实施例流程图,该实施例可以应用在包括源数据表、与源数据表对应的变化表以及目的数据表的系统上,其中,源数据表与目的数据表即可以位于一个网络设备上,也可以位于两个不同的网络设备上,源数据表用于记录业务运行过程中产生的数据;目的数据表用于记录由源数据表同步过来的数据和由变化表同步过来的数据;该变化表是在网络设备为源数据表建立数据同步任务之后生成的,用于记录源数据表中变化的数据,即在数据同步任务建立之后,如果源数据表中有数据发生变化,则将变化的数据记录到变化表中。在本申请实施例中,以源数据表与目的数据表位于一个网络设备为例进行阐述,如图1所示,该数据同步方法可以包括两个过程:全量数据同步过程和增量数据同步过程,其中,全量数据同步过程指的是将源数据表中的所有数据都同步到目的数据表中,步骤101-步骤103即为全量数据同步过程,增量数据同步过程指的是将源数据表中变化的数据同步到目的数据表中,步骤104-步骤105即为增量数据同步过程,并且在执行增量数据同步过程之前,需要先执行一次全量数据同步过程,以保证源数据表与目的数据表中的数据一致,步骤101-步骤105如下所示:步骤101:将源数据表中的数据同步到目的数据表,并确定已同步数据。在一实施例中,源数据表可以是网络设备在进行业务初始化时建立的数据表,以记录业务运行过程中产生的数据,此外,网络设备还会对源数据表进行读取操作,以用于业务处理使用。目的数据表可以是网络设备在建立数据同步任务时生成的数据表,以记录从源数据表同步过来的数据,从而网络设备在根据业务需求,需要对数据进行运算、统计操作时,可以对目的数据表进行操作,通过两张表将业务运行与运算操作分开进行,可以保证业务的正常运行。在另一实施例中,网络设备可以将源数据表中已经成功同步到目的数据表中的数据确定为已同步数据。步骤102:从变化表中查找该已同步数据。在一实施例中,网络设备可以先确定该已同步数据对应的数据标识,并从变化表中,查找包括该数据标识的数据,若查找到的数据的数量超过预设数值,则再将已同步数据与查找到的每条数据进行匹配,并将匹配成功的数据确定为查找到的已同步数据;否则,可以直接将查找到的数据确定为查找到的已同步数据。其中,变化表中可以记录有数据标识与数据的对应关系,其中,数据标识可以是存储数据的地址,也可以是数字或者字符,或者是数字与字符的组合,本申请在此不进行限制,只要能够将每条数据区分开即可。由于在利用已同步数据对应的数据标识,从变化表中查找包括该数据标识的数据时,可能会有查找到多条数据的情况,因此为了确保能够查找到的数据为真正的已同步数据,在利用数据标识查找到多条数据时,进一步通过已同步数据与查找到的多条数据一一匹配的方式来确定真正的已同步数据,该预设数值可以是2。例如,在数据同步任务建立后,源数据表记录了数据A,且对应的地址为1,即数据标识为1,此时也会将数据A与数据标识1记录到变化表,在将源数据表中的数据A同步到目的数据表之后,源数据表中的数据A变化为数据AA,且数据AA对应的数据标识仍然为1,从而将数据AA与数据标识1记录到变化表,此时,变化表中有2条数据:数据A和数据AA,并且对应的数据标识均为1,因此,在将源数据表中的数据A同步到目的数据表之后,已同步数据为数据A,然后利用数据A对应的数据标识1查找变化表,会查找到两条数据:数据A和数据AA,需要进一步利用数据A与这两条数据分别进行匹配,并将匹配成功的那一条数据(数据A)确定为查找到的已同步数据。在另一实施例中,网络设备也可以直接将已同步数据与变化表中的每条数据进行匹配,并将匹配到的数据确定为查找到的已同步数据。步骤103:在变化表中,为查找到的已同步数据设置预设标记。在一实施例中,该预设标记可以是数字或者字符,或者也可以数字与字符的组合,本申请在此不进行限制,只要能够确定设置有预设标记的数据表示已同步数据即可。例如,在变化表中可以增加一列状态值,预设标记可以是1,即初始记录到变化表中的数据对应的状态值为0或者空,表示为未同步数据,在数据被查找到后,将查找到的数据对应的状态值由0或者空置为1,表示为已同步数据。在一示例性的场景中,表1为一种示例性的源数据表,表2为一种示例性的变化表,表2中将存储数据的地址作为数据标识,表1记录有两条数据(AAA,BBB,CCC)和(DDD,EEE,FFF),其中,(AAA,BBB,CCC)对应的地址是1,(DDD,EEE,FFF)对应的地址是2;表2记录有三条数据(DDD,EEE,FFF)、(WWW,UUU,III)、(VVV,NNN,MMM),其中,(WWW,UUU,III)对应的地址是3,(VVV,NNN,MMM)对应的地址是4。在将表1中的数据(AAA,BBB,CCC)和(DDD,EEE,FFF)同步到目的数据表之后,利用(AAA,BBB,CCC)对应的数据标识1,从表2中未查找到包括数据标识1的数据,再利用(DDD,EEE,FFF)对应的数据标识2,从表2中可以查找到包括数据标识2的一条数据(DDD,EEE,FFF),进而可以将(DDD,EEE,FFF)对应的状态值置为1,得到表3。列一列二列三AAABBBCCCDDDEEEFFF表1数据标识状态值列一列二列三20DDDEEEFFF30WWWUUUIII40VVVNNNMMM表2数据标识状态值列一列二列三21DDDEEEFFF30WWWUUUIII40VVVNNNMMM表3需要说明的是,网络设备可以在预设时间周期内,从变化表中删除设置有预设标记的数据,可以实现对变化表的维护,进而使变化表不会大幅度的扩大步骤104:将变化表中未设置该预设标记的数据确定为未同步数据。在一实施例中,网络设备在进行全量数据同步的过程中,由于业务仍然在运行,源数据表中的数据会发生变化,在变化表创建之后,这些变化数据在记录到源数据表的同时,也会记录到变化表中,并且这些变化数据在全量数据同步过程中,可能并未从源数据表全部同步到目的数据表,因此需要从变化表中确定出已同步数据(设置有预设标记的数据)之外的未同步数据(未设置有预设标记的数据),并将未同步数据再同步到目的数据表中,例如,在全量数据同步过程中,源数据表记录有数据A,变化表也记录有数据A,在全量数据同步后,在源数据表中的数据A后面新增了一条数据B,且变化表会记录数据B;由于数据A已同步过了,而数据B还未同步,因此只能在增量数据同步过程中,再从变化表中将未同步数据B同步到目的数据表。如上述步骤103中所示的示例性场景,如表3所示,预设标记为1,由于(DDD,EEE,FFF)对应的状态值为1,表示是已同步数据;(WWW,UUU,III)、(VVV,NNN,MMM)对应的状态值为0,表示是未同步数据,因此,可以将(WWW,UUU,III)、(VVV,NNN,MMM)确定为未同步数据。步骤105:将该未同步数据同步到目的数据表。在一实施例中,变化表中还可以记录操作标识,在源数据表中有数据发生变化时,网络设备可以确定变化数据对应的数据标识和操作标识,然后将数据标识、变化数据和操作标识对应记录到变化表,其中,操作标识可以包括更新标识、插入标识以及删除标识。在同步过程中,网络设备可以从变化表中,查找未同步数据对应的操作标识,并根据该操作标识将未同步数据同步到目的数据表。其中,网络设备查找未同步数据对应的操作标识的描述可以参见上述步骤102中的查找过程,在查找到未同步数据后,获取对应的操作标识。若操作标识为更新标识,则根据未同步数据的数据标识从目的数据表中查询对应的数据,并利用未同步数据更新查询到的数据;若操作标识为插入标识,则将未同步数据和未同步数据的数据标识插入到目的数据表中;若操作标识为删除标识,则根据未同步数据的数据标识从目的数据表中查询对应的数据,并将查询到的数据从目的数据表中删除。在一示例性的场景中,表4为另一种示例性的变化表,表5为一种目的数据表,表4中的三条数据的状态值均为0,即均为未同步数据,并且操作标识a为删除标识,操作标识b为更新标识,操作标识c为插入标识,在根据操作标识将表4中的每条未同步数据同步到表5的过程中,由于第一条数据对应的操作标识a为删除标识,因此根据第一条数据的数据标识1从表5中查询到对应的数据(AA,BB),并将(AA,BB)从表5中删除;由于第二条数据对应的操作标识b为更新标识,因此根据第二条数据的数据标识2从表5中查询到对应的数据(CC,FF),并将数据(CC,FF)更新为(CC,DD);由于第三条数据对应的操作标识c为插入标识,因此将数据标识3与数据(EE,EE)插入到表5中,最终得到目的数据表为表6。数据标识状态值操作标识列一列二10aAABB20bCCDD30cEEEE表4数据标识列一列二1AABB2CCFF表5数据标识列一列二1AABB2CCDD3EEEE表6需要说明的是,网络设备还可以在变化表中为每条数据记录操作时间,即将该条数据记录到变化表中的时间,在将变化表中的未同步数据同步到目的数据表的过程中,当该同步过程停止执行时,网络设备可以将正在同步的数据对应的操作时间记录下来,当该同步过程再次开始执行时,网络设备可以根据记录下来的操作时间查找到对应的数据,并在变化表中从该条数据开始继续同步数据到目的数据表中。从而,可以确保继续完成数据同步任务,而不会因中间的暂停,导致数据同步任务的重新执行。需要进一步说明的是,网络设备在将该未同步数据同步到目的数据表之后,可以在变化表中,为该未同步数据设置预设标记,以确保而以后再记录到变化表中的数据均是未设置有预设标记的数据,因此网络设备只要定时将变化表中未设置有预设标记的数据同步到目的数据表,即可确保目的数据表与源数据表中的数据一致,并且目的数据表不会出现重复数据。本实施例中,网络设备先将源数据表中的数据同步到目的数据表,并确定已同步数据,然后从变化表中查找该已同步数据,并在变化表中,为查找到的已同步数据设置预设标记,从而可以将变化表中未设置预设标记的数据确定为未同步数据,并将该未同步数据同步到目的数据表,从而实现在不停止业务的情况下,也可以完成数据同步的过程。基于上述实现方式,由于变化表是用于记录源数据表中变化的数据的,在业务运行过程中,如果源数据表中的数据发生变化,变化表也会记录变化的数据,因此,通过在变化表中为已同步数据设置预设标记,以确保同步过的数据不再同步,进而确保同步到目的数据表中的数据不会出现重复数据,并且在数据同步过程中,也不会造成业务中断的问题。与前述数据同步方法的实施例相对应,本申请还提供了数据同步装置的实施例。本申请数据同步装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请根据一示例性的实施例示出的一种网络设备的硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。图3为本申请根据一示例性实施例示出的一种数据同步装置的实施例结构图,该实施例可以应用于包括源数据表、与所述源数据表对应的变化表、目的数据表的系统上,所述变化表用于记录所述源数据表中变化的数据,该数据同步装置包括:第一同步模块310、查找模块320、设置模块330、确定模块340、第二同步模块350。其中,第一同步模块310,用于将所述源数据表中的数据同步到所述目的数据表,并确定已同步数据;查找模块320,用于从变化表中查找已同步数据;设置模块330,用于在变化表中,为查找到的已同步数据设置预设标记;确定模块340,用于将变化表中未设置预设标记的数据确定为未同步数据;第二同步模块350,用于将未同步数据同步到所述目的数据表。在一实施例中,所述装置还包括(图3中未示出):删除模块,用于在预设时间周期内,从变化表中删除设置有预设标记的数据。在一实施例中,查找模块320,具体用于确定已同步数据对应的数据标识;从变化表中,查找数据标识对应的数据;若查找到的数据的数量超过预设数值,则将已同步数据与查找到的每条数据进行匹配,并将匹配成功的数据确定为已同步数据;否则,将查找到的数据确定为已同步数据。在一实施例中,所述装置还可包括(图3中未示出):第一维护变化表模块,用于当源数据表中有数据发生变化时,确定变化数据对应的数据标识和操作标识;将数据标识、变化数据和操作标识对应记录到变化表中;第二同步模块350,具体用于从变化表中,查找未同步数据对应的操作标识;根据操作标识将未同步数据同步到目的数据表,操作标识包括更新标识、插入标识以及删除标识。在一实施例中,设置模块330,还用于在第二同步模块350将变化表中的未同步数据同步到目的数据表之后,在变化表中,为未同步数据设置预设标记。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例所述,网络设备先将源数据表中的数据同步到目的数据表,并确定已同步数据,然后从变化表中查找该已同步数据,并在变化表中,为查找到的已同步数据设置预设标记,从而可以将变化表中未设置预设标记的数据确定为未同步数据,并将该未同步数据同步到目的数据表,从而实现在不停止业务的情况下,也可以完成数据同步的过程。基于上述实现方式,由于变化表是用于记录源数据表中变化的数据的,在业务运行过程中,如果源数据表中的数据发生变化,变化表也会记录变化的数据,因此,通过在变化表中为已同步数据设置预设标记,以确保同步过的数据不再同步,进而确保同步到目的数据表中的数据不会出现重复数据,并且在数据同步过程中,也不会造成业务中断的问题。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1