【技术实现步骤摘要】
无主键数据表的同步方法、装置、存储介质和电子设备
本公开涉及数据库
,具体地,涉及一种无主键数据表的同步方法、装置、存储介质和电子设备。
技术介绍
在数据采集(集成)业务中,无主键数据表的同步过程一直是一个难题。其中,主键是指能够在数据表中唯一标识一条记录(可以理解为数据表中的一条数据,包含若干字段的信息)的信息,因为无主键数据表中的每条记录没有主键,即没有唯一标识,因此无法通过单个字段唯一定位一条记录。在进行数据库的数据同步时,需要将源数据库中的数据表的内容同步到目标数据库中。在现有技术中,针对这种无主键数据表的增量同步,当前通常采用的方式是在目标数据库一侧先清空目标数据表,再进行全量写入的方式(即在目标数据库中将目标数据表清空,再将源数据库中该目标数据表当前的数据全部写入目标数据库中的目标数据表)。但是这种方式很消耗资源,效率也很低。另外,有一些增量数据同步工具,内置了一种无主键记录的增量同步机制,采用的是ROWID(即行ID)映射方式,即在Oracle数据库中为数据表中的各条记录生成唯一标识,并且在源数据库和目标数据库之间利用该唯一标识建立映射关系,但 ...
【技术保护点】
1.一种无主键数据表的同步方法,其特征在于,所述方法包括:获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,所述第一内容为上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时的表格内容;根据所述数据变更轨迹信息生成结构化查询语言SQL形式的同步语句;根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作,以便将所述目标数据库中的所述目标数据表从所述第一内容变更为所述第二内容。
【技术特征摘要】
1.一种无主键数据表的同步方法,其特征在于,所述方法包括:获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,所述第一内容为上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时的表格内容;根据所述数据变更轨迹信息生成结构化查询语言SQL形式的同步语句;根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作,以便将所述目标数据库中的所述目标数据表从所述第一内容变更为所述第二内容。2.根据权利要求1所述的方法,其特征在于,所述数据变更轨迹信息包括:一条或多条数据变更记录,每条所述数据变更记录中包含:变更类型、数据信息以及变更次数。3.根据权利要求2所述的方法,其特征在于,在上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时,在所述源数据库和所述目标数据库中记录有基于所述第一内容的数据标识信息,所述数据标识信息包括:所述目标数据表为所述第一内容时,所述目标数据表中每条数据记录的标识,以及相同标识的数据记录在所述目标数据表中的重复出现次数。4.根据权利要求3所述的方法,其特征在于,所述根据所述数据变更轨迹信息生成SQL形式的同步语句,包括:获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、数据信息以及变更次数,i为正整数,i的起始值为1;根据所述变更类型、所述数据信息、所述变更次数,以及被变更的目标数据记录的所述重复出现次数,确定所述第i条数据变更记录对应的同步语句;令i=i+1,并重复执行所述获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、变更的数据以及变更次数至确定所述第i条数据变更记录对应的同步语句的步骤,直至获取所述数据变更轨迹信息中的所有数据变更记录对应的同步语句。5.根据权利要求4所述的方法,其特征在于,所述根据所述变更类型、所述数据信息、所述变更次数,以及被变更的目标数据的所述重复出现次数,确定所述第i条数据变更记录对应的同步语句,包括:当所述变更类型为删除时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录;根据所述变更次数,以及所述目标数据记录的所述重复出现次数生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:删除所述目标数据记录的语句和将所述目标数据记录补偿n次的语句,其中n为所述重复出现次数减去所述变更次数得到的差值;或者,当所述变更类型为变更时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录,以及所述目标数据记录变更后的数据记录;根据所述目标数据记录以及所述变更后的数据记录确定所述目标数据记录中被变更的目标字段,以及所述目标字段的变更后的目标值;根据所述变更次数,所述目标数据记录的所述重复出现次数,所述目标字段...
【专利技术属性】
技术研发人员:井玉成,牟晓光,
申请(专利权)人:东软集团股份有限公司,
类型:发明
国别省市:辽宁,21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。