首页> 中国专利> 分区表建立、针对分区表的数据写入、读取方法及装置

分区表建立、针对分区表的数据写入、读取方法及装置

摘要

本说明书实施例提供一种分区表建立、针对分区表的数据写入、读取方法及装置,在分区表建立方法中,接收第一建表指令,其中至少包括待创建的第一分区表的各属性列以及分区规则。第一分区表为无主键表,分区规则至少指示,将第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键以及分区的第一数目。基于各属性列创建第一分区表,并根据分区规则创建对应的第一数目个逻辑分区以及各逻辑分区分别对应的物理分区,该物理分区具有全局唯一的分区标识。针对第一分区表添加合成主键作为隐藏主键,该合成主键由物理分区的分区标识和分区级的自增长标识构成。

著录项

  • 公开/公告号CN114490674B

    专利类型发明专利

  • 公开/公告日2022-07-05

    原文格式PDF

  • 申请/专利权人 北京奥星贝斯科技有限公司;

    申请/专利号CN202210402300.7

  • 申请日2022-04-18

  • 分类号G06F16/22(2019.01);

  • 代理机构北京亿腾知识产权代理事务所(普通合伙) 11309;北京亿腾知识产权代理事务所(普通合伙) 11309;

  • 代理人张明;周良玉

  • 地址 100102 北京市朝阳区望京东园四区13号楼-4至33层101内23层201室

  • 入库时间 2022-08-23 13:58:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-05

    授权

    发明专利权授予

  • 2022-05-31

    实质审查的生效 IPC(主分类):G06F16/22 专利申请号:2022104023007 申请日:20220418

    实质审查的生效

  • 2022-05-13

    公开

    发明专利申请公布

说明书

技术领域

本说明书一个或多个实施例涉及数据库领域,尤其涉及一种分区表建立、针对分区表的数据写入、读取方法及装置。

背景技术

目前,很多现代数据库均通过日志结构的合并树(The Log-Structured-MergeTree,LSM-tree)来存储数据。在LSM-tree的存储架构中,数据是按照键值(Key-Value)对的方式组织的,这里的键(Key)通常取自数据表的主键。然而,数据库中又不乏存在一些无主键表,对于该无主键表中的数据,如何基于LSM-tree实现存储就成为要解决的问题。

发明内容

本说明书一个或多个实施例描述了一种分区表建立、针对分区表的数据写入、读取方法及装置,可以针对无主键表生成有效的主键,进而可以实现通过LSM-Tree来存储数据。

第一方面,提供了一种分区表建立方法,包括:

接收第一建表指令,其中至少包括待创建的第一分区表的各属性列以及分区规则;所述第一分区表为无主键表,所述分区规则至少指示,将所述第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键以及分区的第一数目;

基于所述各属性列创建所述第一分区表,并根据所述分区规则创建对应的第一数目个逻辑分区以及各逻辑分区分别对应的物理分区;所述物理分区具有全局唯一的分区标识;

针对所述第一分区表添加合成主键作为隐藏主键;所述合成主键由物理分区的分区标识和分区级的自增长标识构成。

第二方面,提供了一种针对分区表的数据写入方法,包括:

获取待写入第一分区表的第一数据行,以及所述第一分区表的当前分区规则;所述当前分区规则至少指示,将所述第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键及分区的第一数目;

根据所述第一数据行的对应于所述分区键的第一属性值,以及当前分区规则,确定所述第一数据行所属的目标逻辑分区;

根据逻辑分区与物理分区的映射关系,确定对应于所述目标逻辑分区的目标物理分区;所述目标物理分区具有全局唯一的分区标识;

将所述目标物理分区的分区标识以及所述第一数据行的自增长标识作为合成主键值,添加到所述第一数据行中;

将添加合成主键值后的第一数据行存储到所述第一分区表中。

第三方面,提供了一种针对分区表的数据读取方法,包括:

获取待读取的第一数据行的对应于分区键的第一属性值;

至少根据所述分区键的第一属性值,确定所述第一数据行的合成主键值;所述合成主键值包括所述第一数据行所属的目标物理分区的分区标识,以及所述第一数据行的自增长标识;所述目标物理分区具有全局唯一的分区标识;

基于所述合成主键值,从所述第一分区表中读取所述第一数据行。

第四方面,提供了一种分区表建立装置,包括:

接收单元,用于接收第一建表指令,其中至少包括待创建的第一分区表的各属性列以及分区规则;所述第一分区表为无主键表,所述分区规则至少指示,将所述第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键以及分区的第一数目;

创建单元,用于基于所述各属性列创建所述第一分区表,并根据所述分区规则创建对应的第一数目个逻辑分区以及各逻辑分区分别对应的物理分区;所述物理分区具有全局唯一的分区标识;

添加单元,用于针对所述第一分区表添加合成主键作为隐藏主键;所述合成主键由物理分区的分区标识和分区级的自增长标识构成。

第五方面,提供了一种针对分区表的数据写入装置,包括:

获取单元,用于获取待写入第一分区表的第一数据行,以及所述第一分区表的当前分区规则;所述当前分区规则至少指示,将所述第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键及分区的第一数目;

确定单元,用于根据所述第一数据行的对应于所述分区键的第一属性值,以及当前分区规则,确定所述第一数据行所属的目标逻辑分区;

所述确定单元,还用于根据逻辑分区与物理分区的映射关系,确定对应于所述目标逻辑分区的目标物理分区;所述目标物理分区具有全局唯一的分区标识;

添加单元,用于将所述目标物理分区的分区标识以及所述第一数据行的自增长标识作为合成主键值,添加到所述第一数据行中;

存储单元,用于将添加合成主键值后的第一数据行存储到所述第一分区表中。

第六方面,提供了一种针对分区表的数据读取装置,包括:

获取单元,用于获取待读取的第一数据行的对应于分区键的第一属性值;

确定单元,用于至少根据所述分区键的第一属性值,确定所述第一数据行的合成主键值;所述合成主键值包括所述第一数据行所属的目标物理分区的分区标识,以及所述第一数据行的自增长标识;所述目标物理分区具有全局唯一的分区标识;

读取单元,用于基于所述合成主键值,从所述第一分区表中读取所述第一数据行。

第七方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一、第二或第三方面的方法。

第八方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一、第二或第三方面的方法。

本说明书一个或多个实施例提供的分区表建立、针对分区表的数据写入、读取方法及装置,对于无主键表,为其添加合成主键作为隐藏主键,这里的合成主键由物理分区的分区标识和分区级的自增长标识构成。由此可以解决无主键表中的数据无法通过LSM-Tree进行存储的问题。此外,由于物理分区的分区标识全局唯一,从而可以确保在针对无主键表的分区(包括逻辑分区和物理分区)执行分区合并、分区交换等分区管理操作之后,合成主键的唯一性。

附图说明

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本说明书披露的一个实施例的实施场景示意图;

图2示出根据一个实施例的分区表建立方法流程图;

图3示出添加合成主键后的第一分区表示意图;

图4示出第一分区表的索引表示意图;

图5示出根据一个实施例的针对分区表的数据写入方法流程图;

图6示出根据一个实施例的针对分区表的数据读取方法流程图;

图7示出根据一个实施例的分区表建立装置示意图;

图8示出根据一个实施例的针对分区表的数据写入装置示意图;

图9示出根据一个实施例的针对分区表的数据读取装置示意图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

目前,传统数据库采用的存储架构通常不要求数据表具有主键。数据表的索引表中记录的是索引列以及数据行的行标识(ROWID)。然而,在针对数据表进行分区分裂、分区合并以及分区交换之后,数据行的行标识会发生变化,这使得索引表失效,需要重新构建。

在MySQL InnoDB中,针对无主键表,通常会为其添加一个表级的自增列作为隐藏主键。然而,在针对无主键表进行分区交换(通常在两个表之间进行)时,可能会存在表内主键冲突(或者不唯一)的问题,进而需要重写数据。可见,该种添加隐藏主键的方法不支持分区交换。

以TiDB、CockroachDB为代表的分布式数据库,通过LSM-Tree来存储数据,其添加隐藏主键的方法如下:

在TiDB中,针对无主键表,也会为其添加一个隐藏的自增列作为隐藏主键,这个自增列可以根据一个配置项来控制跨越的分区数量。这里的自增列可以为表级的,也可以为分区级的。然而如果配置为表级的,那么可能会存在分区交换后,主键冲突的问题。如果配置为分区级的,那么可能会存在分区合并后,分区内存在两个主键相同的问题。可见,该种添加主键的方法不能同时支持分区合并和分区交换。

在CockroachDB中,针对无主键表,将SQL执行节点ID和时间戳作为隐藏主键。该种方法在一些极端场景下无法保证主键唯一性。例如,在短时间内生成的大量隐藏主键。而且,在将SQL执行节点ID作为隐藏主键的一部分时,在集群运行时间较长,宕机重启比较多的场景中,SQL执行节点ID可能会超过无主键表的隐藏主键可以保存的范围。

由于上述各种添加隐藏主键的方法均存在相应的缺点,为此,本申请的发明人提出,对于无主键表,为其添加合成主键作为隐藏主键,这里的合成主键由物理分区的分区标识和分区级的自增长标识构成。由此可以解决无主键表中的数据无法通过LSM-Tree进行存储的问题。此外,由于物理分区的分区标识全局唯一,从而可以确保在针对无主键表的分区(包括逻辑分区和物理分区)执行分区合并、分区交换等分区管理操作之后,合成主键的唯一性。也即本方案,不需要重写数据,即可实现针对无主键表的分区管理操作。

图1为本说明书披露的一个实施例的实施场景示意图。图1中,数据库系统可以接收用于创建分区表的SQL语句。该SQL语句可以指示待创建的分区表t1的属性列C1和C2以及分区规则。其中,分区规则可以指示,将分区表t1中有待写入的数据行划分为逻辑分区的分区键C1以及分区的数目:4。此外,还可以指示hash分区法。

执行上述SQL语句,以创建分区表t1,并针对分区表t1,创建对应的4个逻辑分区以及4个物理分区。在创建分区表t1之后,可以为其添加合成主键作为隐藏主键,该合成主键由物理分区的分区标识和分区级的自增长标识构成。

应理解,图1只是一种示例性说明,在实际应用中,上述分区方法也可以为Range分区法等,且分区的数目也可以其它数目,本说明书对此不作限定。

图2示出根据一个实施例的分区表建立方法流程图。该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图2所示,所述方法可以包括如下步骤。

步骤202,接收第一建表指令,其中至少包括待创建的第一分区表的各属性列以及分区规则。

这里的第一建表指令,可以为结构化查询语言(Structured Query Language,SQL)语句,也可以为诸如Transact-SQL等具有与SQL类似功能的其他数据库语言的语句。

上述第一分区表是指可以划分为多个逻辑分区的数据表,其中的每个逻辑分区对应于第一分区表的一个子集,且针对各逻辑分区用户可操作。在本说明书实施例中,上述第一分区表为无主键表。

上述分区规则至少指示,将第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键以及分区(包括逻辑分区和物理分区)的第一数目。其中的分区键通常由分区表的各属性列中的至少一列构成。

此外,分区规则还可以指示分区方法,这里的分区方法可以包括以下中的一种:哈希(Hash)分区法、区间(Range)分区法以及列表(list)分区法等。

其中,在分区方法为Range分区法时,分区规则还可以指示对应于每个分区的区间范围等。在分区方法为list分区法时,分区规则还可以指示对应于每个分区的属性值的集合等。

步骤204,基于各属性列创建第一分区表,并根据分区规则创建对应的第一数目个逻辑分区以及各逻辑分区分别对应的物理分区。

这里的物理分区与逻辑分区一一对应。与逻辑分区不同的是,物理分区是实际存储数据的分区,即用于存储划分到对应逻辑分区的子集中的数据,其具有全局唯一的分区标识,且对于用户不可见。

此外,还可以建立逻辑分区与物理分区之间的映射关系。以图1为例来说,所建立的映射关系可以如表1所示。

表1

步骤206,针对第一分区表添加合成主键作为隐藏主键,该合成主键由物理分区的分区标识和分区级的自增长标识构成。

其中,上述分区级的自增长标识,通过在分区内按照自增编号方式依次对划分到该分区内的数据进行编号得到。

图3示出添加合成主键后的第一分区表示意图。图3中,真实列1-真实列N为第一分区表中的各属性列,分区标识和自增长标识为针对第一分区表添加的合成主键。

需要说明,由于物理分区的分区标识是全局唯一的,因此,在将物理分区的分区标识和分区级的自增长标识作为合成主键时,可以确保在针对第一分区表执行分区合并、分区交换或者分区分裂等分区管理操作的情况下,主键的唯一性或者有效性。应理解,在主键不失效的情况下,就可以不用重写数据。也就是说,针对上述第一分区表,不需要重写数据,即可实现对应的分区管理操作。

此外,在针对无主键表(即第一分区表)添加合成主键之后,可以解决无主键表中的数据无法通过LSM-Tree进行存储的问题。

还需要说明,在实际应用中,上述第一建表指令还可以包括第一分区表的索引列。在第一建表指令还包括索引列的情况下,还可以基于第一分区表的索引列、合成主键(也即隐藏主键)以及分区键,创建对应于第一分区表的索引表。

图4示出第一分区表的索引表示意图。应理解,基于图4中的分区键(也称主表分区键)和合成主键可以在第一分区表中唯一地确定一个数据行。具体地,基于分区键可以在第一分区表中定位出某个分区,在该分区内,基于合成主键可以唯一地确定出一个数据行。

应理解,图4只是一种示例性说明,在实际应用中,图4示出的索引表中还可以包括用于对索引表划分分区的分区键(索引表分区键)等,本说明书对此不作限定。

另外,由于在对第一分区表执行分区管理操作的情况下,第一分区表的合成主键也可以始终保持唯一,从而在将该合成主键添加到索引表时,可以确保索引列的有效性。也就是说,在本方案中,在针对第一分区表执行分区合并和分区分裂时,无需重建索引,由此可以节约计算资源。

以上是针对第一分区表建立方法的说明,应理解,在建立第一分区表后,可以向其中写入数据,以下对数据的写入方法进行说明。

图5示出根据一个实施例的针对分区表的数据写入方法流程图。该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图5所示,所述方法可以包括如下步骤。

步骤502,获取待写入第一分区表的第一数据行,以及第一分区表的当前分区规则。

需要说明,上述当前分区规则可以是第一分区表对应的建表指令中携带的初始的分区规则,也可以是在针对第一分区表执行分区合并、分区分裂或者分区交换等分区管理操作后,修改的分区规则。

上述当前分区规则至少指示,将第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键及分区的第一数目。

此外,上述当前分区规则还可以指示分区方法,这里的分区方法可以包括以下中的一种:哈希(Hash)分区法、区间(Range)分区法以及列表(list)分区法等。

在分区方法为Range分区法时,当前分区规则还可以指示对应于每个分区的当前区间范围等。这里的当前区间范围可以是指初始的区间范围或者修改的区间范围(执行分区管理操作时修改)。在分区方法为list分区法时,当前分区规则还可以指示对应于每个分区的当前属性值的集合等。

步骤504,根据第一数据行的对应于分区键的第一属性值,以及当前分区规则,确定第一数据行所属的目标逻辑分区。

以分区方法为Hash分区法为例,可以将上述第一属性值对分区的第一数目取模,得到取模结果。将第一分区表对应的各逻辑分区中,对应分区编号与取模结果相匹配的逻辑分区作为第一数据行所属的目标逻辑分区。

再以分区方法为Range分区法为例,可以从第一分区表对应的各逻辑分区中,选取出第一属性值落入到对应区间范围的逻辑分区,将选取出的逻辑分区作为第一数据行所属的目标逻辑分区。

步骤506,根据逻辑分区与物理分区的映射关系,确定对应于目标逻辑分区的目标物理分区,该目标物理分区具有全局唯一的分区标识。

比如,基于如表1示出的映射关系,就可以确定出对应的目标物理分区。

步骤508,将目标物理分区的分区标识以及第一数据行的自增长标识作为合成主键值,添加到第一数据行中。

其中,第一数据行的自增长标识是通过将对应于目标逻辑分区的当前数据编号加1得到的。举例来说,假设第一分区表中已划分到目标逻辑分区的数据行为5个,且第5个数据行的数据编号为:005,那么第一数据行的自增长标识可以为:006。

步骤510,将添加合成主键值后的第一数据行存储到第一分区表中。

应理解,在为第一数据行添加合成主键值(即隐藏主键或合成主键的取值)之后,就可以通过LSM-tree来存储该第一数据行。此外,由于物理分区的分区标识是全局唯一的,从而可以确保在针对第一分区表执行分区管理操作的情况下,第一数据行的主键的唯一性。

可选地,针对上述第一分区表,还可以接收针对第一分区表进行分区管理操作的操作指令;其中,这里的分区管理操作包括以下中的一种:分区合并、分区交换以及分区分裂等。根据该操作指令,修改当前分区规则。

以分区方法为Hash分区法为例来说,若分区管理操作为分区合并或分区分裂,那么修改当前分区规则可以包括,调整分区的第一数目。

以图1为例来说,假设将逻辑分区1和逻辑分区2合并,那么可以将分区的第一数目从4调整为3。

以分区方法为Range分区法为例来说,若分区管理操作为分区合并或分区分裂,那么修改当前分区规则可以包括,调整分区的第一数目以及至少部分分区的区间范围。

举例来说,假设针对第一分区表划分有3个逻辑分区,其该3个逻辑分区对应的区间范围分别为:(0,100)、(100,200)、(200,300),那么在将前两个分区合并后,可以将分区的第一数目从3调整为2,且对应的区间范围调整为:(0, 200)和(200,300)。

需要说明,通过执行上述操作指令,可以分别对各逻辑分区以及各物理分区执行对应的分区管理操作,从而已经存储到第一分区表的数据行所属的逻辑分区也会相应的发生变化。

应理解,在修改当前分区规则之后,可以基于修改后的当前分区规则,向第一分区表写入新的数据行。具体如下:

获取待写入第一分区表的第二数据行,以及修改后的当前分区规则。根据第二数据行的对应于分区键的第二属性值,以及修改后的当前分区规则,将第二数据行存储到第一分区表中。

这里,第二数据行的存储方法可以参照上述第一数据行的存储方法,本说明书在此不复赘述。

需要说明,在第一分区表具有索引表时,那么在执行步骤510之后,还可以执行如下步骤:

基于第一数据行的对应于索引列的索引值、合成主键值以及分区键的第一属性值,更新第一分区表的索引表。

由于第一数据行的合成主键值在针对第一分区表执行分区管理操作的情况下也是唯一的,从而在将其更新到索引表时,可以确保索引表的有效性。

以上是对向第一分区表中写入数据的方法说明,以下对从第一分区表中读取数据的方法进行说明。

图6示出根据一个实施例的针对分区表的数据读取方法流程图。该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图6所示,所述方法可以包括如下步骤。

步骤602,获取待读取的第一数据行的对应于分区键的第一属性值。

在一个示例中,可以接收查询指令,该查询指令可以包括分区键的第一属性值。这里的查询指令例如可以为用于查询第一分区表的SELECT语句。

在另一个示例中,上述查询指令还可以包括第一数据行的对应于索引列的索引值。

步骤604,至少根据获取的分区键的第一属性值,确定第一数据行的合成主键值。

该合成主键值包括第一数据行所属的目标物理分区的分区标识,以及第一数据行的自增长标识,其中,目标物理分区的分区标识是全局唯一的。

在一个示例中,若第一分区表不具有索引表,那么可以根据第一属性值,查询第一分区表,以确定第一数据行的合成主键值。

在另一个示例中,若第一分区表具有索引表,那么可以先获取第一数据行的对应于索引列的索引值。之后,根据索引值和第一属性值,查询第一分区表的索引表,得到第一数据行的合成主键值。

在一个例子中,可以从上述查询指令中获取第一数据行的对应于索引列的索引值。

应理解,上述基于分区键的第一属性值,确定第一数据行的合成主键值的过程也可以理解为是定位分区的过程。

步骤606,基于合成主键值,从第一分区表中读取第一数据行。

应理解,在基于分区键的第一属性中定位出分区后,在该分区内,基于合成主键值可以唯一地确定出第一数据行。

总之,在本说明书实施例中,基于合成主键值,可以从第一分区表中唯一地确定出一个数据行。

综上,本说明书实施例提供的针对分区表的数据读取方法,可以确保在针对第一分区表执行分区管理操作的情况下,也可以基于合成主键值,唯一地读取到一个数据行,也就是说,添加到数据行的合成主键值始终是有效的。由于该合成主键值是有效的,从而在将其添加到索引表中时,可以确保索引表的有效性。

与上述分区表建立方法对应地,本说明书一个实施例还提供的一种分区表建立装置,如图7所示,该装置可以包括:

接收单元702,用于接收第一建表指令,其中至少包括待创建的第一分区表的各属性列以及分区规则。该第一分区表为无主键表,该分区规则至少指示,将第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键以及分区的第一数目。

上述分区规则还指示分区方法,该分区方法包括以下中的一种:哈希分区法、区间分区法以及列表分区法。

创建单元704,用于基于各属性列创建第一分区表,并根据分区规则创建对应的第一数目个逻辑分区以及各逻辑分区分别对应的物理分区,该物理分区具有全局唯一的分区标识。

添加单元706,用于针对第一分区表添加合成主键作为隐藏主键,该合成主键由物理分区的分区标识和分区级的自增长标识构成。

可选地,上述第一建表指令还包括索引列;

创建单元704,还用于基于索引列、合成主键以及分区键,创建对应于第一分区表的索引表。

本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。

本说明书一个实施例提供的分区表建立装置,可以针对无主键表生成有效的主键,进而可以实现通过LSM-Tree来存储数据。

与上述针对分区表的数据写入方法对应地,本说明书一个实施例还提供的一种针对分区表的数据写入装置,如图8所示,该装置可以包括:

获取单元802,用于获取待写入第一分区表的第一数据行,以及第一分区表的当前分区规则,该当前分区规则至少指示,将第一分区表中有待写入的数据行划分为逻辑分区所依据的分区键及分区的第一数目。

确定单元804,用于根据第一数据行的对应于分区键的第一属性值,以及当前分区规则,确定第一数据行所属的目标逻辑分区。

确定单元804,还用于根据逻辑分区与物理分区的映射关系,确定对应于目标逻辑分区的目标物理分区,该目标物理分区具有全局唯一的分区标识。

添加单元806,用于将目标物理分区的分区标识以及第一数据行的自增长标识作为合成主键值,添加到第一数据行中。

存储单元808,用于将添加合成主键值后的第一数据行存储到第一分区表中。

可选地,当前分区规则还指示分区方法,且该分区方法为哈希分区法;

确定单元804具体用于:

将第一属性值对第一数目取模,得到取模结果;

将第一分区表对应的各逻辑分区中,对应分区编号与取模结果相匹配的逻辑分区作为目标逻辑分区。

可选地,当前分区规则还指示分区方法,且分区方法为区间分区法;

确定单元804具体用于:

从第一分区表对应的各逻辑分区中,选取出第一属性值落入到对应区间范围的逻辑分区;

将选取出的逻辑分区作为目标逻辑分区。

可选地,该装置还可以包括:

接收单元810,用于接收针对第一分区表进行分区管理操作的操作指令;其中,分区管理操作包括以下中的一种:分区合并、分区交换以及分区分裂;

修改单元812,用于根据操作指令,修改当前分区规则。

可选地,获取单元802,还用于获取待写入第一分区表的第二数据行,以及修改后的当前分区规则;

存储单元808,还用于根据第二数据行的对应于分区键的第二属性值,以及修改后的当前分区规则,将第二数据行存储到第一分区表中。

可选地,该装置还可以包括:

更新单元814,用于基于第一数据行的对应于索引列的索引值、合成主键值以及分区键的第一属性值,更新第一分区表的索引表。

本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。

本说明书一个实施例提供的针对分区表的数据写入装置,可以针对数据行添加有效的合成主键值,进而可以通过LSM-Tree来进行存储。

与上述针对分区表的数据读取方法对应地,本说明书一个实施例还提供的一种针对分区表的数据读取装置,如图9所示,该装置可以包括:

获取单元902,用于获取待读取的第一数据行的对应于分区键的第一属性值。

确定单元904,用于至少根据分区键的第一属性值,确定第一数据行的合成主键值,该合成主键值包括第一数据行所属的目标物理分区的分区标识,以及第一数据行的自增长标识,该目标物理分区具有全局唯一的分区标识。

确定单元904具体用于:

接收数据查询指令,其中至少包括第一数据行的对应于索引列的索引值;

根据索引值和所述第一属性值,查询第一分区表的索引表,得到第一数据行的合成主键值。其中,索引表用于记录第一分区表的索引列、合成主键以及分区键的对应关系。

读取单元906,用于基于合成主键值,从第一分区表中读取第一数据行。

本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。

本说明书一个实施例提供的针对分区表的数据读取装置,在针对第一分区表执行分区管理操作的情况下,基于合成主键值,可以唯一地读取到一个数据行。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2、图5或图6所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2、图5或图6所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号