CN115309742A - 一种建表的方法、装置、电子设备和存储介质 - Google Patents
一种建表的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115309742A CN115309742A CN202210901450.2A CN202210901450A CN115309742A CN 115309742 A CN115309742 A CN 115309742A CN 202210901450 A CN202210901450 A CN 202210901450A CN 115309742 A CN115309742 A CN 115309742A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual table
- physical
- partition
- storage node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000005192 partition Methods 0.000 claims abstract description 156
- 230000004048 modification Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 230000003993 interaction Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供一种建表的方法、装置、电子设备和存储介质,所述方法包括:接收应用方针对自身维护的应用表所发起的虚拟表创建请求,所述虚拟表创建请求用于指示在第一物理表内创建与所述应用表对应的虚拟表;在任一存储节点维护的第一物理表分区内创建所述虚拟表,并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,所述虚拟表用于记录所述应用表对应的数据。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种建表的方法、装置、电子设备和存储介质。
背景技术
随着互联网Web2.0的兴起,NoSQL数据库(Not Only SQL,非关系型数据库)因具有易拓展、大数据量、高性能的特点,被广泛用于服务端海量数据的存储。目前基于NoSQL数据库的设计方案中,需要分别配置节点承担Master的角色和Worker的角色。其中,Master节点的主要任务是将数据库表分区调度至对应的worker节点上,以及记录数据库表所有的元数据。也就是说,数据库中每新增一张数据库表,均需要在Master节点上记录该数据库表对应的元数据。
然而,因为Master节点是单一节点,其所有表的元数据的存储量存在上限,那么,数据库表的数量也就存在上限,当数据库的数据库表的数量超过一定规模就不可避免的会遇到系统瓶颈,无法满足应用方对于表数量的需求。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种建表的方法、装置、电子设备和存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种建表的方法,所述方法包括:
接收应用方针对自身维护的应用表所发起的虚拟表创建请求,所述虚拟表创建请求用于指示在第一物理表内创建与所述应用表对应的虚拟表;
在任一存储节点维护的第一物理表分区内创建所述虚拟表,并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,所述虚拟表用于记录所述应用表对应的数据。
根据本说明书一个或多个实施例的第二方面,提出了一种建表的装置,所述装置包括:
接收单元,用于接收应用方针对自身维护的应用表所发起的虚拟表创建请求,所述虚拟表创建请求用于指示在第一物理表内创建与所述应用表对应的虚拟表;
创建单元,用于在任一存储节点维护的第一物理表分区内创建所述虚拟表,并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,所述虚拟表用于记录所述应用表对应的数据。
根据本说明书一个或多个实施例的第三方面,提出了一种分布式数据库系统,所述系统包括调度节点和存储节点,所述存储节点用于执行第一方面所述方法的步骤。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面所述方法的步骤。
根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述方法的步骤。
在本说明书所提供的技术方案中,当应用方针对自身维护的应用表需要在数据库中建表时,任一存储节点可以在维护的第一物理表分区内创建虚拟表,通过虚拟表来记录所述应用表对应的数据,而该第一物理表可以记录多张应用表对应的数据,从而数据库不再需要针对每一应用表创建独立的物理表,实现了数据库表数量的拓展,摆脱了数据库表的数量限制,满足应用方对于表数量的需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书一示例性实施例提供的一种分布式数据库系统的系统架构图;
图2是本说明书一示例性实施例提供的一种建表的方法的流程图;
图3是本说明书一示例性实施例提供的一种调度节点和存储节点数据存储的示意图;
图4是本说明书一示例性实施例提供的一种创建索引数据的示意图;
图5是本说明书一示例性实施例提供的一种创建虚拟表的交互流程图;
图6是本说明书一示例性实施例提供的一种虚拟表读写的交互流程图;
图7是本说明书一示例性实施例提供的一种虚拟表删除或修改的交互流程图;
图8是本说明书一示例性实施例提供的一种电子设备的示意结构图;
图9是本说明书一示例性实施例提供的一种建表的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
如前所述,随着互联网Web2.0的兴起,NoSQL数据库(Not Only SQL,非关系型数据库)因具有易拓展、大数据量、高性能的特点,被广泛用于服务端海量数据的存储。目前基于NoSQL数据库的设计方案中,需要分别配置节点承担Master的角色和Worker的角色。作为Master节点的主要任务为执行数据库表分区的调度任务,以及记录各个数据库表的元数据,所以Master节点也可以称之为调度节点。Worker节点的主要任务是接收由Master节点调度的数据库表分区,以及处理应用方对应的数据库表的读写请求,所以Worker节点也可以称之为分区节点。在NoSQL数据库中,Master节点是单一的节点,而worker节点的数量可以根据需求进行确定,例如可以是几十个、几千个等,也就是说,worker节点的数量可以根据需求无限拓展,因为worker节点的个数并不存在限制,所以,数据库表的数据量也不存在限制,即一张数据库表可以记录规模庞大的数据量。而Master节点可以用于存储数据库中所有表的元数据,该元数据也记录了该数据库表对应的分区范围。换言之,数据库中每新增一张数据库表,均需要在Master节点上存储该数据库表对应的元数据。
然而,虽然任一数据库表的数据量不存在限制,但是因为Master节点是单一节点,其所存储的数据库表的元数据的存储量存在上限,那么,数据库表的数量也就存在上限。当数据库的数据库表的数量超过一定量级就不可避免的会遇到系统瓶颈,无法满足应用方对于表数量的需求。
因此,为解决该问题,本说明书提出了一种建表的方法,利用了数据库表的数据量不存在限制的特点,当应用方针对自身维护的应用表需要在数据库中建表时,任一存储节点可以在维护的第一物理表分区内创建虚拟表,通过虚拟表来记录所述应用表对应的数据,而该第一物理表可以记录多张应用表对应的数据,从而数据库不再需要针对每一应用表创建独立的物理表,实现了数据库表数量的拓展,摆脱了数据库表的数量限制,满足应用方对于表数量的需求。
图1是本说明书一示例性实施例提供的一种分布式数据库系统的系统架构图,如图1所示,该系统架构可以包括调度节点101和多个存储节点(如存储节点102、存储节点103、存储节点104)。
调度节点101可以部署在包含一独立主机的物理服务器,或者该调度节点101可以部署在主机集群承载的虚拟服务器(如云服务器),本说明书对此不进行限制。调度节点101用于执行物理表分区的调度工作,使得任一存储节点可以维护对应的物理表分区,同时,该调度节点101可以记录各存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,从而该调度节点101可以基于虚拟表创建请求中包含的标识信息和调度节点101记录的元数据从多个存储节点中确定对应的存储节点。
存储节点(如图1所示实施例中的存储节点102、存储节点103或存储节点104)可以部署在包含一独立主机的物理服务器,或者上述存储节点可以部署在主机集群承载的虚拟服务器(如云服务器),本说明书对此不进行限制。需要说明的是,虽然在图1所示的实施例中,存储节点102部署在一独立主机的物理服务器,但在一些实施例中,该独立主机的物理服务器可以部署多个存储节点,例如该独立主机的物理服务器可以部署存储节点102和存储节点103,本说明书对此不进行限制。任一存储节点维护有由调度节点101调度的物理表分区,而存储节点可以根据应用方发起的虚拟表创建请求,在对应的存储节点维护的第一物理表分区内创建该虚拟表,并将虚拟表的元数据记录于存储节点维护的物理表分区中。从而实现虚拟表的创建,而该虚拟表用于记录应用表对应的数据。由此可知,本说明书所述的物理表不再仅仅记录一张应用表的数据,而是可以在该物理表内以虚拟表的形式,记录多张应用表的数据,且因为物理表的存储的数据量可以基于增加存储节点的个数进行无限制拓展,那么可以认为虚拟表的数量是无限制的,也就是说,数据库不再需要针对每一应用表在存储节点上创建独立的数据库表,而是利用虚拟表来记录应用表的数据,实现了数据库表数量的拓展,摆脱了数据库表的数量限制,满足应用方对于表数量的需求。需要说明的是,虽然在图1所示实施例中,该分布式数据库系统可以包括多个存储节点,并在这些存储节点上配置本说明书所述的建表的方法,从而使该分布式数据库实现表单数量的无限拓展;但在一些实施例中,如以NoSQL数据库为例,此时可以直接在NoSQL数据库中的分区节点上配置本说明书所述的建表的方法,从而使分区节点上可以维护物理表并创建对应的虚拟表,继而使得NoSQL数据库可以实现数据库表的无限制拓展,满足应用方对于NoSQL数据库表数量的需求。
基于上述数据库表创建系统的系统架构,当应用方针对自身维护的应用表需要在数据库中建表时,任一存储节点可以在维护的第一物理表分区内创建虚拟表,通过虚拟表来记录所述应用表对应的数据,而该第一物理表可以记录多张应用表对应的数据,从而数据库不再需要针对每一应用表创建独立的物理表,实现了数据库表数量的拓展,摆脱了数据库表的数量限制,满足应用方对于表数量的需求。
为了描述的方便,下面结合附图2至附图7对本说明书所述的一种建表的方法进行详细描述。
图2是本说明书一示例性实施例提供的一种建表的方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤202、接收应用方针对自身维护的应用表所发起的虚拟表创建请求,所述虚拟表创建请求用于指示在第一物理表内创建与所述应用表对应的虚拟表。
本说明书所述的物理表可以认为是一种数据库表,但是与应用方根据应用表而创建独立的物理表不同,本说明书所述的物理表不再是仅记录一张应用表的数据,而是将多张应用表以对应的多张虚拟表的形式记录于该物理表中,换言之,一张物理表可以记录多张应用表对应的数据,从而实现表单数量的无限制扩展。
如前所述,存储节点的数量可以根据实际需求进行拓展,其可以是几十个存储节点,也可以是上千个存储节点。所以,物理表的数据量也就不存在限制,那么对应的虚拟表的数量也就不存在限制。在此基础上,仅一张物理表即可实现本说明书所述的数据库表数目的拓展,此时,因为仅需一张物理表,则该虚拟表创建请求中也就不需要对应的物理表的参数标识,例如,物理表的ID。若因为应用方存在多张物理表的需求,需要在不同的物理表上创建对应的虚拟表,则此时该虚拟表创建请求可以包括对应的物理表的参数标识,例如,物理表的ID,从而该虚拟表创建请求可以指示在该物理表内创建与应用表对应的虚拟表。举例而言,存储节点维护有第一物理表分区(ID为1)和第二物理表分区(ID为2),则虚拟表创建请求中可以包含对应的物理表的ID,如ID为1,那么该虚拟表创建请求可以指示在第一物理表分区(ID为1)内创建与应用表对应的虚拟表。需要说明的是,如前所述的物理表的参数标识也可以根据功能划分,并不一定为物理表的ID,例如,根据功能具体划分为审批物理表、投票物理表等,从而根据功能标识来确定对应的物理表,本说明书对此不进行限制。本说明书所述的物理表的数量可以根据应用方的需求进行适应划分,从而满足应用方的实际需求,提升了数据库表的灵活性。在一实施例中,数据库可以包括多个存储节点,每个存储节点所维护的物理表分区存在对应的虚拟表分区范围;其中:上述虚拟表创建请求中包含所需创建的虚拟表的标识信息,且在该标识信息的取值被判定为属于所述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,所述虚拟表创建请求被发送至所述任一存储节点。仍以图1所示的实施例为例,现有三个存储节点,分别为存储节点102、存储节点103和存储节点104,而存储节点102所维护的物理表分区对应的虚拟表分区范围可以为[1,200],存储节点103所维护的物理表分区对应的虚拟表分区范围可以为(200,400],存储节点104所维护的物理表分区对应的虚拟表分区范围可以为(400,600],此时,该虚拟表创建请求中可以包含所需创建的虚拟表的标识信息,该标识信息的取值可以为40,那么由此可知,该标识信息的取值40可以被判定属于存储节点102,相对应的,该虚拟表创建请求可以被发送至该存储节点102。
在一实施例中,数据库可以包括调度节点,调度节点用于记录各存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,且该调度节点记录的元数据中包含相应物理表分区对应的虚拟表分区范围;其中,所述调度节点还用于:将上述虚拟表创建请求中包含的标识信息与自身记录的元数据进行比较,在确定所述虚拟表的标识信息的取值属于上述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,将上述任一存储节点的访问地址确定为所述虚拟表创建请求的发送地址。以图1所示的实施例为例,数据库包括调度节点101和存储节点102、存储节点103和存储节点104,调度节点101记录有上述三个存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,如存储节点102的访问地址为A,存储节点103的访问地址为B,存储节点104的访问地址为C,在虚拟表创建请求中包含的标识信息的取值为40的情况下,调度节点101可以将存储节点102的访问地址A确定为该虚拟表创建请求的发送地址,从而可以存储节点102创建对应的虚拟表,且调度节点仅需记录物理表的元数据,如前所述,一张物理表即可满足应用方的需求,所以调度节点的记录的数据量也大幅度减少。
为了减少对调度节点的访问次数,数据库还可以包括代理节点,该代理节点缓存有各存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,且该代理节点缓存的元数据中包含相应物理表分区对应的虚拟表分区范围;其中,该代理节点还用于:将上述虚拟表创建请求中包含的标识信息与自身记录的元数据进行比较,在确定所述虚拟表的标识信息的取值属于上述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,将该任一存储节点的访问地址确定为所述虚拟表创建请求的发送地址。通过代理节点的缓存功能,可以跳过对调度节点的访问,从而基于缓存的数据直接确定虚拟表创建请求的发送地址,可以有效地减轻调度节点的工作负载,且,因为缓存颗粒具有较快的数据交互速度,可以加快发送地址的确定速度,间接提高虚拟表的创建速度。
步骤204、在任一存储节点维护的第一物理表分区内创建所述虚拟表,并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,所述虚拟表用于记录所述应用表对应的数据。
元数据也称之为中介数据,其本质为描述数据的数据(data about data),元数据主要用于描述数据属性的信息,而针对虚拟表的元数据可以是用于描述该虚拟表的基本属性,例如虚拟表的主键列定义、主键类型(如int)等。
虚拟表创建请求可以包括虚拟表的标识信息,此时存储节点可以根据虚拟表的标识信息与其他虚拟表的标识信息的取值大小关系,在所述第一物理表分区内顺序创建该虚拟表,使所述虚拟表与其他虚拟表之间的排列顺序匹配于所述取值大小关系。例如,虚拟表的标识信息的取值为50,即虚拟表的ID为50,此时存储节点维护的物理表分区内存在其他虚拟表,虚拟表A和虚拟表B,其对应的标识信息的取值大小分别为2和60,那么可以将创建的虚拟表(即表ID为50)创建于虚拟表A和虚拟表B之间,最终的排列顺序为2、50和60,实现该虚拟表与其他虚拟表之间的排列顺序匹配于取值大小关系,即虚拟表的有序排列。
在一实施例中,可以将上述虚拟表的元数据记录于该元数据在上述第一物理表分区内对应的虚拟表中;如图3所示,图3是本说明书一示例性实施例提供的一种调度节点和存储节点数据存储的示意图。如图所示,存储节点102维护有第一物理表分区301,该第一物理表分区301对应的虚拟表分区范围为[1,5],存储节点103维护有第一物理表分区303,该第一物理表分区303对应的虚拟表分区范围为(5,10],存储节点104维护有第一物理表分区304,该第一物理表分区304对应的虚拟表分区范围为(10,20],此时,虚拟表1的元数据可以记录于该元数据在第一物理表分区301对应的虚拟表302中。通过将虚拟表的元数据记录于该元数据对应的虚拟表中,在需要用到元数据时,如进行读写操作时,不需要根据映射关系查找元数据,而是可以直接获取该元数据,加快了元数据的获取速度。当然,除了如图3所示实施例中,将虚拟表的元数据记录于该元数据在第一物理表分区内对应的虚拟表中,还可以将该虚拟表的元数据记录于上述第一物理表分区内区别于虚拟表的其他存储空间;或,将所述虚拟表的元数据记录于所述存储节点维护的第二物理表分区中。通过多样化的元数据记录方式,可以根据实际需求确定虚拟表元数据的记录位置,丰富了元数据记录位置的多样性,满足不同的需求。
在一实施例中,还可以创建所述虚拟表对应的索引数据,并将该索引数据记录于所述存储节点维护的物理表分区中。如图4所示,图4是本说明书一示例性实施例提供的一种创建索引数据的示意图。存储节点102可以在第一物理表分区301对应的虚拟表中,创建并记录该虚拟表对应的索引数据,从而可以快速查找所述虚拟表内记录的所述应用表对应的数据,加快数据查找的速度。当然,索引数据也可以如前所述,记录于第一物理表分区内区别于该虚拟表的其他存储空间;或,将索引数据记录于存储节点维护的第二物理表分区中,本说明书对此不进行限制。
虚拟表创建完成后,还可以执行对应的读写操作,即响应于接收到的针对该虚拟表的读写请求,对该虚拟表进行数据读写操作;和/或,响应于接收到的针对该虚拟表的删除或修改请求,从所述存储节点维护的物理表分区中查找该虚拟表对应的元数据,并根据查找到的元数据对所述虚拟表进行删除或修改。示例性的,假设需要对虚拟表的某一字段进行修改,而元数据显示该字段类型为int,但此时应用方修改请求中的数据类型为string,那么最终可以显示为修改失败,换言之,应用方在对虚拟表进行修改时,其需要符合该虚拟表对应元数据的要求。
为了更方便的理解本说明书所述的一种建表的方法,下面结合附图5、附图6和附图7以NoSQL数据库为例,对本说明书所述的建表的方法进行详细描述。
如图5所示,图5是本说明书一示例性实施例提供的一种创建虚拟表的交互流程图,代理节点可以向调度节点发送物理表创建请求,调度节点在接收到物理表创建请求后,会创建该物理表,如创建第一物理表,并记录该第一物理表分区的元数据,此时调度节点会将第一物理表分区调度至对应的分区节点。如,将第一物理表分区A调度至分区节点A,将第一物理表分区B调度至分区节点B,将第一物理表分区C调度至分区节点C,该调度节点返回应用方物理表创建结果,其可以为物理表创建成功。当然,可能由于网络波动等因素,调度节点无法完成物理表创建或物理表分区的调度工作,那么调度节点可以返回物理表创建失败的提示信息,并反馈失败原因,从而可以在排除故障后,再次创建物理表。在物理表创建完成后,即可执行虚拟表创建工作,代理节点向对应的分区节点发送虚拟表创建请求,例如,该虚拟表创建请求中包含的标识信息表明该虚拟表的表ID为10,那么该代理节点可以向该标识信息的取值属于任一分区节点对应的虚拟表分区范围发送该虚拟表创建请求,如代理节点向分区节点A发送该虚拟表创建请求。其中,分区节点的访问地址的确定方法可以如前所述,即其可以通过调度节点记录的元数据和各分区节点的访问地址确定对应的分区节点的访问地址,或通过代理节点缓存的各分区节点维护的物理表分区对应的元数据和各分区节点的访问地址确定对应的分区节点的访问地址。从而跳过对调度节点的访问。分区节点在接收应用方针对自身维护的应用表所发起的虚拟表创建请求后,即可在其维护的第一物理表分区内创建该虚拟表,并将该虚拟表的元数据记录于所述任一分区节点维护的物理表分区中,上述虚拟表用于记录所述应用表对应的数据,至此,成功在分区节点维护的物理表分区中,创建该虚拟表。
在虚拟表创建成功后,可以对虚拟表执行读写操作,如图6所示,图6是本说明书一示例性实施例提供的一种虚拟表读写的交互流程图,针对虚拟表的读写请求,分区节点响应于接收到的针对所述虚拟表的读写请求,可以对所述虚拟表进行数据读写操作。需要说明的是,分区节点的访问地址的确定依旧可以通过如前所述的两种方式,即根据调度节点记录的元数据和各分区节点的访问地址或根据代理节点缓存的元数据和各分区节点的访问地址,其具体确定方式可以参见上述相关内容,本说明书在此不再赘述。
在虚拟表创建成功后,可以对虚拟表执行删除或修改操作,如图7所示,图7是本说明书一示例性实施例提供的一种虚拟表删除或修改的交互流程图,针对虚拟表的删除或修改请求,分区节点响应于接收到的针对所述虚拟表的删除或修改请求,从该分区节点维护的物理表分区中查找所述虚拟表对应的元数据,并根据查找到的元数据对所述虚拟表进行删除或修改。需要说明的是,分区节点的访问地址的确定依旧可以通过上述两种方式,即根据调度节点记录元数据和各分区节点的访问地址或根据代理节点缓存的元数据和各分区节点的访问地址,本说明书对此不进行限制。
由上述附图5至附图7中的NoSQL数据库为例可知,当应用方针对自身维护的应用表需要在NoSQL数据库中建表时,本说明书所述的任一分区节点可以在维护的第一物理表分区内创建虚拟表,通过虚拟表来记录所述应用表对应的数据,而该第一物理表可以记录多张应用表对应的数据,从而NoSQL数据库不再需要针对每一应用表创建独立的物理表,实现了NoSQL数据库表数量的拓展,摆脱了数据库表的数量限制,满足应用方对于表数量的需求。
相应于上述方法的实施例,本说明书还提供了装置的实施例。
图8是一示例性实施例提供的一种电子设备的示意结构图,请参考图8,在硬件层面,该电子设备包括处理器801、网络接口802、内存803、非易失性存储器804以及内部总线805,当然还可能包括其他功能所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图9是一示例性实施例提供的一种建表的装置的框图,如图9所示,该装置包括:
接收单元901,用于接收应用方针对自身维护的应用表所发起的虚拟表创建请求,所述虚拟表创建请求用于指示在第一物理表内创建与所述应用表对应的虚拟表;
创建单元902,用于在任一存储节点维护的第一物理表分区内创建所述虚拟表,并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,所述虚拟表用于记录所述应用表对应的数据。
可选地,所述虚拟表创建请求包括所述虚拟表的标识信息,所述创建单元902具体用于:
根据所述虚拟表的标识信息与其他虚拟表的标识信息的取值大小关系,在所述第一物理表分区内顺序创建所述虚拟表,使所述虚拟表与其他虚拟表之间的排列顺序匹配于所述取值大小关系。
可选地,所述任一存储节点所属的数据库包括多个存储节点,每个存储节点所维护的物理表分区存在对应的虚拟表分区范围;其中:所述虚拟表创建请求中包含所需创建的虚拟表的标识信息,且在该标识信息的取值被判定为属于所述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,所述虚拟表创建请求被发送至所述任一存储节点。
可选地,所述数据库包括调度节点,所述调度节点用于记录各存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,且所述调度节点记录的元数据中包含相应物理表分区对应的虚拟表分区范围;其中,所述调度节点还用于:将所述虚拟表创建请求中包含的标识信息与自身记录的元数据进行比较,在确定所述虚拟表的标识信息的取值属于所述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,将所述任一存储节点的访问地址确定为所述虚拟表创建请求的发送地址;或者,
所述数据库包括所述调度节点和代理节点,所述代理节点缓存有各存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,且所述代理节点缓存的元数据中包含相应物理表分区对应的虚拟表分区范围;其中,所述代理节点还用于:将所述虚拟表创建请求中包含的标识信息与自身记录的元数据进行比较,在确定所述虚拟表的标识信息的取值属于所述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,将所述任一存储节点的访问地址确定为所述虚拟表创建请求的发送地址。
可选地,所述创建单元902具体用于:
将所述虚拟表的元数据记录于该元数据在所述第一物理表分区内对应的虚拟表中;或,将所述虚拟表的元数据记录于所述第一物理表分区内区别于虚拟表的其他存储空间;或,将所述虚拟表的元数据记录于所述存储节点维护的第二物理表分区中。
可选地,所述装置还包括:
索引数据创建单元903,用于创建所述虚拟表对应的索引数据,并将该索引数据记录于所述存储节点维护的物理表分区中。
可选地,所述装置还包括:
虚拟表读写单元904,用于响应于接收到的针对所述虚拟表的读写请求,对所述虚拟表进行数据读写操作;和/或,响应于接收到的针对所述虚拟表的删除或修改请求,从所述存储节点维护的物理表分区中查找所述虚拟表对应的元数据,并根据查找到的元数据对所述虚拟表进行删除或修改。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在相关方法的实施例中进行了详细描述,此处将不做详细阐述说明。
由以上本说明书提供的技术方案可见,当应用方针对自身维护的应用表需要在数据库中建表时,本说明书所述的任一存储节点可以在维护的第一物理表分区内创建虚拟表,通过虚拟表来记录所述应用表对应的数据,而该第一物理表可以记录多张应用表对应的数据,从而数据库不再需要针对每一应用表创建独立的数据库表,实现了数据库表数量的拓展,摆脱了数据库表的数量限制,满足应用方对于表数量的需求。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (11)
1.一种建表的方法,所述方法包括:
接收应用方针对自身维护的应用表所发起的虚拟表创建请求,所述虚拟表创建请求用于指示在第一物理表内创建与所述应用表对应的虚拟表;
在任一存储节点维护的第一物理表分区内创建所述虚拟表,并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,所述虚拟表用于记录所述应用表对应的数据。
2.根据权利要求1所述的方法,所述虚拟表创建请求包括所述虚拟表的标识信息,所述在所述任一存储节点维护的第一物理表分区内创建所述虚拟表,包括:
根据所述虚拟表的标识信息与其他虚拟表的标识信息的取值大小关系,在所述第一物理表分区内顺序创建所述虚拟表,使所述虚拟表与其他虚拟表之间的排列顺序匹配于所述取值大小关系。
3.根据权利要求1所述的方法,所述任一存储节点所属的数据库包括多个存储节点,每个存储节点所维护的物理表分区存在对应的虚拟表分区范围;其中:
所述虚拟表创建请求中包含所需创建的虚拟表的标识信息,且在该标识信息的取值被判定为属于所述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,所述虚拟表创建请求被发送至所述任一存储节点。
4.根据权利要求3所述的方法,所述数据库包括调度节点,所述调度节点用于记录各存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,且所述调度节点记录的元数据中包含相应物理表分区对应的虚拟表分区范围;其中,所述调度节点还用于:将所述虚拟表创建请求中包含的标识信息与自身记录的元数据进行比较,在确定所述虚拟表的标识信息的取值属于所述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,将所述任一存储节点的访问地址确定为所述虚拟表创建请求的发送地址;或者,
所述数据库包括所述调度节点和代理节点,所述代理节点缓存有各存储节点维护的物理表分区对应的元数据和各存储节点的访问地址,且所述代理节点缓存的元数据中包含相应物理表分区对应的虚拟表分区范围;其中,所述代理节点还用于:将所述虚拟表创建请求中包含的标识信息与自身记录的元数据进行比较,在确定所述虚拟表的标识信息的取值属于所述任一存储节点所维护的物理表分区对应的虚拟表分区范围的情况下,将所述任一存储节点的访问地址确定为所述虚拟表创建请求的发送地址。
5.根据权利要求1所述的方法,所述并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,包括:
将所述虚拟表的元数据记录于该元数据在所述第一物理表分区内对应的虚拟表中;或,
将所述虚拟表的元数据记录于所述第一物理表分区内区别于虚拟表的其他存储空间;或,
将所述虚拟表的元数据记录于所述存储节点维护的第二物理表分区中。
6.根据权利要求1所述的方法,所述方法还包括:
创建所述虚拟表对应的索引数据,并将该索引数据记录于所述存储节点维护的物理表分区中。
7.根据权利要求1所述的方法,所述方法还包括:
响应于接收到的针对所述虚拟表的读写请求,对所述虚拟表进行数据读写操作;和/或,
响应于接收到的针对所述虚拟表的删除或修改请求,从所述存储节点维护的物理表分区中查找所述虚拟表对应的元数据,并根据查找到的元数据对所述虚拟表进行删除或修改。
8.一种建表的装置,所述装置包括:
接收单元,用于接收应用方针对自身维护的应用表所发起的虚拟表创建请求,所述虚拟表创建请求用于指示在第一物理表内创建与所述应用表对应的虚拟表;
创建单元,用于在任一存储节点维护的第一物理表分区内创建所述虚拟表,并将所述虚拟表的元数据记录于所述任一存储节点维护的物理表分区中,所述虚拟表用于记录所述应用表对应的数据。
9.一种分布式数据库系统,所述系统包括调度节点和存储节点,所述存储节点用于执行如权利要求1至7中任一所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至7中任一所述方法的步骤。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901450.2A CN115309742A (zh) | 2022-07-28 | 2022-07-28 | 一种建表的方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901450.2A CN115309742A (zh) | 2022-07-28 | 2022-07-28 | 一种建表的方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115309742A true CN115309742A (zh) | 2022-11-08 |
Family
ID=83857864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210901450.2A Pending CN115309742A (zh) | 2022-07-28 | 2022-07-28 | 一种建表的方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115309742A (zh) |
-
2022
- 2022-07-28 CN CN202210901450.2A patent/CN115309742A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
US9043334B2 (en) | Method and system for accessing files on a storage system | |
US9424274B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
CN110109873B (zh) | 一种用于消息队列的文件管理方法 | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN102779138B (zh) | 实时数据的硬盘存取方法 | |
US7519636B2 (en) | Key sequenced clustered I/O in a database management system | |
CN103218365A (zh) | 一种SSTable文件数据处理方法及其系统 | |
CN106874459A (zh) | 流式数据存储方法及装置 | |
CN104424219A (zh) | 一种数据文件的管理方法及装置 | |
CN105095247A (zh) | 符号数据分析方法和系统 | |
CN111930716A (zh) | 一种数据库扩容方法、装置及系统 | |
CN113760847A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
CN111459884A (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
JP2015528957A (ja) | 分散ファイルシステム、ファイルアクセス方法及びクライアントデバイス | |
US20170270149A1 (en) | Database systems with re-ordered replicas and methods of accessing and backing up databases | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
CN106503186A (zh) | 一种数据管理方法、客户端及系统 | |
CN111708895B (zh) | 一种知识图谱系统的构建方法及装置 | |
KR20150097973A (ko) | 지도 서비스를 위한 타일 이미지 갱신 시스템 및 그 방법 | |
WO2010118438A1 (en) | In-memory data optimization system | |
CN115309742A (zh) | 一种建表的方法、装置、电子设备和存储介质 | |
CN102622284B (zh) | 面向海量存储系统的数据异步复制方法 | |
CN104572737A (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 |