1.本发明涉及数据库模型领域,尤其涉及一种云原生高灵活的表达、存储及计算解耦合数据库架构方法。
背景技术:2.对关系型数据库而言,其按照结构化的方法存储数据,每个数据表都必须对各个字段定义好,再根据表的结构存入数据,一旦存入数据后,如果需要修改数据表的结构就会十分困难,随着数据表数量的增加,数据管理会越来越复杂,故在业务需求不固定或业务频繁变动的场景下,关系型数据库灵活度低;在海量数据的场景下,关系型数据库数据处理效率低,反应缓慢,可扩展性差,并且成本高。
3.对非关系型数据库而言,通过牺牲数据强一致性以换取高性能,且nosql一般不支持sql结构化语言,易用性差,不被rdb所支持,nosql基于键值对,数据之间没有耦合性,相比于关系型数据库可扩展性较好;但在灵活性方面,单个nosql数据库实质是传统关系型数据库的功能子集,面向特定领域场景,灵活度低。
4.对近年来发展的新型数据库而言,通过一一绑定一种关系型数据库或者nosql实现一定的可扩展,但是牺牲灵活性、数据强一致性或者sql的功能性,且易用性差、模块复杂、通信成本高,无法适应云原生环境中的多种存储引擎。
5.针对上述缺陷,本发明的目的在于结合关系型数据库与非关系型数据库使其优势互补,并且可以灵活切换,无须一一对应,符合云原生的设计理念与架构,设计一种全新的云原生高灵活的表达、存储及计算解耦合数据库架构方法。
6.因此,有必要提供一种云原生高灵活的表达、存储及计算解耦合数据库架构方法解决上述技术问题。
技术实现要素:7.本发明提供一种云原生高灵活的表达、存储及计算解耦合数据库架构,解决了现阶段关系型数据库灵活度低、可拓展性差,非关系型数据库灵活度低,易用性差,和新型数据库灵活性差的问题。
8.为解决上述技术问题,本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构方法包括:
9.位于上层的多种关系型数据库连接协议表示与兼容功能,位于中层的可无限扩展无服务器架构计算功能和位于下层的可变解耦合非关系型数据库存储引擎或服务功能;
10.上层根据不同应用所使用的数据库连接协议提供相应的关系型数据库统一接口适配,支持sql结构化数据操作和查询语言,满足通用性及关系型数据库acid等特性,无须应用在切换数据库时变更应用程序代码,降低使用难度,提高易用性;
11.中层根据应用的性能需要,自动扩展计算能力,并分配计算资源、sql任务分解与保障数据的强一致性,满足海量数据的存取计算需求,并实现无服务器请求的并发管理,满
足事务型数据库强一致性要求。
12.下层则可对接不同的非关系型数据库存储引擎或者服务,对现有nosql存储无任何修改和依赖,完全解耦合并利用其高性能、高扩展的特点,根据业务需要,自行适配不同数量或不同类型的非关系型数据存储引擎或者服务;
13.以sql语句查询为例,例示该数据库架构下的使用步骤如下:
14.s1用户键入sql语句,发送查询请求;
15.s2上层根据对应的关系型数据库协议,自动转换与适配sql查询任务;
16.s3查询任务被分配到中层计算,根据自身策略执行该查询;
17.s4判断是否查询到满足条件的元数据data_k;
18.s5判断该元数据data_k是否存储在下层非关系型数据存储引擎或服务中;
19.s6以无服务器方式发送该sql对应的非关系型数据存储或服务查询请求;
20.s7非关系型数据存储或服务执行经sql转换的查询请求;
21.s8返回查询结果。
22.优选的,所述s1步骤中用户根据自身业务需求,发送符合某一种关系型数据库协议的sql查询请求。
23.优选的,所述s2步骤中用户应用数据库接口以mysql为例,上层指定mysql关系型数据库协议处理该sql请求。
24.优选的,计算层执行该查询策略如下:计算服务器接收到查询请求后,先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段,计算服务器端进行sql解析、预处理,再由优化器生成对应的执行计划。
25.优选的,计算层根据优化器生成的执行计划,再调用存储引擎的api来执行查询。
26.优选的,所述s3步骤中判断为是时则进入s4步骤,判断为否时则返回查询结果:未查询到符合条件的数据。
27.优选的,所述s4步骤中判断为是时进入s5步骤;判断为否时说明该元数据data_k仅存储在下层非关系型数据存储引擎或者服务中,根据适配后自身策略返回查询结果,并与用户使用mysql数据库的查询结果保持一致。
28.优选的,所述s6步骤中以该元数据data_k存储在mongodb集群为例:首先将sql语句转换为mongodb集群查询语句,再以无服务器方式发送该语句查询请求给底层mongodb集群。
29.优选的,所述s6步骤续s5步骤例,mongodb集群接收到查询请求后,根据自身查询策略执行查询语句,返回查询结果,并与用户使用mysql数据库的查询结果保持一致。
30.优选的,所述s7步骤中基于多种协议的sql查询语句转换为多种非关系型数据存储或者服务的查询语句需有对应语义转换模块。
31.与相关技术相比较,本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构具有如下有益效果:
32.本发明提供一种云原生高灵活的表达、存储及计算解耦合数据库架构,对比关系型数据库,利用非关系型数据存储引擎或服务易扩展及灵活的数据模型特性,通过下层对多种非关系型数据存储引擎或者服务的集成,面对使用者的不同业务应用需求,适应云原生存储服务,实现了存储高可扩展和高灵活性;对比非关系型数据库,通过上层兼容多种关
系型数据库连接协议,对外提供对应灵活的rdb的统一通用性接口,实现对sql结构化查询语言支持,通过中层的计算层,支持无服务器数据存取任务的统一调配和管理,支持acid强数据一致性的保证,极大提升了计算可扩展性及灵活性;对比新型数据库,实现了无须一一对应的灵活表示与存储,降低用户使用难度,采用无服务器请求管理,提高系统的整体性能,适用多种应用场景,极大的提升了应用的可扩展性和灵活性。
附图说明
33.图1为本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构的系统图。
34.图2为本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构的一种较佳实施例的数据库架构图;
35.图3为本发明基于云原生高灵活的表达、存储及计算解耦合数据库架构的sql查询全流程。
具体实施方式
36.下面结合附图和实施方式对本发明作进一步说明。
37.请结合参阅图1、图2和图3,其中,图1为本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构的系统图。图2为本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构的一种较佳实施例的数据库架构图;图3为本发明基于云原生高灵活的表达、存储及计算解耦合数据库架构的sql查询全流程。
38.一种云原生高灵活的表达、存储及计算解耦合数据库架构包括:
39.位于上层的多种关系型数据库连接协议表示与兼容功能,位于中层的可无限扩展无服务器架构计算功能和位于下层的可变解耦合非关系型数据库存储引擎或服务功能;
40.上层根据不同应用所使用的数据库连接协议提供相应的关系型数据库统一接口适配,支持sql结构化数据操作和查询语言,满足通用性及关系型数据库acid等特性,无须应用在切换数据库时变更应用程序代码,降低使用难度,提高易用性;
41.中层根据应用的性能需要,自动扩展计算能力,并分配计算资源、sql任务分解与保障数据的强一致性,满足海量数据的存取计算需求,并实现无服务器请求的并发管理,满足事务型数据库强一致性要求。
42.下层则可对接不同的非关系型数据库存储引擎或者服务,对现有nosql存储无任何修改和依赖,完全解耦合并利用其高性能、高扩展的特点,根据业务需要,自行适配不同数量或不同类型的非关系型数据存储引擎或者服务;
43.以sql语句查询为例,例示该数据库架构下的使用步骤如下:
44.s1用户键入sql语句,发送查询请求;
45.s2上层根据对应的关系型数据库协议,自动转换与适配sql查询任务;
46.s3查询任务被分配到中层计算,根据自身策略执行该查询;
47.s4判断是否查询到满足条件的元数据data_k;
48.s5判断该元数据data_k是否存储在下层非关系型数据存储引擎或服务中;
49.s6以无服务器方式发送该sql对应的非关系型数据存储或服务查询请求;
50.s7非关系型数据存储或服务执行经sql转换的查询请求;
51.s8返回查询结果。
52.提出的高可扩展,高灵活性的数据库架构,相对于传统关系型数据库rdb和nosql非关系型数据库的优点如下:
53.对比关系型数据库,利用非关系型数据库易扩展及灵活的数据模型特性,通过下层对nosql的集成,面对使用者的不同业务应用需求,实现了高可扩展和高灵活性;
54.对比非关系型数据库,通过上层封装关系型数据库,对外提供对应rdb的统一通用性接口,实现对sql结构化查询语言支持及acid强数据一致性的保证。
55.综上,本发明在现有技术基础上极大提升了可扩展性及灵活性。
56.所述s1步骤中用户根据自身业务需求,发送符合某一种关系型数据库协议的sql查询请求。
57.所述s2步骤中用户应用数据库接口以mysql为例,上层指定mysql关系型数据库协议处理该sql请求。
58.计算层执行该查询策略如下:计算服务器接收到查询请求后,先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段,计算服务器端进行sql解析、预处理,再由优化器生成对应的执行计划。
59.计算层根据优化器生成的执行计划,再调用存储引擎的api来执行查询。
60.所述s3步骤中判断为是时则进入s4步骤,判断为否时则返回查询结果:未查询到符合条件的数据。
61.所述s4步骤中判断为是时进入s5步骤;判断为否时说明该元数据data_k仅存储在下层非关系型数据存储引擎或者服务中,根据适配后自身策略返回查询结果,并与用户使用mysql数据库的查询结果保持一致。
62.所述s6步骤中以该元数据data_k存储在mongodb集群为例:首先将sql语句转换为mongodb集群查询语句,再以无服务器方式发送该语句查询请求给底层mongodb集群。
63.所述s6步骤续s5步骤例,mongodb集群接收到查询请求后,根据自身查询策略执行查询语句,返回查询结果,并与用户使用mysql数据库的查询结果保持一致。
64.所述s7步骤中基于多种协议的sql查询语句转换为多种非关系型数据存储或者服务的查询语句需有对应语义转换模块。
65.本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构的工作原理如下:
66.用户键入sql语句,发送查询请求;
67.上层关系型数据库根据自身策略执行该查询;
68.判断是否查询到满足条件的元数据data_k;
69.判断该元数据data_k是否存储在底层nosql数据库中;
70.发送该sql对应的nosql数据库查询请求;
71.nosql数据库执行经sql转换的查询请求;
72.返回查询结果。
73.与相关技术相比较,本发明提供的云原生高灵活的表达、存储及计算解耦合数据库架构具有如下有益效果:
74.相对于传统关系型数据库rdb和nosql非关系型数据库的优点如下:
75.对比关系型数据库,利用非关系型数据库易扩展及灵活的数据模型特性,通过下层对nosql的集成,面对使用者的不同业务应用需求,实现了高可扩展和高灵活性;
76.对比非关系型数据库,通过上层封装关系型数据库,对外提供对应rdb的统一通用性接口,实现对sql结构化查询语言支持及acid强数据一致性的保证。
77.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。