本申请涉及计算机,具体涉及一种异构数据库集成系统和数据库访问方法。
背景技术:
1、云计算的出现,对传统互联网技术(internet technology,it)带来了冲击和挑战。面对数据爆炸式增长、业务种类增加、应用复杂性提高和软件迭代速度加快等一系列挑战,容器技术带来了突破性的解决方案。
2、容器具有敏捷开发、快速交付和可移植等特点,可以为互联网应用提供绝佳的运行环境,颠覆了企业级应用交付的模式。借助云原生技术,上层应用变得越发灵活,但是底层数据层的发展仍然停滞不前。由于底层数据库的调整及故障对上层应用的影响很大,常用的统一数据访问层只解决了数据库链接的管理,而如何实现对多种数据库的统一数据访问和数据库的动态切换成为亟需解决的问题。
技术实现思路
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、基于所述统一数据模型对象参数,判断是否缓存有所述目标数据结果集;
45、在确定缓存有所述目标数据结果集的情况下,将所述目标数据结果集对应的统一数据模型发送至所述业务应用层。
46、在一个实施例中,所述方法还包括:
47、在通过所述统一数据库操作接口访问所述目标数据库的情况下,对数据库操作序列进行分布式事务管理。
48、第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第二方面所述的数据库访问方法的步骤。
49、第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第二方面所述的数据库访问方法的步骤。
50、本申请实施例提供的异构数据库集成系统和数据库访问方法,通过解析用户访问请求,获取与用户访问请求相对应的统一数据模型对象参数,基于统一数据模型对象参数和路由算法,确定目标数据库,基于统一数据模型对象参数和目标数据库的类型,通过统一数据库操作接口访问目标数据库,获取与用户访问请求相对应的目标数据结果集;本申请以云原生技术架构为基础,通过应用传参及路由算法实现数据库的动态切换,并通过统一数据库操作接口实现异构数据访问模式统一化。
1.一种异构数据库集成系统,其特征在于,包括:
2.根据权利要求1所述的异构数据库集成系统,其特征在于,所述数据路由层还用于:
3.根据权利要求2所述的异构数据库集成系统,其特征在于,所述数据路由层具体用于:
4.根据权利要求2或3所述的异构数据库集成系统,其特征在于,所述路由算法的表达式为:
5.根据权利要求1所述的异构数据库集成系统,其特征在于,所述异构数据库集成系统还包括:数据缓存层;
6.根据权利要求5所述的异构数据库集成系统,其特征在于,所述异构数据库集成系统还包括:业务应用层;
7.根据权利要求1所述的异构数据库集成系统,其特征在于,所述异构数据库集成系统还包括:插件层;
8.根据权利要求7所述的异构数据库集成系统,其特征在于,所述插件层包括:
9.一种应用于权利要求1-8任一项所述的异构数据库集成系统的数据库访问方法,其特征在于,包括:
10.根据权利要求9所述的数据库访问方法,其特征在于,所述基于所述统一数据模型对象参数和路由算法,确定目标数据库,包括:
11.根据权利要求10所述的数据库访问方法,其特征在于,所述基于所述目标影响因素,确定路由表达式,包括:
12.根据权利要求10或11所述的数据库访问方法,其特征在于,所述路由算法的表达式为:
13.根据权利要求9所述的数据库访问方法,其特征在于,在所述基于所述统一数据模型对象参数和所述目标数据库的类型,通过所述统一数据库操作接口访问所述目标数据库,获取与所述用户访问请求相对应的目标数据结果集之后,所述方法还包括:
14.根据权利要求13所述的数据库访问方法,其特征在于,在所述基于所述统一数据模型对象参数和路由算法,确定目标数据库之前,所述方法还包括:
15.根据权利要求9所述的数据库访问方法,其特征在于,所述方法还包括:
16.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求9至15任一项所述的数据库访问方法的步骤。
17.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求9至15任一项所述的数据库访问方法的步骤。