基于差异检测的数据库同步方法、装置、设备、存储介质与流程
- 国知局
- 2024-07-31 22:34:54
本发明涉及数据库,特别涉及一种基于差异检测的数据库同步方法、装置、设备、存储介质。
背景技术:
1、随着互联网技术的发展,物业管理开始采用线上模式,住户可以通过相关的app登录物业管理系统,在线进行相关的物业操作。为了提高住户体验,物业管理系统经常会上线新的功能,或者对已有功能进行修改,而每一次的系统更新都会涉及系统数据库的更新。为了确保更新后的数据库可用,通常会为物业管理系统配置源数据库和目标数据库。物业管理系统运行时从目标数据库获取相关数据,进行功能的开发或者更新时在源数据库创建、修改或者删除相关的数据表,完成开发后将源数据库的数据同步到目标数据库。
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、根据本发明实施例的基于差异检测的数据库同步方法,至少具有如下有益效果:当获取所述管理终端发送的差异检测请求,向所述管理终端推送多个候选对象,获取所述管理终端反馈的检测配置表和异常描述信息,其中,所述候选对象为所述源数据库的数据库对象,各个所述候选对象的对象类型互不相同,所述检测配置表记载有所述管理终端选取的至少一个目标对象;基于所述检测配置表生成各个所述目标对象的目标查询语句,根据所述目标查询语句从所述源数据库获取第一对象信息,从所述目标数据库获取第二对象信息,根据所述第一对象信息和所述第二对象信息确定差异检测结果,其中,所述第一对象信息和所述第二对象信息用于指示所述目标对象的数据结构、对象数据或者对象定义;当基于所述差异检测结果确定出至少一个差异对象,基于所述差异检测结果和所述差异对象构建出参考样式语句,基于所述第一对象信息填充所述参考样式语句得到目标更新语句;将所述目标更新语句发送至所述目标数据库执行,基于所述异常描述信息和所述检测配置表创建差异检测记录。根据本发明实施例的技术方案,不具备数据库知识的操作人员能够在管理终端以可视化选择的方式灵活配置目标对象,提高了数据库同步的适用性和灵活性;数据库管理平台基于检测配置表自动构建查询语句,仅从源数据库和目标数据库获取目标对象的对象信息并完成差异检测和目标数据库的数据同步,不能实现了自动化的数据同步,而且减少了数据处理量,提高了数据库的数据处理效率,从而提高数据异常的修复效率。
本文地址:https://www.jishuxx.com/zhuanli/20240731/193717.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表