本公开涉及数据处理,尤其涉及一种数据同步方法、装置、设备及可读存储介质。
背景技术:
1、随着微服务架构的广泛应用,当单个微服务处理的数据对其他微服务不可见时,很容易造成数据孤岛,由此数据库同步技术应用亦愈发广泛。
2、数据采集或同步相当于在数据源和存储目标端之间建立一座桥梁,可以将数据源中的数据按照一定规则同步到目标端的数据湖或者数据仓库中,从而对数据进一步进行分析。在实际采集作业中,对于数据实时性要求更高、表结构频繁变化的业务,通常采用变更数据捕获(change data capture,cdc)的方式进行数据采集。
3、现有的cdc采集方式存在如下问题:1)有些类型的数据库,不支持数据库表结构变更的探查;2)有些类型的数据库,虽然支持探查数据库表结构变更,但是探查数据库表结构变更会影响数据采集的效率;3)有些类型的数据,不支持采用cdc的方式采集。
技术实现思路
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、本公开实施例提供的数据同步方法、装置、设备及可读存储介质,通过获取数据操作语言日志数据,对所述数据操作语言日志数据进行解析,得到数据库中的数据变更操作信息,将所述数据库中的数据变更操作信息写入目标端,以使所述目标端基于所述数据变更操作信息对所述目标端中的数据进行同步,若所述数据库中的数据变更操作信息写入异常,则采集数据库结构或表结构变更数据,基于所述数据库结构或表结构变更数据对所述目标端的所述数据库结构或表结构进行更改,并将所述数据库中的数据变更操作信息重新写入目标端。相较于现有技术,本公开可以保证采集数据的时效性,提高对数据变更操作的采集效率,可以对目标端的数据库结构或表结构变更进行同步,从而更好地对变更数据进行同步。
1.一种数据同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取数据操作语言日志数据,包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述数据操作语言日志数据进行解析,得到数据库中的数据变更操作信息,包括:
4.根据权利要求1所述的方法,其特征在于,所述对所述数据操作语言日志数据进行解析,得到数据库中的数据变更操作信息之后,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述数据库中的数据变更操作信息写入目标端,包括:
6.根据权利要求1所述的方法,其特征在于,所述若所述数据库中的数据变更操作信息写入异常,则采集数据库结构或表结构变更数据,包括:
7.根据权利要求6所述的方法,其特征在于,所述基于数据库连接接口采集数据库结构或表结构变更数据,包括:
8.一种数据同步装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。