本发明涉及数据库同步,特别涉及一种异构数据库数据同步的方法、装置、设备和存储介质。
背景技术:
1、企业的数据管理系统中通常都设置有多种不同架构的数据库(即多种异构的数据库),例如,分别设置关系型数据库和非关系型数据库。为了保证这些异构的数据库都能正常工作,需要实现多个异构数据库之间的数据同步,即一个数据库的数据被更新后,需要同步更新其他的数据库。
2、目前在多个异构的数据库之间实现数据同步的一种方式是,企业的开发人员在开发访问数据库的业务程序时,在业务程序中实现针对数据管理系统中每一个数据库的数据更新代码。由此,业务程序每次更新数据库的数据时,就可以分别执行各个数据库的数据更新代码,从而同步更新每个数据库。
3、这种同步方式的问题是,每开发一个业务程序,都需要针对多个数据库重复实现多次数据更新代码,这增大了开发业务程序的工作量。
技术实现思路
1、针对上述现有技术的缺点,本发明提供一种异构数据库数据同步的方法、装置、设备和存储介质,以便减小业务程序开发的工作量。
2、本申请第一方面提供一种异构数据库数据同步的方法,包括:
3、截获用于更新第一数据库的第一更新语句,所述第一数据库为关系型数据库;
4、根据数据库映射关系解析所述第一更新语句,以确定第二数据库的更新对象信息和更新值,所述数据库映射关系包括所述第一数据库的表和所述第二数据库的索引片区的映射关系,以及所述第一数据库的字段和所述第二数据库的字段的映射关系,所述第二数据库为非关系型数据库;
5、根据所述第二数据库的更新对象信息和更新值生成第二更新语句,所述第二更新语句用于更新所述第二数据库;
6、执行所述第一更新语句和所述第二更新语句。
7、可选的,所述截获用于更新第一数据库的第一更新语句,包括:
8、截获针对第一数据库的数据库操作语句;
9、识别所述数据库操作语句对应的操作是否属于写操作;
10、若所述数据库操作语句对应的操作属于写操作,确定所述数据库操作语句为第一更新语句;
11、若所述数据库操作语句对应的操作不属于写操作,确定所述数据库操作语句不为第一更新语句,并执行所述数据库操作语句。
12、可选的,所述识别所述数据库操作语句对应的操作是否属于写操作,包括:
13、识别所述数据库操作语句是否包含预设的写操作关键字;
14、若所述数据库操作语句包含所述写操作关键字,确定所述数据库操作语句对应的操作属于写操作;
15、若所述数据库操作语句不包含所述写操作关键字,确定所述数据库操作语句对应的操作不属于写操作。
16、可选的,所述更新对象信息包括需要更新的目标字段和所述目标字段所属的目标索引片区;
17、所述根据数据库映射关系解析所述第一更新语句,以确定第二数据库的更新对象信息和更新值,包括:
18、解析所述第一更新语句,以确定所述第一数据库的待更新字段和所述待更新字段所属的目标表;
19、根据数据库映射关系,确定所述第二数据库中和所述目标表对应的目标索引片区,以及所述第二数据库中和所述待更新字段对应的目标字段;
20、解析得到所述第一更新语句包含的字段值,并将所述字段值确定为更新值。
21、本申请第二方面提供一种异构数据库数据同步的装置,包括:
22、截获单元,用于截获用于更新第一数据库的第一更新语句,所述第一数据库为关系型数据库;
23、解析单元,用于根据数据库映射关系解析所述第一更新语句,以确定第二数据库的更新对象信息和更新值,所述数据库映射关系包括所述第一数据库的表和所述第二数据库的索引片区的映射关系,以及所述第一数据库的字段和所述第二数据库的字段的映射关系,所述第二数据库为非关系型数据库;
24、生成单元,用于根据所述第二数据库的更新对象信息和更新值生成第二更新语句,所述第二更新语句用于更新所述第二数据库;
25、执行单元,用于执行所述第一更新语句和所述第二更新语句。
26、可选的,所述截获单元截获用于更新第一数据库的第一更新语句时,具体用于:
27、截获针对第一数据库的数据库操作语句;
28、识别所述数据库操作语句对应的操作是否属于写操作;
29、若所述数据库操作语句对应的操作属于写操作,确定所述数据库操作语句为第一更新语句;
30、若所述数据库操作语句对应的操作不属于写操作,确定所述数据库操作语句不为第一更新语句,并执行所述数据库操作语句。
31、可选的,所述截获单元识别所述数据库操作语句对应的操作是否属于写操作时,具体用于:
32、识别所述数据库操作语句是否包含预设的写操作关键字;
33、若所述数据库操作语句包含所述写操作关键字,确定所述数据库操作语句对应的操作属于写操作;
34、若所述数据库操作语句不包含所述写操作关键字,确定所述数据库操作语句对应的操作不属于写操作。
35、可选的,所述更新对象信息包括需要更新的目标字段和所述目标字段所属的目标索引片区;
36、所述解析单元根据数据库映射关系解析所述第一更新语句,以确定第二数据库的更新对象信息和更新值时,具体用于:
37、解析所述第一更新语句,以确定所述第一数据库的待更新字段和所述待更新字段所属的目标表;
38、根据数据库映射关系,确定所述第二数据库中和所述目标表对应的目标索引片区,以及所述第二数据库中和所述待更新字段对应的目标字段;
39、解析得到所述第一更新语句包含的字段值,并将所述字段值确定为更新值。
40、本申请第三方面提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现本申请第一方面任意一项所提供的异构数据库数据同步的方法。
41、本申请第四方面提供一种电子设备,包括存储器和处理器;
42、所述存储器用于存储计算机程序;
43、所述处理器用于执行所述计算机程序,具体用于实现本申请第一方面任意一项所提供的异构数据库数据同步的方法。
44、本申请提供一种异构数据库数据同步的方法、装置、设备和存储介质,方法包括,截获用于更新关系型的第一数据库的第一更新语句,第一数据库为关系型数据库;根据数据库映射关系解析第一更新语句,以确定非关系型的第二数据库的更新对象信息和更新值,根据第二数据库的更新对象信息和更新值生成第二更新语句,第二更新语句用于更新第二数据库;执行第一更新语句和第二更新语句。本方案通过解析第一更新语句自动对第二数据库进行同步更新,解决了由业务程序同步更新导致的开发工作量大的问题。
1.一种异构数据库数据同步的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述截获用于更新第一数据库的第一更新语句,包括:
3.根据权利要求2所述的方法,其特征在于,所述识别所述数据库操作语句对应的操作是否属于写操作,包括:
4.根据权利要求1所述的方法,其特征在于,所述更新对象信息包括需要更新的目标字段和所述目标字段所属的目标索引片区;
5.一种异构数据库数据同步的装置,其特征在于,包括:
6.根据权利要求5所述的装置,其特征在于,所述截获单元截获用于更新第一数据库的第一更新语句时,具体用于:
7.根据权利要求6所述的装置,其特征在于,所述截获单元识别所述数据库操作语句对应的操作是否属于写操作时,具体用于:
8.根据权利要求5所述的装置,其特征在于,所述更新对象信息包括需要更新的目标字段和所述目标字段所属的目标索引片区;
9.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被执行时,具体用于实现如权利要求1至4任意一项所述的异构数据库数据同步的方法。
10.一种电子设备,其特征在于,包括存储器和处理器;