CN108897794B - 无主键数据表的同步方法、装置、存储介质和电子设备 - Google Patents
无主键数据表的同步方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN108897794B CN108897794B CN201810601911.8A CN201810601911A CN108897794B CN 108897794 B CN108897794 B CN 108897794B CN 201810601911 A CN201810601911 A CN 201810601911A CN 108897794 B CN108897794 B CN 108897794B
- Authority
- CN
- China
- Prior art keywords
- data
- change
- target
- record
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种无主键数据表的同步方法、装置、存储介质和电子设备,涉及数据库技术领域,该方法包括:通过获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,该第一内容为上一次在源数据库中与目标数据库之间进行该目标数据表的同步时的表格内容;再根据该数据变更轨迹信息生成SQL形式的同步语句;然后根据该同步语句对该目标数据库中的该目标数据表进行数据变更操作,以便将该目标数据库中的该目标数据表从所述第一内容变更为所述第二内容。能够提供一种针对无主键数据表的同步方法,因此既能够降低数据表同步的资源消耗,提高同步效率,也提高了适用范围。
Description
技术领域
本公开涉及数据库技术领域,具体地,涉及一种无主键数据表的同步方法、装置、存储介质和电子设备。
背景技术
在数据采集(集成)业务中,无主键数据表的同步过程一直是一个难题。其中,主键是指能够在数据表中唯一标识一条记录(可以理解为数据表中的一条数据,包含若干字段的信息)的信息,因为无主键数据表中的每条记录没有主键,即没有唯一标识,因此无法通过单个字段唯一定位一条记录。
在进行数据库的数据同步时,需要将源数据库中的数据表的内容同步到目标数据库中。在现有技术中,针对这种无主键数据表的增量同步,当前通常采用的方式是在目标数据库一侧先清空目标数据表,再进行全量写入的方式(即在目标数据库中将目标数据表清空,再将源数据库中该目标数据表当前的数据全部写入目标数据库中的目标数据表)。但是这种方式很消耗资源,效率也很低。
另外,有一些增量数据同步工具,内置了一种无主键记录的增量同步机制,采用的是ROWID(即行ID)映射方式,即在Oracle数据库中为数据表中的各条记录生成唯一标识,并且在源数据库和目标数据库之间利用该唯一标识建立映射关系,但是这种方式由于只能适用于Oracle数据库,且实际上ROWID会发生变更,这样可能会导致后续同步时发生混乱,导致两端数据的不一致。
发明内容
本公开的目的是提供一种无主键数据表的同步方法、装置、存储介质和电子设备,用于提供一种针对无主键数据表的同步方法,用于解决目前同步需要全部清空数据表重新写入导致消耗资源高,效率低的问题,以及采用行ID适用范围小的问题。
为了实现上述目的,第一方面,本公开提供一种无主键数据表的同步方法,所述方法包括:
获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,所述第一内容为上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时的表格内容;
根据所述数据变更轨迹信息生成结构化查询语言SQL形式的同步语句;
根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作,以便将所述目标数据库中的所述目标数据表从所述第一内容变更为所述第二内容。
可选地,所述数据变更轨迹信息包括:一条或多条数据变更记录,每条所述数据变更记录中包含:变更类型、数据信息以及变更次数。
可选地,在上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时,在所述源数据库和所述目标数据库中记录有基于所述第一内容的数据标识信息,所述数据标识信息包括:所述目标数据表为所述第一内容时,所述目标数据表中每条数据记录的标识,以及相同标识的数据记录在所述目标数据表中的重复出现次数。
可选地,所述根据所述数据变更轨迹信息生成SQL形式的同步语句,包括:
获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、数据信息以及变更次数,i为正整数,i的起始值为1;
根据所述变更类型、所述数据信息、所述变更次数,以及被变更的目标数据记录的所述重复出现次数,确定所述第i条数据变更记录对应的同步语句;
令i=i+1,并重复执行所述获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、变更的数据以及变更次数至确定所述第i条数据变更记录对应的同步语句的步骤,直至获取所述数据变更轨迹信息中的所有数据变更记录对应的同步语句。
可选地,所述根据所述变更类型、所述数据信息、所述变更次数,以及被变更的目标数据的所述重复出现次数,确定所述第i条数据变更记录对应的同步语句,包括:
当所述变更类型为删除时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录;
根据所述变更次数,以及所述目标数据记录的所述重复出现次数生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:删除所述目标数据记录的语句和将所述目标数据记录补偿n次的语句,其中n为所述重复出现次数减去所述变更次数得到的差值;
或者,
当所述变更类型为变更时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录,以及所述目标数据记录变更后的数据记录;
根据所述目标数据记录以及所述变更后的数据记录确定所述目标数据记录中被变更的目标字段,以及所述目标字段的变更后的目标值;
根据所述变更次数,所述目标数据记录的所述重复出现次数,所述目标字段以及所述目标字段的变更后的目标值生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:将所述目标数据记录的所述目标字段设置为所述目标值的语句、将所述目标数据记录的所述目标字段设置为所述目标值所得到的数据记录删除的语句,以及将所述目标数据记录补偿q次的语句,和/或将所述目标数据记录的所述目标字段设置为所述目标值所得到的数据记录补偿p次的语句,其中p等于所述变更次数,q为所述重复出现次数减去所述变更次数得到的差值;或者,
当所述变更类型为插入时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录;
根据所述变更次数生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:将所述目标数据记录补偿j次的语句,其中j为所述变更次数。
可选地,所述方法还包括:
当所述变更类型为删除时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数减去所述变更次数;或者,
当所述变更类型为变更时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数减去所述变更次数,并将所述更后的数据记录的所述重复出现次数增加所述变更次数;或者,
当所述变更类型为插入时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数增加j。
可选地,所述根据所述数据变更轨迹信息生成SQL形式的同步语句,还包括:
在获取所述数据变更轨迹信息中的所有数据变更记录对应的同步语句后,将所有数据变更记录对应的同步语句进行合并处理。
可选地,所述每条数据记录的标识是根据所述每条数据记录中的数据内容,利用消息摘要算法第五版算法计算获取的。
第二方面,本公开提供一种无主键数据表的同步装置,所述装置包括:
获取模块,用于获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,所述第一内容为上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时的表格内容;
生成模块,用于根据所述数据变更轨迹信息生成结构化查询语言SQL形式的同步语句;
同步模块,用于根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作,以便将所述目标数据库中的所述目标数据表从所述第一内容变更为所述第二内容。
可选地,所述数据变更轨迹信息包括:一条或多条数据变更记录,每条所述数据变更记录中包含:变更类型、数据信息以及变更次数。
可选地,在上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时,在所述源数据库和所述目标数据库中记录有基于所述第一内容的数据标识信息,所述数据标识信息包括:所述目标数据表为所述第一内容时,所述目标数据表中每条数据记录的标识,以及相同标识的数据记录在所述目标数据表中的重复出现次数。
可选地,所述生成模块,包括:
数据获取子模块,用于获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、数据信息以及变更次数,i为正整数,i的起始值为1;
语句生成子模块,用于根据所述变更类型、所述数据信息、所述变更次数,以及被变更的目标数据记录的所述重复出现次数,确定所述第i条数据变更记录对应的同步语句;
令i=i+1,并重复执行所述获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、变更的数据以及变更次数至确定所述第i条数据变更记录对应的同步语句的步骤,直至获取所述数据变更轨迹信息中的所有数据变更记录对应的同步语句。
可选地,所述语句生成子模块,用于:
当所述变更类型为删除时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录;
根据所述变更次数,以及所述目标数据记录的所述重复出现次数生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:删除所述目标数据记录的语句和将所述目标数据记录补偿n次的语句,其中n为所述重复出现次数减去所述变更次数得到的差值;
或者,
当所述变更类型为变更时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录,以及所述目标数据记录变更后的数据记录;
根据所述目标数据记录以及所述变更后的数据记录确定所述目标数据记录中被变更的目标字段,以及所述目标字段的变更后的目标值;
根据所述变更次数,所述目标数据记录的所述重复出现次数,所述目标字段以及所述目标字段的变更后的目标值生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:将所述目标数据记录的所述目标字段设置为所述目标值的语句、将所述目标数据记录的所述目标字段设置为所述目标值所得到的数据记录删除的语句,以及将所述目标数据记录补偿q次的语句,和/或将所述目标数据记录的所述目标字段设置为所述目标值所得到的数据记录补偿p次的语句,其中p等于所述变更次数,q为所述重复出现次数减去所述变更次数得到的差值;或者,
当所述变更类型为插入时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录;
根据所述变更次数生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:将所述目标数据记录补偿j次的语句,其中j为所述变更次数。
可选地,所述装置还包括:计次模块,用于:
当所述变更类型为删除时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数减去所述变更次数;或者,
当所述变更类型为变更时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数减去所述变更次数,并将所述更后的数据记录的所述重复出现次数增加所述变更次数;或者,
当所述变更类型为插入时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数增加j。
可选地,所述生成模块,还包括:
合并子模块,用于在获取所述数据变更轨迹信息中的所有数据变更记录对应的同步语句后,将所有数据变更记录对应的同步语句进行合并处理。
可选地,所述每条数据记录的标识是根据所述每条数据记录中的数据内容,利用消息摘要算法第五版算法计算获取的。
第三方面,本公开还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时上述第一方面所述方法的步骤。
第四方面,本公开还提供一种电子设备,包括:上述第三方面所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
本公开提供的技术方案中,通过获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,该第一内容为上一次在源数据库中与目标数据库之间进行该目标数据表的同步时的表格内容;再根据该数据变更轨迹信息生成结构化查询语言SQL形式的同步语句;然后根据该同步语句对该目标数据库中的该目标数据表进行数据变更操作,以便将该目标数据库中的该目标数据表从所述第一内容变更为所述第二内容。能够提供一种针对无主键数据表的同步方法,该方法能够在无需全部清空数据表重新写入的情况下实现无主键数据表从源数据库到目标数据库的同步,并且避免了现有技术仅限于Oracle数据库的限制,因此既能够降低数据表同步的资源消耗,提高同步效率,也提高了适用范围。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开一示例性示出的一种无主键数据表的同步方法的流程示意图;
图2是根据图1所示实施例示出的一种同步语句的生成方法的流程示意图;
图3是根据图2所示的实施例示出的另一种同步语句的生成方法的流程示意图;
图4是根据本公开一示例性实施例示出的一种无主键数据表的同步装置的框图;
图5是根据图4所示实施例示出的一种生成模块的框图;
图6是根据本公开一示例性实施例示出的另一种无主键数据表的同步装置的框图;
图7是根据图4所示实施例示出的另一种生成模块的框图;
图8根据本公开一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据本公开一示例性示出的一种无主键数据表的同步方法的流程示意图,如图1所示,该方法可以包括:
步骤101,获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,该第一内容为上一次在该源数据库中与目标数据库之间进行该目标数据表的同步时的表格内容。
示例的,该目标数据表为无主键信息的数据表,可以是源数据库和目标数据库中的任一个数据表,该目标数据表中可以包含一条或多条数据记录,每条数据记录中可以包含一个或多个字段。通常,根据一定的同步周期,将源数据库中的该目标数据表同步到该标数据库,以便将一个同步周期内该目标数据表在源数据库侧变化的增量同步到目标数据库中,从而使得在完成同步后目标数据库中的该目标数据表中的表格内容与在源数据库中的该目标数据表中的表格内容保持一致。其中,该数据变更轨迹信息就是用于描述该一个同步周期内该目标数据表在源数据库侧变化的增量的信息。例如,可以包含:删除了某个数据记录,或对某个数据记录中的字段值进行了变更等等。
步骤102,根据该数据变更轨迹信息生成SQL(Structured Query Language,结构化查询语言)形式的同步语句。
示例的,将该目标数据表从源数据库同步到目标数据库的过程中可以采用JDBC(Java DataBase Connectivity,Java数据库连接)的方式来进行同步,JDBC是一种用于执行SQL语句的Java API(Application Programming Interface,应用程序编程接口),可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。因此这里生成的同步语句为SQL形式的语句。基于该数据变更轨迹信息生成的SQL形式的语句可以包含对该第一内容中的某一个或多个数据记录进行删除、变更或补偿操作的SQL语句。其中,删除操作例如可以为将目标数据库中的该目标数据表中的某一数据记录删除,变更操作例如可以为将目标数据库中的该目标数据表中的某一数据记录中的某一字段的值进行变更,补偿操作也可以称为插入操作,用于在目标数据库中的该目标数据表中写入的某一数据记录。
步骤103,根据该同步语句对该目标数据库中的该目标数据表进行数据变更操作,以便将该目标数据库中的该目标数据表从该第一内容变更为该第二内容。
其中,该数据变更操作包括上述的删除、变更或补偿操作中的至少一种,当获取该同步语句后,执行该同步语句所指示的删除、变更或补偿操作即可实现将该目标数据表从该第一内容变更为该第二内容,从而使目标数据库中的该目标数据表的内容与源数据库中保持一致。
由此可见,上述技术方案中,通过获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,该第一内容为上一次在源数据库中与目标数据库之间进行该目标数据表的同步时的表格内容;再根据该数据变更轨迹信息生成SQL形式的同步语句;然后根据该同步语句对该目标数据库中的该目标数据表进行数据变更操作,以便将该目标数据库中的该目标数据表从所述第一内容变更为所述第二内容。能够提供一种针对无主键数据表的同步方法,该方法能够在无需全部清空数据表重新写入的情况下实现无主键数据表从源数据库到目标数据库的同步,并且避免了现有技术仅限于Oracle数据库的限制,因此既能够降低数据表同步的资源消耗,提高同步效率,也提高了适用范围。
进一步的,上述图1所示实施例中所述的数据变更轨迹信息可以包括:一条或多条数据变更记录,每条所述数据变更记录中包含:变更类型、数据信息以及变更次数。其中,对于不同的变更类型,数据信息中的内容也不尽相同,例如当变更类型为删除时,数据信息中包含被删除的目标数据记录的数据内容,用于指示删除的是哪一条数据记录,而变更次数则用于说明该目标数据记录被删除了几次。当变更类型为变更时,该数据信息中可以包含被变更的目标数据,以及该目标数据变更后的数据,而变更次数用于表示该目标数据记录按照上述变更被变更的次数。
另外,需要说明的是,在上一次在该源数据库中与目标数据库之间进行该目标数据表的同步时,在该源数据库和该目标数据库中记录有基于该第一内容的数据标识信息,该数据标识信息包括:该目标数据表为该第一内容时,该目标数据表中每条数据记录的标识,以及相同标识的数据记录在该目标数据表中的重复出现次数。其中,每条数据记录的标识是根据该每条数据记录中的数据内容,利用MD5(Message Digest Algorithm 5,消息摘要算法第五版)算法计算获取的,在获取每条数据记录的标识后进行缓存,以便在下次同步使用,其使用方法如下文方法所示。另外,对于每条数据记录而言,其标识是唯一的,但是由于数据表中可能存在数据内容完全相同的多条数据记录,从而通过MD5计算出来的标识也是相同的,因此根据每条数据记录的标识,即可得知在目标数据表中相同标识的数据记录在该目标数据表中的重复出现次数,也即数据内容相同的数据记录在该目标数据表中的重复出现次数。
图2是根据图1所示实施例示出的一种同步语句的生成方法的流程示意图,如图2所示,步骤102中所述的根据该数据变更轨迹信息生成SQL形式的同步语句的步骤,可以包括以下步骤:
步骤1021,获取该数据变更轨迹信息中的第i条数据变更记录中的变更类型、数据信息以及变更次数,i为正整数,i的起始值为1。
步骤1022,根据该变更类型、该数据信息、该变更次数,以及被变更的目标数据记录的该重复出现次数,确定该第i条数据变更记录对应的同步语句。
在获取第i条数据变更记录对应的同步语句之后,令i=i+1,并重复执行步骤1021至1022,以便获取该数据变更轨迹信息中的下一条数据变更记录所对应的同步语句,并以此类推,直至获取该数据变更轨迹信息中的所有数据变更记录对应的同步语句。
其中,针对该数据变更轨迹信息中具有不同的变更类型的数据变更记录,该步骤1022所述的根据该变更类型、该述数据信息、该变更次数,以及被变更的目标数据的该重复出现次数,确定该第i条数据变更记录对应的同步语句,可以包括以下步骤:
当该变更类型为删除时,根据该数据信息确定该第i条数据变更记录对应的目标数据记录;
根据该变更次数,以及该目标数据记录的该重复出现次数生成该第i条数据变更记录对应的同步语句,该同步语句可以包含:删除该目标数据记录的语句和将该目标数据记录补偿n次的语句,其中n为该重复出现次数减去该变更次数得到的差值。
可以理解的是,由于同步语句采用的是SQL语句,因此当变更类型为删除时,生成的删除该目标数据记录的语句会将目标数据库中的该目标数据表中的所有该目标数据记录都删掉,因此需要对多删的目标数据记录进行补偿,补偿次数可以由该重复出现次数减去该变更次数得到的差值来确定。
或者,
当该变更类型为变更时,首先,根据该数据信息确定该第i条数据变更记录对应的目标数据记录,以及该目标数据记录变更后的数据记录;
其次,根据该目标数据记录以及该变更后的数据记录确定该目标数据记录中被变更的目标字段,以及该目标字段的变更后的目标值;
再次,根据该变更次数,该目标数据记录的该重复出现次数,该目标字段以及该目标字段的变更后的目标值生成所述第i条数据变更记录对应的同步语句,该同步语句包含:将该目标数据记录的该目标字段设置为该目标值的语句、将该目标数据记录的该目标字段设置为该目标值所得到的数据记录删除的语句,以及将该目标数据记录补偿q次的语句,和/或将该目标数据记录的该目标字段设置为该目标值所得到的数据记录补偿p次的语句,其中p等于该变更次数,q为该重复出现次数减去该变更次数得到的差值。
或者,
当该变更类型为插入时,根据该数据信息确定该第i条数据变更记录对应的目标数据记录;
根据该变更次数生成该第i条数据变更记录对应的同步语句,该同步语句包含:将该目标数据记录补偿j次的语句,其中j为该变更次数。
下面通过一个示例对上述方法进行说明。
例如,表1所示为源数据库中的目标数据表在时间点T1时的数据内容,其中该时间点T1为在上一次在该源数据库中与目标数据库之间进行该目标数据表的同步时的时间点,从而该目标数据表在时间点T1时的数据内容即上述第一内容,如表1所示,该目标数据表中包括3条数据记录,每条数据记录包括3个字段,字段值均为1:
表1
表2
A | B | C |
1 | 2 | 1 |
1 | 1 | 1 |
表2是该源数据库中该目标数据表在当前的时间点T2时的数据内容,也即上述的第二内容。从表2中可知,从时间点T1到时间点T2,有一条1,1,1的数据记录被删除,以及还有一条1,1,1的数据记录被变更1,2,1。
从而根据上述变化可以确定该数据变更轨迹信息,如表3所示:
表3
变更类型 | 数据信息 | 变更次数 |
D(删除) | 1,1,1 | 1 |
U(变更) | 1,1,1变更为1,2,1 | 1 |
由此可见,根据表1和表2确定的数据变更轨迹信息包含两条数据变更记录。其中,根据第一条数据变更记录中的变更类型D可以确定此条数据条变更记录的变更类型为删除,删除的目标数据记录为1,1,1,共删除了1次。另外根据表1可知,1,1,1共出现了3次,因此其重复出现次数就为3。
因此,基于该第一条数据变更记录生成的SQL形式的同步语句可以包括以下三句:
Delete from table where A=1and B=1and C=1;
Insert into table value(1,1,1);
Insert into table value(1,1,1)。
其中,Delete from table where A=1and B=1and C=1为删除(1,1,1)的语句,后两句Insert into table value(1,1,1)是将该1,1,1补偿2次的语句。这是由于采用上述SQL方式的语句同步删除目标数据库中该目标数据表中的1,1,1时,该该目标数据表中的1,1,1都会被删除,由于第一条数据变更记录中变更次数为1,而1,1,1的重复出现次数为3,因此可以得出需要补偿写入1,1,1两次。
依照相同原理,基于该第二条数据变更记录生成的SQL形式的同步语句可以包括以下四句:
Update table set B=2where A=1and B=1and C=1;
Delete from table where A=1and B=2and C=1;
Insert into table value(1,1,1);
Insert into table value(1,2,1)。
其中,Update table set B=2where A=1and B=1and C=1是将目标数据记录(1,1,1)中的目标字段B设置为2的语句,与删除语句相似,由于采用上述SQL方式的语句将目标数据库中的目标数据表中的(1,1,1)中的目标字段B设置为2时,会将目标数据库中的目标数据表中所有(1,1,1)设置为2,因此需要通过Delete from table where A=1and B=2and C=1将目标数据表中所有(1,2,1)删除,然后再补偿(1,1,1)一次,补偿(1,2,1)一次,即可使目标数据库中的目标数据表同步为表2所示的内容。
又例如,假设在表2的基础上再次对该源数据库中该目标数据表进行变更,变更后的该目标数据表如表4所示,则此时表2的内容就变为了上述的第一内容,而变更后得到的表4的内容即为变更后的第二内容,从而相应的,需要在目标数据库中将该目标数据表由表2所示的内容变更为表4所示的内容。
表4
根据表2和表4可知确定表4中相比表2,插入了内容为1,1,1的数据记录共两次,从而可以确定本次变更的数据变更轨迹信息,如表5所示:
表5
变更类型 | 数据信息 | 变更次数 |
I(插入) | 1,1,1 | 2 |
由此可见,根据表2和表4确定的本次变更的数据变更轨迹信息包含一条数据变更记录。其中,如表5所示,变更类型I可以确定此条数据条变更记录的变更类型为插入(Insert),插入的目标数据记录为1,1,1,共插入了2次。另外,由于变更类型为插入,因此在生成同步语句时,无需考虑其上述的重复出现次数。
因此,基于该表5所示的数据变更记录生成的SQL形式的同步语句可以包括以下两句:
Insert into table value(1,1,1);
Insert into table value(1,1,1)。
即,在目标数据库中对该目标数据表直接补偿写入数据记录1,1,1两次即可。
进一步的,针对上述变更,需要在执行同步操作之后,在源数据库和目标数据库中将目标数据记录的重复出现次数进行相应地修改,针对不同的变更类型,可以包括以下方案:
当变更类型为删除时,在根据同步语句对目标数据库中的目标数据表进行数据变更操作之后,在源数据库和目标数据库中将目标数据记录的重复出现次数减去变更次数;或者,
当变更类型为变更时,在根据同步语句对目标数据库中的目标数据表进行数据变更操作之后,在源数据库和目标数据库中将目标数据记录的重复出现次数减去变更次数,并将更后的数据记录的重复出现次数增加变更次数;或者,
当变更类型为插入时,在根据所述同步语句对目标数据库中的目标数据表进行数据变更操作之后,在源数据库和目标数据库中将目标数据记录的重复出现次数增加j。
示例的,以上述目标数据表由表1的内容变为表2的内容为例,由于删除了数据记录(1,1,1)一次,因此需要将数据记录(1,1,1)的重复出现次数减1,并且由于还将数据记录(1,1,1)变更为(1,2,1)一次,因此需要将数据记录(1,1,1)的重复出现次数再减1,并将数据记录(1,2,1)的重复出现次数加1。故在目标数据库中将目标数据记录从表1的内容同步为表2的内容后,需要在源数据库和目标数据库中将数据记录(1,1,1)的重复出现次数再减2,并将数据记录(1,2,1)的重复出现次数加1。而对于目标数据表由表2的内容变为表4的内容,由于相比表2的内容,表4中插入数据记录(1,1,1),共2次,因此在目标数据库中将目标数据记录同步为表4的内容后,需要在源数据库和目标数据库中将数据记录(1,1,1)的重复出现次数加2。
进一步的,图3是根据图2所示的实施例示出的另一种同步语句的生成方法的流程示意图,为了将该数据变更轨迹信息中的所有数据变更记录对应的同步语句变得更为简化,如图3所示,该步骤102所述的根据该数据变更轨迹信息生成SQL形式的同步语句,还可以包括:
步骤1023,在获取该数据变更轨迹信息中的所有数据变更记录对应的同步语句后,将所有数据变更记录对应的同步语句进行合并处理。
该合并处理用于将上述所有数据变更记录对应的同步语句合并为更少、更为简单的语句,例如上文所示的例子中,根据表3确定的同步语句:
Delete from table where A=1and B=1and C=1;
Insert into table value(1,1,1);
Insert into table value(1,1,1);
Update table set B=2where A=1and B=1and C=1;
Delete from table where A=1and B=2and C=1;
Insert into table value(1,1,1);
Insert into table value(1,2,1)。
共有7句,需要操作7次,经过分析与合并,可以将上述同步语句简化为:
Delete from table where A=1and B=1and C=1;
Insert into table value(1,1,1);
Insert into table value(1,2,1)。
并且可以将合并后得到的同步语句作为最终的同步语句,并以此来执行步骤103。
由此可见,上述技术方案中,通过获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,该第一内容为上一次在源数据库中与目标数据库之间进行该目标数据表的同步时的表格内容;再根据该数据变更轨迹信息生成SQL形式的同步语句;然后根据该同步语句对该目标数据库中的该目标数据表进行数据变更操作,以便将该目标数据库中的该目标数据表从所述第一内容变更为所述第二内容。能够提供一种针对无主键数据表的同步方法,该方法能够在无需全部清空数据表重新写入的情况下实现无主键数据表从源数据库到目标数据库的同步,并且避免了现有技术仅限于Oracle数据库的限制,因此既能够降低数据表同步的资源消耗,提高同步效率,也提高了适用范围。
图4是根据本公开一示例性实施例示出的一种无主键数据表的同步装置的框图,如图4所示,该装置400可以包括:
获取模块401,用于获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,该第一内容为上一次在该源数据库中与目标数据库之间进行该目标数据表的同步时的表格内容;
生成模块402,用于根据该数据变更轨迹信息生成结构化查询语言SQL形式的同步语句;
同步模块403,用于根据该同步语句对该目标数据库中的该目标数据表进行数据变更操作,以便将该目标数据库中的该目标数据表从该第一内容变更为该第二内容。
可选的,该数据变更轨迹信息包括:一条或多条数据变更记录,每条数据变更记录中包含:变更类型、数据信息以及变更次数。
可选的,在上一次在该源数据库中与目标数据库之间进行该目标数据表的同步时,在该源数据库和该目标数据库中记录有基于该第一内容的数据标识信息,该数据标识信息包括:该目标数据表为该第一内容时,该目标数据表中每条数据记录的标识,以及相同标识的数据记录在该目标数据表中的重复出现次数。
可选的,图5是根据图4所示实施例示出的一种生成模块的框图,如图5所示,该生成模块402,可以包括:
数据获取子模块4021,用于获取该数据变更轨迹信息中的第i条数据变更记录中的变更类型、数据信息以及变更次数,i为正整数,i的起始值为1;
语句生成子模块4022,用于根据该变更类型、该数据信息、该变更次数,以及被变更的目标数据记录的该重复出现次数,确定该第i条数据变更记录对应的同步语句;
令i=i+1,并重复执行该获取该数据变更轨迹信息中的第i条数据变更记录中的变更类型、变更的数据以及变更次数至确定该第i条数据变更记录对应的同步语句的步骤,直至获取该数据变更轨迹信息中的所有数据变更记录对应的同步语句。
可选的,该语句生成子模块4022,可以具体用于:
当该变更类型为删除时,根据该数据信息确定该第i条数据变更记录对应的目标数据记录;
根据该变更次数,以及该目标数据记录的该重复出现次数生成该第i条数据变更记录对应的同步语句,该同步语句包含:删除该目标数据记录的语句和将该目标数据记录补偿n次的语句,其中n为该重复出现次数减去该变更次数得到的差值;
或者,
当该变更类型为变更时,根据该数据信息确定该第i条数据变更记录对应的目标数据记录,以及该目标数据记录变更后的数据记录;
根据该目标数据记录以及该变更后的数据记录确定该目标数据记录中被变更的目标字段,以及该目标字段的变更后的目标值;
根据该变更次数,该目标数据记录的该重复出现次数,该目标字段以及该目标字段的变更后的目标值生成该第i条数据变更记录对应的同步语句,该同步语句包含:将该目标数据记录的该目标字段设置为该目标值的语句、将该目标数据记录的该目标字段设置为该目标值所得到的数据记录删除的语句,以及将该目标数据记录补偿q次的语句,和/或将该目标数据记录的该目标字段设置为该目标值所得到的数据记录补偿p次的语句,其中p等于该变更次数,q为该重复出现次数减去该变更次数得到的差值;或者,
当该变更类型为插入时,根据该数据信息确定该第i条数据变更记录对应的目标数据记录;
根据该变更次数生成该第i条数据变更记录对应的同步语句,该同步语句包含:将该目标数据记录补偿j次的语句,其中j为该变更次数。
可选的,图6是根据本公开一示例性实施例示出的另一种无主键数据表的同步装置的框图,如图6所示,该装置还包括:计次模块404,用于:
当变更类型为删除时,在根据同步语句对目标数据库中的目标数据表进行数据变更操作之后,在源数据库和目标数据库中将目标数据记录的重复出现次数减去变更次数;或者,
当变更类型为变更时,在根据同步语句对目标数据库中的目标数据表进行数据变更操作之后,在源数据库和目标数据库中将目标数据记录的重复出现次数减去变更次数,并将更后的数据记录的重复出现次数增加变更次数;或者,
当变更类型为插入时,在根据同步语句对目标数据库中的目标数据表进行数据变更操作之后,在源数据库和目标数据库中将目标数据记录的重复出现次数增加j。
可选的,图7是根据图4所示实施例示出的另一种生成模块的框图,如图7所示,该生成模块402,还可以包括:
合并子模块4023,用于在获取该数据变更轨迹信息中的所有数据变更记录对应的同步语句后,将所有数据变更记录对应的同步语句进行合并处理。
可选的,每条数据记录的标识是根据每条数据记录中的数据内容,利用消息摘要算法第五版算法计算获取的。
由此可见,上述技术方案中,通过获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,该第一内容为上一次在源数据库中与目标数据库之间进行该目标数据表的同步时的表格内容;再根据该数据变更轨迹信息生成SQL形式的同步语句;然后根据该同步语句对该目标数据库中的该目标数据表进行数据变更操作,以便将该目标数据库中的该目标数据表从所述第一内容变更为所述第二内容。能够提供一种针对无主键数据表的同步方法,该方法能够在无需全部清空数据表重新写入的情况下实现无主键数据表从源数据库到目标数据库的同步,并且避免了现有技术仅限于Oracle数据库的限制,因此既能够降低数据表同步的资源消耗,提高同步效率,也提高了适用范围。
图8是根据一示例性实施例示出的一种电子设备800的框图。如图8所示,该电子设备800可以包括:处理器801,存储器802,多媒体组件803,输入/输出(I/O)接口804,以及通信组件805。
其中,处理器801用于控制该电子设备800的整体操作,以完成上述的无主键数据表的同步方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的无主键数据表的同步方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的无主键数据表的同步方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种无主键数据表的同步方法,其特征在于,所述方法包括:
获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,所述第一内容为上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时的表格内容,所述数据变更轨迹信息包括:一条或多条数据变更记录,每条所述数据变更记录中包含:变更类型、数据信息以及变更次数;
根据每一条所述数据变更记录中的变更类型、数据信息以及变更次数,以及所述目标数据表为所述第一内容时,被变更的目标数据记录的重复出现次数,生成结构化查询语言SQL形式的同步语句;
根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作,以便将所述目标数据库中的所述目标数据表从所述第一内容变更为所述第二内容。
2.根据权利要求1所述的方法,其特征在于,在上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时,在所述源数据库和所述目标数据库中记录有基于所述第一内容的数据标识信息,所述数据标识信息包括:所述目标数据表为所述第一内容时,所述目标数据表中每条数据记录的标识,以及相同标识的数据记录在所述目标数据表中的重复出现次数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述数据变更轨迹信息生成SQL形式的同步语句,包括:
获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、数据信息以及变更次数,i为正整数,i的起始值为1;
根据所述变更类型、所述数据信息、所述变更次数,以及被变更的目标数据记录的所述重复出现次数,确定所述第i条数据变更记录对应的同步语句;
令i=i+1,并重复执行所述获取所述数据变更轨迹信息中的第i条数据变更记录中的变更类型、变更的数据以及变更次数至确定所述第i条数据变更记录对应的同步语句的步骤,直至获取所述数据变更轨迹信息中的所有数据变更记录对应的同步语句。
4.根据权利要求3所述的方法,其特征在于,所述根据所述变更类型、所述数据信息、所述变更次数,以及被变更的目标数据的所述重复出现次数,确定所述第i条数据变更记录对应的同步语句,包括:
当所述变更类型为删除时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录;
根据所述变更次数,以及所述目标数据记录的所述重复出现次数生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:删除所述目标数据记录的语句和将所述目标数据记录补偿n次的语句,其中n为所述重复出现次数减去所述变更次数得到的差值;
或者,
当所述变更类型为变更时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录,以及所述目标数据记录变更后的数据记录;
根据所述目标数据记录以及所述变更后的数据记录确定所述目标数据记录中被变更的目标字段,以及所述目标字段的变更后的目标值;
根据所述变更次数,所述目标数据记录的所述重复出现次数,所述目标字段以及所述目标字段的变更后的目标值生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:将所述目标数据记录的所述目标字段设置为所述目标值的语句、将所述目标数据记录的所述目标字段设置为所述目标值所得到的数据记录删除的语句,以及将所述目标数据记录补偿q次的语句,和/或将所述目标数据记录的所述目标字段设置为所述目标值所得到的数据记录补偿p次的语句,其中p等于所述变更次数,q为所述重复出现次数减去所述变更次数得到的差值;或者,
当所述变更类型为插入时,根据所述数据信息确定所述第i条数据变更记录对应的目标数据记录;
根据所述变更次数生成所述第i条数据变更记录对应的同步语句,所述同步语句包含:将所述目标数据记录补偿j次的语句,其中j为所述变更次数。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述变更类型为删除时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数减去所述变更次数;或者,
当所述变更类型为变更时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数减去所述变更次数,并将所述变更后的数据记录的所述重复出现次数增加所述变更次数;或者,
当所述变更类型为插入时,在所述根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作之后,在所述源数据库和所述目标数据库中将所述目标数据记录的所述重复出现次数增加j。
6.根据权利要求3或4所述的方法,其特征在于,所述根据所述数据变更轨迹信息生成SQL形式的同步语句,还包括:
在获取所述数据变更轨迹信息中的所有数据变更记录对应的同步语句后,将所有数据变更记录对应的同步语句进行合并处理。
7.根据权利要求2所述的方法,其特征在于,所述每条数据记录的标识是根据所述每条数据记录中的数据内容,利用消息摘要算法第五版算法计算获取的。
8.一种无主键数据表的同步装置,其特征在于,所述装置包括:
获取模块,用于获取源数据库中的目标数据表从第一内容到当前的第二内容的数据变更轨迹信息,所述第一内容为上一次在所述源数据库中与目标数据库之间进行所述目标数据表的同步时的表格内容,所述数据变更轨迹信息包括:一条或多条数据变更记录,每条所述数据变更记录中包含:变更类型、数据信息以及变更次数;
生成模块,用于根据每一条所述数据变更记录中的变更类型、数据信息以及变更次数,以及所述目标数据表为所述第一内容时,被变更的目标数据记录的重复出现次数,生成结构化查询语言SQL形式的同步语句;
同步模块,用于根据所述同步语句对所述目标数据库中的所述目标数据表进行数据变更操作,以便将所述目标数据库中的所述目标数据表从所述第一内容变更为所述第二内容。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:权利要求9所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810601911.8A CN108897794B (zh) | 2018-06-12 | 2018-06-12 | 无主键数据表的同步方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810601911.8A CN108897794B (zh) | 2018-06-12 | 2018-06-12 | 无主键数据表的同步方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897794A CN108897794A (zh) | 2018-11-27 |
CN108897794B true CN108897794B (zh) | 2020-11-27 |
Family
ID=64344769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810601911.8A Active CN108897794B (zh) | 2018-06-12 | 2018-06-12 | 无主键数据表的同步方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897794B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442585B (zh) * | 2019-06-21 | 2024-04-30 | 中国平安财产保险股份有限公司 | 数据更新方法、数据更新装置、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419615A (zh) * | 2008-12-10 | 2009-04-29 | 阿里巴巴集团控股有限公司 | 一种前后台数据库的同步方法及装置 |
CN102129478A (zh) * | 2011-04-26 | 2011-07-20 | 广州从兴电子开发有限公司 | 数据库同步方法及系统 |
CN102375890A (zh) * | 2011-11-02 | 2012-03-14 | 杭州合众信息工程有限公司 | 一种数据库无主键源端表的数据同步方法 |
CN104834700A (zh) * | 2015-04-27 | 2015-08-12 | 南京邮电大学 | 一种基于轨迹变更的移动数据增量捕获方法 |
CN106815326A (zh) * | 2016-12-28 | 2017-06-09 | 中国民航信息网络股份有限公司 | 一种检测无主键数据表一致性的系统及方法 |
CN107590277A (zh) * | 2017-09-28 | 2018-01-16 | 泰康保险集团股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN107885804A (zh) * | 2017-11-02 | 2018-04-06 | 平安科技(深圳)有限公司 | 数据库同步方法、应用服务器及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2844372B1 (fr) * | 2002-09-11 | 2005-01-14 | Michel Zamfiroiu | Procede d'organisation d'une base de donnees numeriques sous une forme tracable |
US7409587B2 (en) * | 2004-08-24 | 2008-08-05 | Symantec Operating Corporation | Recovering from storage transaction failures using checkpoints |
-
2018
- 2018-06-12 CN CN201810601911.8A patent/CN108897794B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419615A (zh) * | 2008-12-10 | 2009-04-29 | 阿里巴巴集团控股有限公司 | 一种前后台数据库的同步方法及装置 |
CN102129478A (zh) * | 2011-04-26 | 2011-07-20 | 广州从兴电子开发有限公司 | 数据库同步方法及系统 |
CN102375890A (zh) * | 2011-11-02 | 2012-03-14 | 杭州合众信息工程有限公司 | 一种数据库无主键源端表的数据同步方法 |
CN104834700A (zh) * | 2015-04-27 | 2015-08-12 | 南京邮电大学 | 一种基于轨迹变更的移动数据增量捕获方法 |
CN106815326A (zh) * | 2016-12-28 | 2017-06-09 | 中国民航信息网络股份有限公司 | 一种检测无主键数据表一致性的系统及方法 |
CN107590277A (zh) * | 2017-09-28 | 2018-01-16 | 泰康保险集团股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN107885804A (zh) * | 2017-11-02 | 2018-04-06 | 平安科技(深圳)有限公司 | 数据库同步方法、应用服务器及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Oracle同步复制时表没有主键的一种解决方法;张晓蕾等;《软件导刊》;20090330;第8卷(第3期);33-35页 * |
基于Oracle数据库的逻辑数据同步技术在实践中的应用研究;王新伟;《电子技术与软件工程》;20150421;195-197页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108897794A (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109033186B (zh) | 数据一致性检测方法、装置、存储介质及电子设备 | |
CN106997378B (zh) | 基于Redis的数据库数据聚合同步的方法 | |
US10803079B2 (en) | Timing-based system-period temporal table in a database system | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
US9020916B2 (en) | Database server apparatus, method for updating database, and recording medium for database update program | |
CN106874281B (zh) | 实现数据库读写分离的方法和装置 | |
CN111177144B (zh) | 表同步方法、装置、设备、存储介质及系统 | |
CN109241174B (zh) | 数据同步方法、装置、可读存储介质和电子设备 | |
US7809778B2 (en) | Idempotent journal mechanism for file system | |
CN111522784B (zh) | 一种非结构化数据文件的元数据同步方法、装置及设备 | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
US10915521B2 (en) | Blockchain gateway device and associated method of use | |
CN106528071A (zh) | 目标代码的选取方法及装置 | |
US11442953B2 (en) | Methods and apparatuses for improved data ingestion using standardized plumbing fields | |
CN108897794B (zh) | 无主键数据表的同步方法、装置、存储介质和电子设备 | |
CN114579561A (zh) | 数据处理方法和装置、存储介质 | |
CN111949725A (zh) | 数据的查询方法、装置、电子设备及计算机可读存储介质 | |
CN110647421B (zh) | 数据库处理方法、装置、系统以及电子设备 | |
CN108196921B (zh) | 单据开发方法、装置、计算机设备和存储介质 | |
CN111723007B (zh) | 一种测试用例的合并方法、系统、设备以及介质 | |
CN114153857A (zh) | 数据同步方法、数据同步装置和计算机可读存储介质 | |
CN112783980B (zh) | 数据同步处理方法、装置、电子设备以及计算机可读介质 | |
CN112148739B (zh) | 独立于加密数据库的密文索引方法及系统 | |
CN112486979B (zh) | 数据处理方法、装置和系统、电子设备以及计算机可读存储介质 | |
CN104965880A (zh) | 数据库拆分方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |