本申请涉及计算机存储,具体涉及一种基于分布式数据库的操作方法及相关产品。
背景技术:
1、在数据库技术高速发展的当下,为了提高数据库的处理性能,分布式数据库越来越广泛应用到人们的日常生活中。
2、现有的分布式数据库,大多是面向中心化场景提出的。以sqlite分布式数据库为例,通常采用以下两种方式来实现分布式数据库的存储。
3、第一种,采用dqlite来实现分布式数据库。具体地,dqlite在sqlite的基础上接入强一致性(如raft)算法,通过修改sqlite的内核软件层(virtual file system,vfs),将sqlite写数据的流程改为写入raft日志。再通过主从节点组网,将主节点的raft日志同步到从节点,从而实现分布式数据库的分布存储。
4、第二种,采用rqlite来实现分布式数据库。具体地,rqlite也是在sqlite的基础上接入强一致性(如raft)算法,将sqlite作为独立的存储引擎,不修改sqlite代码。rqlite在sqlite之上增加额接入层,业务的sql请求发送至该接入层。接入层将该请求作为raft日志保存,并在网络节点之间同步,每个节点将相同raft日志中的sql语句独立执行,从而实现分布式数据库的分布存储。
5、由此可见,上述两种分布式数据库均是基于中心化场景提出的,不适用于去中心化场景,且两种分布式数据库的可扩展性较差。
技术实现思路
1、本申请实施例公开了一种基于分布式数据库的操作方法及相关产品,能解决现有技术中存在的不适用去中心化场景及可扩展性较差的问题。
2、第一方面,本申请提供一种分布式数据库,所述分布式数据库包括按序依次设置的接口执行层、引擎封装层和键值存储层;其中:
3、所述接口执行层,用于采用sql语句将业务数据转化为第一元数据,所述第一元数据包括数据索引和数据描述;
4、所述引擎封装层,用于将所述数据索引和所述数据描述封装为对应的第一键值对数据;
5、所述键值存储层,用于对接所述引擎封装层,以对所述第一键值对数据进行持久化操作,所述持久化操作包括以下中的至少一项:存储操作、读取操作、增加操作、删除操作、修改操作及查询操作。
6、第二方面,本申请提供一种基于分布式数据库的操作方法,所述分布式数据库包括按序依次设置的接口执行层、引擎封装层和键值存储层,所述方法包括:
7、调用所述接口执行层,采用sql语句将业务数据转化为第一元数据,所述第一元数据包括数据索引和数据描述;
8、调用所述引擎封装层,将所述数据索引和所述数据描述封装为对应的第一键值对数据;
9、调用所述键值存储层,与所述引擎封装层对接,以对所述第一键值对数据进行持久化操作,所述持久化操作包括以下中的至少一项:存储操作、读取操作、增加操作、删除操作、修改操作及查询操作。
10、第三方面,本申请提供一种基于分布式数据库的操作装置,所述分布式数据库包括按序依次设置的接口执行层、引擎封装层和键值存储层,所述装置包括:
11、转换模块,用于调用所述接口执行层,采用sql语句将业务数据转化为第一元数据,所述第一元数据包括数据索引和数据描述;
12、封装模块,用于调用所述引擎封装层,将所述数据索引和所述数据描述封装为对应的第一键值对数据;
13、处理模块,用于调用所述键值存储层,与所述引擎封装层对接,以对所述第一键值对数据进行持久化操作,所述持久化操作包括以下中的至少一项:存储操作、读取操作、增加操作、删除操作、修改操作及查询操作。
14、第四方面,本申请提供一种计算机设备,所述计算机设备包括:存储器及与所述存储器耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令;其中,所述处理器执行所述指令时实现如上第二方面提供的方法。
15、第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第二方面提供的方法。
16、第六方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序,当所述计算机程序被处理器执行时实现如上第二方面提供的方法。
17、与现有技术相比,本申请至少具备以下有益效果:
18、本申请实施例提供一种分布式数据库,包括按序依次设置的接口执行层、引擎封装层和键值存储层;其中:所述接口执行层,用于采用sql语句将业务数据转化为第一元数据,所述第一元数据包括数据索引和数据描述;所述引擎封装层,用于将所述数据索引和所述数据描述封装为对应的第一键值对数据;所述键值存储层,用于对接所述引擎封装层,以对所述第一键值对数据进行持久化操作,所述持久化操作包括以下中的至少一项:存储操作、读取操作、增加操作、删除操作、修改操作及查询操作。可见,本申请将接口执行层和键值存储层解耦部署,以满足去中心化场景的业务需求,且能根据实际的业务需求选择不同的键值存储层。引擎封装层还能将数据索引和数据描述转换为通用的键值对数据存储,有利于提升分布式数据库的可扩展性。同时也能解决现有技术中存在的不适用去中心化场景及可扩展性较差的问题。
1.一种分布式数据库,其特征在于,所述分布式数据库包括按序依次设置的接口执行层、引擎封装层和键值存储层;其中:
2.根据权利要求1所述的分布式数据库,其特征在于,所述分布式数据库还包括与所述键值存储层交互的同步配置层,其中:
3.根据权利要求2所述的分布式数据库,其特征在于,所述同步配置层具体用于:
4.根据权利要求1所述的分布式数据库,其特征在于,所述引擎封装层包括虚表接口单元、核心解析单元和键值接口单元,其中:
5.根据权利要求4所述的分布式数据库,其特征在于,所述键值存储层具体用于:
6.根据权利要求4所述的分布式数据库,其特征在于,所述虚表接口单元包括预先定义的至少一个操作接口,所述虚表接口单元还用于:
7.根据权利要求1所述的分布式数据库,其特征在于,,
8.根据权利要求1-7中任一项所述的分布式数据库,其特征在于,所述键值存储层为数据库引擎或缓存数据库。
9.根据权利要求1-7中任一项所述的分布式数据库,其特征在于,所述分布式数据库部署于计算机设备中。
10.一种基于分布式数据库的操作方法,其特征在于,所述分布式数据库包括按序依次设置的接口执行层、引擎封装层和键值存储层,所述方法包括:
11.一种计算机设备,其特征在于,包括:存储器及与所述存储器耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令;其中,所述处理器执行所述指令时实现如上权利要求10所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上权利要求10所述的方法。
13.一种基于分布式数据库的操作装置,其特征在于,所述分布式数据库包括按序依次设置的接口执行层、引擎封装层和键值存储层,所述装置包括:
