同步数据的方法及装置制造方法及图纸

技术编号:14652566 阅读:108 留言:0更新日期:2017-02-16 15:03
本公开提供了一种同步数据的方法及装置。该方法包括:获取源数据;将所述源数据与缓存中的目标数据进行匹配,得到所述源数据的匹配结果,其中,所述缓存中的目标数据为从目标数据库预先加载到所述缓存;根据所述匹配结果,确定需要对所述源数据进行的数据库操作;根据预设条件,将需要对所述源数据进行的数据库操作提交给所述目标数据库执行,从而实现了数据同步性能大幅提升的目的。

【技术实现步骤摘要】

本公开涉及数据处理领域,具体地,涉及一种同步数据的方法及装置
技术介绍
在数据处理领域,源数据库的源数据经过抽取、转换之后,需要同步到目标数据库中。在源数据同步到目标数据库之前,需要先逐条在目标数据库中进行查询,在该源数据与目标数据已有记录匹配的情况下,将该源数据更新到目标数据库中,在不匹配的情况下,将该源数据插入到目标数据库中。然而,由于数据库的匹配性能不高,导致数据同步效率过低,不能满足海量数据处理的需要。
技术实现思路
有鉴于此,本公开提供了一种同步数据的方法及装置,以实现提高数据同步效率的目的。在本公开实施例的一个方面中,提供了一种同步数据的方法。该方法包括:获取源数据;将所述源数据与缓存中的目标数据进行匹配,得到所述源数据的匹配结果,其中,所述缓存中的目标数据为从目标数据库预先加载到所述缓存;根据所述匹配结果,确定需要对所述源数据进行的数据库操作;根据预设条件,将需要对所述源数据进行的数据库操作提交给所述目标数据库执行。可选地,所述获取源数据包括:数据读线程读取源数据库中的源数据;发送所述源数据至数据缓存;对应地,所述将所述源数据与缓存中的目标数据进行匹配包括:获取所述数据缓存中的所述源数据,将所述源数据与哈希缓存中的目标数据进行匹配,得到所述匹配结果。可选地,所述哈希缓存中的数据是从目标数据库的无主键表的部分关键字段预先加载到所述哈希缓存的。可选地,所述根据所述匹配结果,确定需要对所述源数据进行的数据库操作,包括:在所述源数据与缓存中的目标数据匹配时,确定对所述源数据进行的数据库操作为数据库更新操作,或者;在所述源数据与缓存中的目标数据不匹配时,确定对所述源数据进行的数据库操作为数据库插入操作。可选地,所述根据预设条件,将需要对所述源数据进行的数据库操作提交给所述目标数据库执行,包括:当匹配成功的所述源数据的数据量达到批量更新阈值时,使用所述匹配成功的源数据,批量更新所述目标数据库中匹配成功的目标数据对应的数据记录,或者;当匹配不成功的所述源数据的数据量达到批量插入阈值时,将所有匹配不成功的源数据插入到所述目标数据库。在本公开实施例的另一个方面中,提供了一种同步数据的装置。该装置包括:获取模块,被配置为获取源数据。匹配模块,被配置为将所述源数据与缓存中的目标数据进行匹配,得到所述源数据的匹配结果,其中,所述缓存中的目标数据为从目标数据库预先加载到所述缓存。操作确定模块,被配置为根据所述匹配结果,确定需要对所述源数据进行的数据库操作。操作提交模块,被配置为根据预设条件,将需要对所述源数据进行的数据库操作提交给所述目标数据库执行。可选地,所述获取模块被配置为触发数据读线程读取源数据库中的源数据;发送所述源数据至数据缓存。所述匹配模块被配置为获取所述数据缓存中的所述源数据,将所述源数据与哈希缓存中的目标数据进行匹配,得到所述匹配结果。可选地,所述哈希缓存中的数据是从目标数据库的无主键表的部分关键字段预先加载到所述哈希缓存的。可选地,所述操作确定模块被配置为在所述源数据与缓存中的目标数据匹配时,确定对所述源数据进行的数据库操作为数据库更新操作,或者;在所述源数据与缓存中的目标数据不匹配时,确定对所述源数据进行的数据库操作为数据库插入操作。可选地,所述操作提交模块被配置为当匹配成功的所述源数据的数据量达到批量更新阈值时,使用所述匹配成功的源数据,批量更新所述目标数据库中匹配成功的目标数据对应的数据记录,或者;当匹配不成功的所述源数据的数据量达到批量插入阈值时,将所有匹配不成功的源数据插入到所述目标数据库。通过本公开上述技术方案,先将目标数据库的目标数据进行缓存,然后借助缓存的高性能来进行源数据与目标数据的匹配,从而提高了匹配效率,根据匹配结果确定需要对源数据进行的数据库操作之后,再根据预设条件,将需要对源数据进行的数据库操作提交给所述目标数据库执行,从而实现了数据同步性能大幅提升的目的。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是根据一示例性实施例示出的实施环境示意图。图2是根据本专利技术的一示例性实施例示出的一种同步数据的方法的流程图。图3是根据本专利技术的另一示例性实施例示出的一种同步数据的方法的流程图。图4是根据本专利技术的一示例性实施例示出的一种同步数据的装置的框图。图5是根据本专利技术的另一示例性实施例示出的一种同步数据的装置的框图。具体实施方式以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。图1是根据一示例性实施例示出的实施环境示意图。该实施环境包括:应用了本公开实施例提供的同步数据的方法的数据采集器101、目标数据库102、源数据库103。其中,数据采集器101、目标数据库102可以布置在服务器侧。例如,数据采集器101,可以从源数据库103抓取源数据,将源数据同步到目标数据库102。其中,该源数据可以经过需要的转换之后,再同步到目标数据库102。可以理解的是,图1所示实施环境仅用于示意本专利技术实施例提供的方法,并不构成对本专利技术实施例的限制。图2是根据本专利技术的一示例性实施例示出的一种同步数据的方法的流程图。该方法可以包括:在步骤210中,获取源数据。在步骤220中,将所述源数据与缓存中的目标数据进行匹配,得到所述源数据的匹配结果。需要说明的是,本实施例所述步骤210中,所述源数据可以一次获取多条,也可以一次获取一条。所述步骤220中,可以是在步骤210获取一条源数据后即与缓存中的目标数据进行匹配,也可以是在步骤210获取多条源数据后再与缓存中的目标数据进行匹配。本实施例对此并不进行限制。其中,所述缓存中的目标数据为从目标数据库预先加载到所述缓存的。例如,一种可能的实施方式中,可以由数据读线程读取源数据库中的源数据,发送所述源数据至数据缓存。由数据写线程获取所述数据缓存中的所述源数据,将所述源数据与哈希缓存中的目标数据进行匹配,得到所述匹配结果。所述哈希缓存中的目标数据是预先从目标数据库加载到所述哈希缓存的。由于哈希缓存主要采用哈希算法来构建缓存索引,具有很高的数据查询效率,因此,通过借助哈希缓存的高性能可进一步提高查询效率,从而可以更进一步提高数据同步性能。可以理解的是,本公开实施例获取源数据的操作以及匹配数据、提交源数据给目标数据库的操作可以由同一线程执行,也可以如上面实施方式中分别由不同的线程执行,本公开对此并不进行限制。可以理解的是,在分别由不同线程执行的情况下,可以更一进步提高数据同步的效率。在一些应用场景中,例如,数据采集场景中,所要存储的数据通常为无主键表的数据。对于无主键表的数据来说,无法通过主键来查询数据,只能通过匹配关键字段的数据来确定数据库中是否已存在相应的记录。为了减少存储空间的浪费,本公开所述哈希缓存中的目标数据是从目标数据库的无主键表的部分关键字段预先加载到所述哈希缓存的。其中,目标数据可以经过压缩再放入缓存。例如,对于用于存储人口信息的目标数据库来说,关键字段中的数据可以为人名及身份证号。结合放入哈希缓存的实施方式,本文档来自技高网...
同步数据的方法及装置

【技术保护点】
一种同步数据的方法,其特征在于,包括:获取源数据;将所述源数据与缓存中的目标数据进行匹配,得到所述源数据的匹配结果,其中,所述缓存中的目标数据为从目标数据库预先加载到所述缓存;根据所述匹配结果,确定需要对所述源数据进行的数据库操作;根据预设条件,将需要对所述源数据进行的数据库操作提交给所述目标数据库执行。

【技术特征摘要】
1.一种同步数据的方法,其特征在于,包括:获取源数据;将所述源数据与缓存中的目标数据进行匹配,得到所述源数据的匹配结果,其中,所述缓存中的目标数据为从目标数据库预先加载到所述缓存;根据所述匹配结果,确定需要对所述源数据进行的数据库操作;根据预设条件,将需要对所述源数据进行的数据库操作提交给所述目标数据库执行。2.根据权利要求1所述的方法,其特征在于,所述获取源数据包括:数据读线程读取源数据库中的源数据;发送所述源数据至数据缓存;对应地,所述将所述源数据与缓存中的目标数据进行匹配包括:获取所述数据缓存中的所述源数据,将所述源数据与哈希缓存中的目标数据进行匹配,得到所述匹配结果。3.根据权利要求2所述的方法,其特征在于,所述哈希缓存中的目标数据是从目标数据库的无主键表的部分关键字段预先加载到所述哈希缓存的。4.根据权利要求1所述的方法,其特征在于,所述根据所述匹配结果,确定需要对所述源数据进行的数据库操作,包括:在所述源数据与缓存中的目标数据匹配时,确定对所述源数据进行的数据库操作为数据库更新操作,或者;在所述源数据与缓存中的目标数据不匹配时,确定对所述源数据进行的数据库操作为数据库插入操作。5.根据权利要求4所述的方法,其特征在于,所述根据预设条件,将需要对所述源数据进行的数据库操作提交给所述目标数据库执行,包括:当匹配成功的所述源数据的数据量达到批量更新阈值时,使用所述匹配成功的源数据,批量更新所述目标数据库中匹配成功的目标数据对应的数据记录,或者;当匹配不成功的所述源数据的数据量达到批量插入阈值时,将所有匹配不成功的...

【专利技术属性】
技术研发人员:李东鸽牟晓光张霞
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1