一种基于统一业务索引定义的跨数据库同步方法及系统与流程

摘要: 本申请涉及数据库自治管理与索引治理,具体而言,涉及一种基于统一业务索引定义的跨数据库同步方法及系统。背景技术:1、在工业软件和企业信息化系统的现场交付过程中,业...
一种基于统一业务索引定义的跨数据库同步方法及系统与流程

本申请涉及数据库自治管理与索引治理,具体而言,涉及一种基于统一业务索引定义的跨数据库同步方法及系统。

背景技术:

1、在工业软件和企业信息化系统的现场交付过程中,业务实体通常需要随客户场景持续定制,数据库后端可能采用关系型数据库或文档型数据库。随着业务演进,围绕同一业务实体设置的唯一索引、联合索引和排序索引也会相应调整。

2、现有方案中,工程实践通常在关系型数据库与文档型数据库两端分别手工创建、修改和删除索引,或在业务配置层定义逻辑字段,再由数据库管理员或开发人员按数据库后端手工部署实际索引。现有方案还包括元数据驱动的数据库模式管理、版本化迁移脚本管理和跨数据库数据访问抽象。

3、现有方案通过上述处理方式使同一业务索引语义需要针对不同数据库后端分别维护,容易出现唯一性、字段顺序或排序方向等定义漂移。对数据库中的索引进行无区分的删除和重建还可能影响人工创建的索引;每次同步均重建索引会产生额外锁表或资源消耗,并可能影响运行期业务。此外,各关系型数据库允许的索引字段总长度存在差异,超限定义可能在现场执行时失败。

4、因此,本申请提供了一种基于统一业务索引定义的跨数据库同步方法及系统,以解决上述技术问题之一。

技术实现思路

1、本申请的目的在于提供一种基于统一业务索引定义的跨数据库同步方法及系统,能够解决上述提到的至少一个技术问题。具体方案如下:

2、根据本申请的具体实施方式,第一方面,本申请提供一种基于统一业务索引定义的跨数据库同步方法,包括:

3、获取当前数据库类型和业务实体对应的统一业务索引定义集合,并根据所述统一业务索引定义集合,确定与所述当前数据库类型对应的目标索引集合;其中,所述当前数据库类型为关系型数据库或文档型数据库;根据所述当前数据库类型采集所述业务实体对应的现状索引,基于系统托管前缀标识对所述现状索引进行筛选,并将筛选结果处理为与所述统一业务索引定义同构的现状索引集合;对所述目标索引集合与所述现状索引集合执行基于索引名称的匹配,并根据同名索引的唯一性、索引字段顺序和排序方向的比较结果,确定各索引对应的执行动作;根据各执行动作从所述目标索引集合和所述现状索引集合中确定对应的待处理索引,按照与所述当前数据库类型对应的系统托管索引命名规则,并根据所述待处理索引,生成数据库索引名称;根据所述当前数据库类型、各执行动作、所述待处理索引和所述数据库索引名称生成并执行关系型数据库索引指令或文档型数据库索引操作,得到索引同步结果。

4、根据本申请的具体实施方式,第二方面,本申请提供一种基于统一业务索引定义的跨数据库同步系统,包括:

5、同步入口模块,用于获取当前数据库类型和业务实体的统一业务索引定义集合,根据所述统一业务索引定义集合和所述当前数据库类型确定对应的目标索引集合并输出至差异判定模块;现状索引模块,用于采集所述业务实体在所述当前数据库类型下的现状索引,筛选带有系统托管前缀标识的现状索引并处理为与所述统一业务索引定义同构的现状索引集合,输出至所述差异判定模块;所述差异判定模块,用于按索引名称匹配所述目标索引集合和所述现状索引集合,比较同名索引的唯一性、索引字段顺序和排序方向,确定各索引的执行动作,将各执行动作、所述目标索引集合和所述现状索引集合输出至后端执行模块;所述后端执行模块,用于根据各执行动作从所述目标索引集合和所述现状索引集合中确定对应的待处理索引,按照与所述当前数据库类型对应的系统托管索引命名规则,并根据所述待处理索引,生成数据库索引名称;根据所述当前数据库类型、各执行动作、所述待处理索引和所述数据库索引名称生成并执行关系型数据库索引指令或文档型数据库索引操作,得到索引同步结果。

6、本申请实施例的上述方案与现有技术相比,至少具有以下有益效果:

7、本申请提供了一种基于统一业务索引定义的跨数据库同步方法,由于依据当前数据库类型从统一业务索引定义集合确定目标索引集合,并将经系统托管前缀标识筛选的现状索引处理为与统一业务索引定义同构的现状索引集合,因此目标索引与现状索引可按统一结构比较,治理范围限定于系统托管索引。并且,按照索引名称匹配并比较同名索引的唯一性、索引字段顺序和排序方向,据此确定执行动作和待处理索引,使重复同步按照结构差异执行。此外,本申请还在按系统托管索引命名规则生成数据库索引名称后,生成并执行关系型数据库索引指令或文档型数据库索引操作,将统一业务索引语义同步至当前数据库后端,该方式减少分后端维护造成的定义漂移。

1.一种基于统一业务索引定义的跨数据库同步方法,其特征在于,包括:

2.根据权利要求1所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述获取当前数据库类型和业务实体对应的统一业务索引定义集合,并根据所述统一业务索引定义集合,确定与所述当前数据库类型对应的目标索引集合,包括:

3.根据权利要求2所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述根据所述当前数据库类型采集所述业务实体对应的现状索引,基于系统托管前缀标识对所述现状索引进行筛选,并将筛选结果处理为与所述统一业务索引定义同构的现状索引集合,包括:

5.根据权利要求1所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述根据所述当前数据库类型采集所述业务实体对应的现状索引,基于系统托管前缀标识对所述现状索引进行筛选,并将筛选结果处理为与所述统一业务索引定义同构的现状索引集合,包括:

6.根据权利要求1所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述获取当前数据库类型和业务实体对应的统一业务索引定义集合,并根据所述统一业务索引定义集合,确定与所述当前数据库类型对应的目标索引集合,包括:

7.根据权利要求1所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述对所述目标索引集合与所述现状索引集合执行基于索引名称的匹配,并根据同名索引的唯一性、索引字段顺序和排序方向的比较结果,确定各索引对应的执行动作,包括:

8.根据权利要求7所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述根据各执行动作从所述目标索引集合和所述现状索引集合中确定对应的待处理索引,按照与所述当前数据库类型对应的系统托管索引命名规则,并根据所述待处理索引,生成数据库索引名称,包括:

9.根据权利要求8所述的基于统一业务索引定义的跨数据库同步方法,其特征在于,所述根据所述当前数据库类型、各执行动作、所述待处理索引和所述数据库索引名称生成并执行关系型数据库索引指令或文档型数据库索引操作,得到索引同步结果,包括:

10.一种基于统一业务索引定义的跨数据库同步系统,其特征在于,包括: