CN116303351A - 数据库支持多个存储引擎操作方法及装置 - Google Patents
数据库支持多个存储引擎操作方法及装置 Download PDFInfo
- Publication number
- CN116303351A CN116303351A CN202310181551.1A CN202310181551A CN116303351A CN 116303351 A CN116303351 A CN 116303351A CN 202310181551 A CN202310181551 A CN 202310181551A CN 116303351 A CN116303351 A CN 116303351A
- Authority
- CN
- China
- Prior art keywords
- engine
- database
- execution engine
- ddl
- operation instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的数据库支持多个存储引擎操作方法及装置,属于数据处理技术领域,包括:接收对目标数据库的任一操作指令;基于目标数据库的DDL执行引擎的操作权限,对操作指令进行第一校验;在第一校验通过的情况下,基于DDL执行引擎支持的能力,对操作指令进行第二校验;在第二校验通过的情况下,调用DDL执行引擎根据操作指令对目标数据库进行操作。本发明提供的数据库支持多个存储引擎操作方法及装置,通过利用数据库和DDL执行引擎对操作指令进行校验,使得DDL执行引擎对数据的操作能够顺利完成,能够在不切换数据库的情况下,处理存储在不同存储引擎上的数据,简化了操作,进而提高了操作效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据库支持多个存储引擎操作方法、服务器、装置、存储介质及产品。
背景技术
数据库管理系统(DBMS)可用于存储、管理和查询数据。联机事务处理(On-LineTransaction Processing,OLTP)、联机分析处理(On-Line Analytical Processing,OLAP)是DBMS被用于管理在操作过程中产生的加载数据以及从该加载数据中提取数值的示例。每个系统可包括数据库和访问该数据库的执行引擎。
一般情况下,用户可能会使用多个数据库实现操作功能。
由于需要不同的数据库来满足使用需求,维护人员需要对应地频繁切换数据库对数据进行处理,非常不便且效率低下。
发明内容
本发明提供的数据库支持多个存储引擎操作方法、服务器、装置、存储介质及产品,用以解决现有技术中维护人员需要对应地频繁切换数据库对数据进行处理,非常不便且效率低下的缺陷,实现在不切换数据库的情况下,处理存储在不同存储引擎上的数据,简化了操作,进而提高了操作效率。
本发明提供一种数据库支持多个存储引擎操作方法,包括:
接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;
基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;
在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;
在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
根据本发明提供的一种数据库支持多个存储引擎操作方法,在所述基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验之前,还包括:
获取所述目标数据库支持的多个存储引擎的能力属性,以及所述多个存储引擎的数据目录的修改操作;
根据所有的能力属性,构建引擎能力集,并根据所有的修改操作,构建操作集;
基于所述引擎能力集和所述操作集,构建所述目标数据库的DDL执行引擎;
所述引擎能力集表征了所述DDL执行引擎支持的功能。
根据本发明提供的一种数据库支持多个存储引擎操作方法,所述获取所述目标数据库支持的多个存储引擎的能力属性,包括:
根据所述目标数据库的多个存储引擎的存储引擎支持功能,提取所述多个存储引擎的能力属性。
根据本发明提供的一种数据库支持多个存储引擎操作方法,所述基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验,包括:
解析所述操作指令,以确定所述操作指令的操作类型和操作动作;
根据所述操作类型,对所述操作指令进行第一校验;
在所述操作类型属于所述DDL执行引擎的任一操作权限的情况下,确定所述第一校验通过;
在所述操作类型不属于所述DDL执行引擎的操作权限的情况下,确定所述第一校验不通过。
根据本发明提供的一种数据库支持多个存储引擎操作方法,所述基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验,包括:
根据所述操作动作,对所述操作指令进行第二校验;
在所述DDL执行引擎的引擎能力集中任一能力属性支持所述操作动作的情况下,确定所述第二校验通过;
在所述DDL执行引擎的引擎能力集中的能力属性均不支持所述操作动作的情况下,确定所述第二校验不通过。
根据本发明提供的一种数据库支持多个存储引擎操作方法,所述调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作,包括:
根据所述操作指令,在所述DDL执行引擎的操作集中确定目标操作;
对所述目标数据库执行所述目标操作。
本发明还提供一种数据库服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库支持多个存储引擎操作方法。
本发明还提供一种数据库支持多个存储引擎操作装置,包括:
接收模块,用于接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;
第一校验模块,用于基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;
第二校验模块,用于在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;
调用模块,用于在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库支持多个存储引擎操作方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库支持多个存储引擎操作方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据库支持多个存储引擎操作方法。
本发明提供的数据库支持多个存储引擎操作方法、服务器、装置、存储介质及产品,通过利用数据库和DDL执行引擎对操作指令进行校验,使得DDL执行引擎对数据的操作能够顺利完成,能够在不切换数据库的情况下,处理存储在不同存储引擎上的数据,简化了操作,进而提高了操作效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据库支持多个存储引擎操作方法的流程示意图之一;
图2是本发明提供的DDL引擎能力模块构建方法的流程示意图;
图3是本发明提供的数据库支持多个存储引擎操作方法的流程示意图之二;
图4是本发明提供的数据库支持多个存储引擎操作装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面结合图1至图5描述本发明的实施例所提供的数据库支持多个存储引擎操作方法、服务器、装置、存储介质及产品。
本发明实施例提供的数据库支持多个存储引擎操作方法,执行主体可以为电子设备或者电子设备中能够实现该数据库支持多个存储引擎操作方法的软件或功能模块或功能实体,本发明实施例中电子设备包括但不限于数据库服务器。需要说明的是,上述执行主体并不构成对本发明的限制。
图1是本发明提供的数据库支持多个存储引擎操作方法的流程示意图之一,如图1所示,包括但不限于以下步骤:
首先,在步骤S1中,接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎。
操作指令可以用于对目标数据库进行增删改等操作。
进一步地,在步骤S2中,基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的。
对操作指令进行校验,判断目标数据库的操作权限是否允许该项操作。
可选地,所述基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验,包括:
解析所述操作指令,以确定所述操作指令的操作类型和操作动作;
根据所述操作类型,对所述操作指令进行第一校验;
在所述操作类型属于所述DDL执行引擎的任一操作权限的情况下,确定所述第一校验通过;
在所述操作类型不属于所述DDL执行引擎的操作权限的情况下,确定所述第一校验不通过。
具体地,对操作指令进行解析,可以得到操作指令的操作类型和操作动作。
例如,若操作类型为删除目标数据库存储在DDL执行引擎中A表中的a列,首先,需要对DDL执行引擎中的A表进行校验,判断A表中的a列是否存在,若a列存在,则该操作类型属于DDL执行引擎的操作权限,第一校验通过;若a列不存在,则该操作类型不属于DDL执行引擎的操作权限,第一校验不通过。
根据本发明提供的数据库支持多个存储引擎操作方法,利用存储在DDL操作引擎中的被操作对象对操作指令的操作类型进行初步校验,进而确保该操作指令是有效的。
可选地,在所述基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验之前,还包括:
获取所述目标数据库支持的多个存储引擎的能力属性,以及所述多个存储引擎的数据目录的修改操作;
根据所有的能力属性,构建引擎能力集,并根据所有的修改操作,构建操作集;
基于所述引擎能力集和所述操作集,构建所述目标数据库的DDL执行引擎;
所述引擎能力集表征了所述DDL执行引擎支持的功能。
修改操作可以为DDL handler操作。
在设计存储引擎的阶段,每个存储引擎所支持的功能,即为每个存储引擎的能力属性并提取;还会在设计阶段,确定该存储引擎的操作,其中将有可能会对目标数据库的数据目录进行修改的DDL handler操作作为修改动作提取出来。
将提取出来的能力属性和修改操作注册到DDL执行引擎中,使得DDL执行引擎具备目标数据库所支持的多个存储引擎的能力。根据不同存储引擎的支持能力情况,DDL语句涉及到的引擎能力主要概括为:不同引擎支持存储的数据类型,例如:int、char、bool和blob等;不同引擎支持的约束类型不同,例如,主键、外键、unique等;是否支持临时表、movepartition、修改数据类型、修改约束等。
可选地,所述获取所述目标数据库支持的多个存储引擎的能力属性,包括:
根据所述目标数据库的多个存储引擎的存储引擎支持功能,提取所述多个存储引擎的能力属性。
能力属性可以为目标数据库所支持的每个存储引擎类型中设置引擎所支持的能力。
DDL handler主要包括可能影响到存储的data操作的一些行为:对表的创建、删除或清空(Create/drop/truncate table),对表分区的添加、删除、清空或移动(Add/drop/Tuncate/move partition),对列的删除(Drop column)。
图2是本发明提供的DDL引擎能力模块构建方法的流程示意图,如图2所示,包括:
提取存储引擎类型A中设置引擎A所支持的能力,并提取存储引擎类型B中设置引擎B所支持的能力,构建引擎能力集;并提取引擎A和B的继承并实现DDL handler中所有操作,构建DDL handler操作。
根据引擎能力集和DDL handler操作,构建引擎能力模块。
根据本发明提供的数据库支持多个存储引擎操作方法,通过提取数据库支持的每个存储引擎的能力属性和修改操作,使得DDL执行引擎具备对多个存储引擎操作的能力,为替代多个存储引擎提供基础。
进一步地,在步骤S3中,在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验。
在被操作的目标数据库的操作权限支持操作指令的情况下,第一校验通过,进而利用DDL执行引擎中引擎能力集对操作指令进行第二校验,以判断引擎能力集中所支持的能力是否支持该操作指令。
可选地,所述基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验,包括:
根据所述操作动作,对所述操作指令进行第二校验;
在所述DDL执行引擎的引擎能力集中任一能力属性支持所述操作动作的情况下,确定所述第二校验通过;
在所述DDL执行引擎的引擎能力集中的能力属性均不支持所述操作动作的情况下,确定所述第二校验不通过。
利用DDL执行引擎中引擎能力集对操作指令的操作动作进行第二校验,以判断引擎能力集中所支持的能力是否支持该操作指令;
在DDL执行引擎的引擎能力集支持操作动作的情况下,确定第二校验通过;
在DDL执行引擎的引擎能力集不支持操作动作的情况下,确定第二校验不通过。
另外,在确定第二校验不通过的情况下,可以获取支持该操作指令的操作动作的引擎,并提取该存储引擎的能力属性,以及该存储引擎对目标数据库的数据目录的修改操作;将能力属性加入至DDL执行引擎的引擎能力集,将修改操作加入至DDL执行引擎的操作集,使得DDL执行引擎不仅能够代替目标数据库的多个存储引擎,还容易增加目标数据库的其他需求的存储引擎,实现了对DDL执行引擎的更新和升级,能够满足用户的需求。
每一个存储引擎均需要包含引擎能力和修改操作。在DDL执行引擎中,引擎能力集中所包含的是能够选择性地支持的能力;操作集中的DDL handler操作为必须能够实现的操作。
例如,若操作指令为创建表,在创建表的时候可以指定很多个约束条件,例如,unique必须是唯一的列,在对操作指令进行第二检验的过程中,检测存储引擎是否支持这些要求的操作,能否满足,插入之前检查一下表中已经插入的数据中有没有这个数据,能否实现unique这个操作,若能实现,则第二校验通过。
根据本发明提供的数据库支持多个存储引擎操作方法,通过利用DDL执行引擎对操作指令的操作动作进行再次校验,以确保DDL执行引擎能够顺利对数据库进行操作。
进一步地,在步骤S4中,在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
可选地,所述调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作,包括:
根据所述操作指令,在所述DDL执行引擎的操作集中确定目标操作;
对所述目标数据库执行所述目标操作。
例如,检查DDL执行引擎支持unique这个操作,若支持,则可以在操作集中调取对应的DDL handler操作来创建这个表。
不同的表有不同的创建方式,例如,设置路径到表名,或者两个存储引擎创建表时设置的路径相同,而设定的规则不同,必须自己实现,才能够调用DDL handler,最后才能创建成功。
本发明提供的数据库支持多个存储引擎操作方法,通过利用数据库和DDL执行引擎对操作指令进行校验,使得DDL执行引擎对数据的操作能够顺利完成,能够在不切换数据库的情况下,处理存储在不同存储引擎上的数据,简化了操作,进而提高了操作效率。
图3是本发明提供的数据库支持多个存储引擎操作方法的流程示意图之二,如图3所示,包括:
解析操作指令的抽象语法树(Abstract Syntax Tree,AST),可以得到操作指令的操作类型和操作动作;
根据操作类型,判断操作类型属于DDL执行引擎的操作权限,以确定是否符合基本规则,实现所述操作指令进行第一校验;
在操作类型属于DDL执行引擎的操作权限的情况下,确定符合基本规则,第一校验通过;
在操作类型不属于DDL执行引擎的操作权限的情况下,确定不符合基本规则,第一校验不通过;
在符合基本规则,第一校验通过的情况下,利用DDL执行引擎中引擎能力集对操作指令的操作动作进行第二校验,以判断引擎能力集中所支持的能力是否支持该操作指令;
若引擎能力集支持该操作指令,则引擎能力集能够实现,在DDL执行引擎的操作集中,获取操作指令对应的存储引擎的DDL handler操作,并利用该DDL handler操作执行该操作指令相应的操作;
若引擎能力集不支持该操作指令,则引擎能力集不能实现。
本发明还提供一种数据库服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一实施例所述数据库支持多个存储引擎操作方法。
本发明通过的数据库服务器,通过利用数据库和DDL执行引擎对操作指令进行校验,使得DDL执行引擎对数据的操作能够顺利完成,能够在不切换存储的情况下,处理存储在不同存储引擎上的数据,简化了操作,进而提高了操作效率。
下面对本发明提供的数据库支持多个存储引擎操作装置进行描述,下文描述的数据库支持多个存储引擎操作装置与上文描述的数据库支持多个存储引擎操作方法可相互对应参照。
图4是本发明提供的数据库支持多个存储引擎操作装置的结构示意图,如图4所示,包括:
接收模块401,用于接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;
第一校验模块402,用于基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;
第二校验模块403,用于在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;
调用模块404,用于在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
在装置运行的过程中,接收模块401,用于接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;第一校验模块402,用于基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;第二校验模块403,用于在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;调用模块404,用于在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
首先,接收模块401接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎。
操作指令可以用于对目标数据库进行增删改等操作。
进一步地,第一校验模块402基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的。
对操作指令进行校验,判断目标数据库的操作权限是否允许该项操作。
第一校验模块402,具体用于:
解析所述操作指令,以确定所述操作指令的操作类型和操作动作;
根据所述操作类型,对所述操作指令进行第一校验;
在所述操作类型属于所述DDL执行引擎的任一操作权限的情况下,确定所述第一校验通过;
在所述操作类型不属于所述DDL执行引擎的操作权限的情况下,确定所述第一校验不通过。
具体地,对操作指令进行解析,可以得到操作指令的操作类型和操作动作。
例如,若操作类型为删除目标数据库存储在DDL执行引擎中A表中的a列,首先,需要对DDL执行引擎中的A表进行校验,判断A表中的a列是否存在,若a列存在,则该操作类型属于DDL执行引擎的操作权限,第一校验通过;若a列不存在,则该操作类型不属于DDL执行引擎的操作权限,第一校验不通过。
根据本发明提供的数据库支持多个存储引擎操作装置,利用存储在DDL操作引擎中的被操作对象对操作指令的操作类型进行初步校验,进而确保该操作指令是有效的。
可选地,装置还包括构建模块,构建模块用于在所述基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验之前,执行以下操作:
获取所述目标数据库支持的多个存储引擎的能力属性,以及所述多个存储引擎的数据目录的修改操作;
根据所有的能力属性,构建引擎能力集,并根据所有的修改操作,构建操作集;
基于所述引擎能力集和所述操作集,构建所述目标数据库的DDL执行引擎;
所述引擎能力集表征了所述DDL执行引擎支持的功能。
修改操作可以为DDL handler操作。
在设计存储引擎的阶段,每个存储引擎所支持的功能,即为每个存储引擎的能力属性并提取;还会在设计阶段,确定该存储引擎的操作,其中将有可能会对目标数据库的数据目录进行修改的DDL handler操作作为修改动作提取出来。
将提取出来的能力属性和修改操作注册到DDL执行引擎中,使得DDL执行引擎具备目标数据库所支持的多个存储引擎的能力。根据不同存储引擎的支持能力情况,DDL语句涉及到的引擎能力主要概括为:不同引擎支持存储的数据类型,例如:int、char、bool和blob等;不同引擎支持的约束类型不同,例如,主键、外键、unique等;是否支持临时表、movepartition、修改数据类型、修改约束等。
可选地,构建模块,具体用于:
根据所述目标数据库的多个存储引擎的存储引擎支持功能,提取所述多个存储引擎的能力属性。
能力属性可以为目标数据库所支持的每个存储引擎类型中设置引擎所支持的能力。
DDL handler主要包括可能影响到存储的data操作的一些行为:对表的创建、删除或清空(Create/drop/truncate table),对表分区的添加、删除、清空或移动(Add/drop/Tuncate/move partition),对列的删除(Drop column)。
如图2所示,包括:
提取存储引擎类型A中设置引擎A所支持的能力,并提取存储引擎类型B中设置引擎B所支持的能力,构建引擎能力集;并提取引擎A和B的继承并实现DDL handler中所有操作,构建DDL handler操作。
根据引擎能力集和DDL handler操作,构建引擎能力模块。
根据本发明提供的数据库支持多个存储引擎操作装置,通过提取数据库支持的每个存储引擎的能力属性和修改操作,使得DDL执行引擎具备对多个存储引擎操作的能力,为替代多个存储引擎提供基础。
进一步地,第二校验模块403在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验。
在被操作的目标数据库的操作权限支持操作指令的情况下,第一校验通过,进而利用DDL执行引擎中引擎能力集对操作指令进行第二校验,以判断引擎能力集中所支持的能力是否支持该操作指令。
可选地,第二校验模块403,具体用于:
根据所述操作动作,对所述操作指令进行第二校验;
在所述DDL执行引擎的引擎能力集中任一能力属性支持所述操作动作的情况下,确定所述第二校验通过;
在所述DDL执行引擎的引擎能力集中的能力属性均不支持所述操作动作的情况下,确定所述第二校验不通过。
利用DDL执行引擎中引擎能力集对操作指令的操作动作进行第二校验,以判断引擎能力集中所支持的能力是否支持该操作指令;
在DDL执行引擎的引擎能力集支持操作动作的情况下,确定第二校验通过;
在DDL执行引擎的引擎能力集不支持操作动作的情况下,确定第二校验不通过。
另外,在确定第二校验不通过的情况下,可以获取支持该操作指令的操作动作的引擎,并提取该存储引擎的能力属性,以及该存储引擎对目标数据库的数据目录的修改操作;将能力属性加入至DDL执行引擎的引擎能力集,将修改操作加入至DDL执行引擎的操作集,使得DDL执行引擎不仅能够代替目标数据库的多个存储引擎,还容易增加目标数据库的其他需求的存储引擎,实现了对DDL执行引擎的更新和升级,能够满足用户的需求。
每一个存储引擎均需要包含引擎能力和修改操作。在DDL执行引擎中,引擎能力集中所包含的是能够选择性地支持的能力;操作集中的DDL handler操作为必须能够实现的操作。
例如,若操作指令为创建表,在创建表的时候可以指定很多个约束条件,例如,unique必须是唯一的列,在对操作指令进行第二检验的过程中,检测存储引擎是否支持这些要求的操作,能否满足,插入之前检查一下表中已经插入的数据中有没有这个数据,能否实现unique这个操作,若能实现,则第二校验通过。
根据本发明提供的数据库支持多个存储引擎操作装置,通过利用DDL执行引擎对操作指令的操作动作进行再次校验,以确保DDL执行引擎能够顺利对数据库进行操作。
进一步地,调用模块404在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
可选地,调用模块404,具体用于:
根据所述操作指令,在所述DDL执行引擎的操作集中确定目标操作;
对所述目标数据库执行所述目标操作。
例如,检查DDL执行引擎支持unique这个操作,若支持,则可以在操作集中调取对应的DDL handler操作来创建这个表。
不同的表有不同的创建方式,例如,设置路径到表名,或者两个存储引擎创建表时设置的路径相同,而设定的规则不同,必须自己实现,才能够调用DDL handler,最后才能创建成功。
本发明提供的数据库支持多个存储引擎操作装置,通过利用数据库和DDL执行引擎对操作指令进行校验,使得DDL执行引擎对数据的操作能够顺利完成,能够在不切换数据库的情况下,处理存储在不同存储引擎上的数据,简化了操作,进而提高了操作效率。
图5是本发明提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行数据库支持多个存储引擎操作方法,该方法包括:接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据库支持多个存储引擎操作方法,该方法包括:接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据库支持多个存储引擎操作方法,该方法包括:接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据库支持多个存储引擎操作方法,其特征在于,服务器,包括:
接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;
基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;
在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;
在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
2.根据权利要求1所述的数据库支持多个存储引擎操作方法,其特征在于,在所述基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验之前,还包括:
获取所述目标数据库支持的多个存储引擎的能力属性,以及所述多个存储引擎的数据目录的修改操作;
根据所有的能力属性,构建引擎能力集,并根据所有的修改操作,构建操作集;
基于所述引擎能力集和所述操作集,构建所述目标数据库的DDL执行引擎;
所述引擎能力集表征了所述DDL执行引擎支持的功能。
3.根据权利要求2所述的数据库支持多个存储引擎操作方法,其特征在于,所述获取所述目标数据库支持的多个存储引擎的能力属性,包括:
根据所述目标数据库的多个存储引擎的存储引擎支持功能,提取所述多个存储引擎的能力属性。
4.根据权利要求2或3所述的数据库支持多个存储引擎操作方法,其特征在于,所述基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验,包括:
解析所述操作指令,以确定所述操作指令的操作类型和操作动作;
根据所述操作类型,对所述操作指令进行第一校验;
在所述操作类型属于所述DDL执行引擎的任一操作权限的情况下,确定所述第一校验通过;
在所述操作类型不属于所述DDL执行引擎的操作权限的情况下,确定所述第一校验不通过。
5.根据权利要求4所述的数据库支持多个存储引擎操作方法,其特征在于,所述基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验,包括:
根据所述操作动作,对所述操作指令进行第二校验;
在所述DDL执行引擎的引擎能力集中任一能力属性支持所述操作动作的情况下,确定所述第二校验通过;
在所述DDL执行引擎的引擎能力集中的能力属性均不支持所述操作动作的情况下,确定所述第二校验不通过。
6.根据权利要求2所述的数据库支持多个存储引擎操作方法,其特征在于,所述调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作,包括:
根据所述操作指令,在所述DDL执行引擎的操作集中确定目标操作;
对所述目标数据库执行所述目标操作。
7.一种数据库服务器,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-6任一项所述数据库支持多个存储引擎操作方法。
8.一种数据库支持多个存储引擎操作装置,其特征在于,包括:
接收模块,用于接收对目标数据库的任一操作指令;所述目标数据库支持多个存储引擎;
第一校验模块,用于基于所述目标数据库的DDL执行引擎的操作权限,对所述操作指令进行第一校验;所述DDL执行引擎是基于所述多个存储引擎确定的;
第二校验模块,用于在所述第一校验通过的情况下,基于所述DDL执行引擎支持的能力,对所述操作指令进行第二校验;
调用模块,用于在所述第二校验通过的情况下,调用所述DDL执行引擎根据所述操作指令对所述目标数据库进行操作。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述数据库支持多个存储引擎操作方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述数据库支持多个存储引擎操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310181551.1A CN116303351A (zh) | 2023-02-20 | 2023-02-20 | 数据库支持多个存储引擎操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310181551.1A CN116303351A (zh) | 2023-02-20 | 2023-02-20 | 数据库支持多个存储引擎操作方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116303351A true CN116303351A (zh) | 2023-06-23 |
Family
ID=86825088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310181551.1A Pending CN116303351A (zh) | 2023-02-20 | 2023-02-20 | 数据库支持多个存储引擎操作方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303351A (zh) |
-
2023
- 2023-02-20 CN CN202310181551.1A patent/CN116303351A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7769789B2 (en) | High performant row-level data manipulation using a data layer interface | |
CN109144994A (zh) | 索引更新方法、系统及相关装置 | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
CN102236672A (zh) | 一种数据导入方法及装置 | |
US8667010B2 (en) | Database table partitioning allowing overlaps used in full text query | |
CN115145943B (zh) | 多数据源元数据快速比对方法、系统、设备和存储介质 | |
CN110046181B (zh) | 基于数据库分布式存储的数据路由的方法和装置 | |
CN117421302A (zh) | 一种数据处理方法及相关设备 | |
CN116303351A (zh) | 数据库支持多个存储引擎操作方法及装置 | |
WO2023081032A1 (en) | Query-based database redaction | |
CN115934272A (zh) | 一种联机批量任务处理方法及装置 | |
CN111488360B (zh) | 一种行级安全的实现方法、装置、设备及存储介质 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN109284278B (zh) | 基于数据分析技术的计算逻辑迁移方法及终端设备 | |
CN111680069B (zh) | 数据库访问方法及装置 | |
CN106708948A (zh) | 一种用主键唯一性实现事务操作的方法及装置 | |
CN114547050A (zh) | 批处理内容判重方法、系统、装置、终端设备及存储介质 | |
CN113342647A (zh) | 一种测试数据的生成方法及装置 | |
CN117093597B (zh) | 数据处理方法及装置 | |
CN116166671B (zh) | 一种内存数据库表格预关联的处理方法、系统和介质 | |
US20240054112A1 (en) | Database view generator for safe object names | |
CN116881222A (zh) | 一种数据库管理方法、装置、电子设备及可读存储介质 | |
CN117271509A (zh) | 一种基于Redis的账户分录明细表构建方法及系统 | |
CN116707893A (zh) | 网络攻击日志筛选方法、装置、设备及存储介质 | |
CN117539967A (zh) | 集合数据处理方法、中间件、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |