分布式索引实现方法及装置与流程

文档序号:11216516阅读:1020来源:国知局
分布式索引实现方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种分布式索引实现方法及装置。



背景技术:

随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式软件即服务(software-as-a-service,简称saas)。它是一种通过internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。对于许多小型企业来说,saas是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

分布式架构与传统单节点架构不同,一张全局的表会分片于每一个原子节点中,在进行数据存取及修改时,有可能需要查找多个原子节点才能查找到所需信息,造成查找效率低下,影响数据存取及修改效率,大大影响用户体验,因此,需要采用索引的方式来优化数据访问效率,为了进一步提高数据访问效率,有必要设计一种分布式索引实现方法来管理索引,以提高索引的维护效率。



技术实现要素:

本发明提供一种分布式索引实现方法及装置,用以解决索引的维护效率低的技术问题。

本发明一方面提供一种分布式索引实现方法,包括:

从第一级元数据表中获取第一标识;其中,第一级元数据表用于存储租户的所有数据表元数据;

根据第一标识在节点索引元数据表中进行查找,以获得查找结果;其中,节点索引元数据表包括第一标识和字段名;

获取筛选条件,并根据筛选条件对查找结果进行筛选,以获得筛选结果,筛选条件包括字段名;

根据第二标识在第二级元数据表中进行查找,以获取与第二标识对应的数据库标识,其中,第二级元数据表包括第一标识和数据库标识;数据库标识为数据库表的主键,数据库表还包括数据库地址;第二标识为从筛选结果中获取的第一标识;

根据数据库标识在数据库表中进行查找,以获得与数据库标识对应的数据库地址;

根据与数据库标识对应的数据库地址对数据进行访问。

进一步的,第一级元数据表位于父存储设备中,第二级元数据表及节点索引元数据表位于子存储设备中,且子存储设备有多个。

进一步的,上述方法还包括:

从第一级元数据表中获取第三标识;

根据第三标识,在第二级元数据表中生成第一新增数据,其中,第一新增数据包括第三标识和对应的数据库标识;

根据第三标识,在节点索引元数据表中生成第二新增数据,其中,第二新增数据包括第三标识和对应的字段名。

进一步的,上述方法还包括:

从父存储设备的第一级元数据表中获取第四标识;

根据第四标识,对各子存储设备中的节点索引元数据表的相应数据进行修改或删除。

进一步的,第一级元数据表还包括索引完成数、第一创建时间和第一修改时间;节点索引元数据表还包括索引字段、第二创建时间和第二修改时间。

本发明另一方面提供一种分布式索引实现装置,包括:

第一获取模块,用于从第一级元数据表中获取第一标识;其中,第一级元数据表用于存储租户的所有数据表元数据;

查找模块,用于根据第一标识在节点索引元数据表中进行查找,以获得查找结果;其中,节点索引元数据表包括第一标识和字段名;

筛选模块,用于获取筛选条件,并根据筛选条件对查找结果进行筛选,以获得筛选结果,筛选条件包括字段名;

第二获取模块,用于根据第二标识在第二级元数据表中进行查找,以获取与第二标识对应的数据库标识,其中,第二级元数据表包括第一标识和数据库标识;数据库标识为数据库表的主键,数据库表还包括数据库地址;第二标识为从筛选结果中获取的第一标识;

数据库地址获取模块,用于根据数据库标识在数据库表中进行查找,以获得与数据库标识对应的数据库地址;

数据访问模块,用于根据与数据库标识对应的数据库地址对数据进行访问。

进一步的,第一级元数据表位于父存储设备中,第二级元数据表及节点索引元数据表位于子存储设备中,且子存储设备有多个。

进一步的,上述装置还包括:

第三获取模块,用于从第一级元数据表中获取第三标识;

第一新增数据生成模块,用于根据第三标识,在第二级元数据表中生成第一新增数据,其中,第一新增数据包括第三标识和对应的数据库标识;

第二新增数据生成模块,用于根据第三标识,在节点索引元数据表中生成第二新增数据,其中,第二新增数据包括第三标识和对应的字段名。

进一步的,上述装置还包括:

第四获取模块,用于从父存储设备的第一级元数据表中获取第四标识;

更新模块,用于根据第四标识,对各子存储设备中的节点索引元数据表的相应数据进行修改或删除。

进一步的,第一级元数据表还包括索引完成数、第一创建时间和第一修改时间;节点索引元数据表还包括索引字段、第二创建时间和第二修改时间。

本发明提供的分布式索引实现方法及装置,通过节点索引元数据表存储第二级元数据表的索引元数据,在进行数据访问时,可通过查找节点索引元数据表获得第二标识,然后根据第二标识查找第二级元数据表,从而获得数据库标识,最终根据数据库标识查找数据库表,从而获得数据库地址,以实现对数据的访问,提高了数据访问效率。同时,通过上述索引实现方法及装置,可通过第一级元数据中的第一标识来更新节点索引元数据表,从而方便索引的管理,以提高索引的维护效率。

附图说明

在下文中将基于实施例并参考附图来对本发明进行更详细的描述。其中:

图1为本发明实施例一提供的分布式索引实现方法的一流程示意图;

图2为本发明实施例一提供的存储数据表之间的关系示意图;

图3为本发明实施例一提供的分布式索引实现方法的另一流程示意图;

图4为本发明实施例二提供的分布式索引实现装置的一结构示意图;

图5为本发明实施例二提供的分布式索引实现装置的另一结构示意图;

图6为本发明实施例二提供的分布式索引实现装置的又一结构示意图。

在附图中,相同的部件使用相同的附图标记。附图并未按照实际的比例绘制。

具体实施方式

下面将结合附图对本发明作进一步说明。

以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

本发明实施例以saas系统为例进行说明,当然本发明实施例中的分布式索引实现方法及装置也可以应用到其他分布式系统中,在此不做限定。

实施例一

图1为本发明实施例一提供的分布式索引实现方法的流程示意图;如图1所示,本实施例提供一种分布式索引实现方法,包括步骤101-步骤106。

具体的,步骤101,从第一级元数据表中获取第一标识;其中,第一级元数据表用于存储租户的所有数据表元数据,即第一级元数据表中存储租户的所有数据表的相关信息,通过该第一级元数据表可查找到与租户数据存储相关的所有表的信息。如图2所示的各存储数据表之间的关系图,图2中,第一级元数据表的属性id即为第一标识。

步骤102,根据第一标识在节点索引元数据表中进行查找,以获得查找结果;其中,节点索引元数据表包括第一标识和字段名。

节点索引元数据表中存储第二级元数据表的索引元数据。根据获取到的第一标识在节点索引元数据表中进行查找,查找结果为第一标识符合要求的所有数据项集合。

步骤103,获取筛选条件,并根据筛选条件对查找结果进行筛选,以获得筛选结果,筛选条件包括字段名。

本步骤为筛选步骤,如使用rdbms数据库引擎根据优化器的需要对查找结果进行筛选,筛选条件包括字段名,即根据字段名对查找结果进行筛选,以获得筛选结果。

步骤104,根据第二标识在第二级元数据表中进行查找,以获取与第二标识对应的数据库标识,其中,第二级元数据表包括第一标识和数据库标识;数据库标识为数据库表的主键,数据库表还包括数据库地址;第二标识为从筛选结果中获取的第一标识。

在本步骤中,为了区分筛选步骤前后不同数据项集合的第一标识,将筛选结果中的数据项集合的第一标识称为第二标识(第一标识和第二标识用于表示节点索引元数据表中的同一属性,即图2中的表id或者第一级元数据表中的id,下文中的第三标识与第四标识同样用于表示表id或者第一级元数据表中的id)。如图2所示,根据第二标识在第二级元数据表查找到对应的数据库标识。

步骤105,根据数据库标识在数据库表中进行查找,以获得对应的数据库地址。

步骤106,根据数据库地址对数据进行访问。

在本实施例中,通过节点索引元数据表存储第二级元数据表的索引元数据,在进行数据访问时,可通过查找节点索引元数据表获得第二标识,然后根据第二标识查找第二级元数据表,从而获得数据库标识,最终根据数据库标识查找数据库表,从而获得数据库地址,以实现对数据的访问,提高了数据访问效率。同时,通过上述索引实现方法,可通过第一级元数据中的第一标识来更新节点索引元数据表,从而方便索引的管理,以提高索引的维护效率。

进一步的,在本发明另一个具体实施例中,第一级元数据表位于父存储设备中,第二级元数据表及节点索引元数据表位于子存储设备中,且子存储设备有多个,即每个子存储设备均包括相同的第二级元数据表及节点索引元数据表。本实

在本实施例中,第一级元数据表中存储租户的所有数据表元数据,在从第一级元数据表中获取到第一标识后,可对任何一个子存储设备进行访问(因为每一个子存储设备中存储相同的第二级元数据表及节点索引元数据表),这种设置可均衡各子存储设备的被访问负荷(系统可根据实际情况分配空闲的子存储设备,从而实现均衡访问),从而提高子存储设备(节点主机)的使用效率。

在本发明另一个具体实施例中,上述方法还包括:从父存储设备的第一级元数据表中获取第四标识;根据第四标识,对各子存储设备中的节点索引元数据表的相应数据进行修改或删除。即在对节点索引元数据表的相应数据进行修改或删除时,需要对所有子存储设备中的节点索引元数据表进行操作,以保证各子存储设备中节点索引元数据表存储数据的一致性。本实施例用于对索引(即节点索引元数据表中存储的数据)进行修改或删除。

如图3所示,在本发明一个具体实施例中,还包括步骤107-步骤109。

其中,步骤107,从第一级元数据表中获取第三标识。

步骤108,根据第三标识,在第二级元数据表中生成第一新增数据,其中,第一新增数据包括第三标识和对应的数据库标识。

步骤109,根据第三标识,在节点索引元数据表中生成第二新增数据,其中,第二新增数据包括第三标识和对应的字段名。

在本实施例中,步骤107-步骤109用于创建新的索引。

进一步的,第一级元数据表还包括索引完成数、第一创建时间和第一修改时间;节点索引元数据表还包括索引字段、第二创建时间和第二修改时间。

索引完成数用于记录子存储设备中节点索引元数据表的完成情况,当创建或修改节点索引元数据表中的数据时,若某一子存储设备已完成该任务,则索引完成数的值加1,一般情况下,索引完成数应当与所有子存储设备的个数相同。第一创建时间为在创建新的索引时,在第二级元数据表中生成第一新增数据的时间。第一修改时间为在修改索引时,索引修改完成时间。第二创建时间为在节点索引元数据表中生成第二新增数据的时间,第二修改时间为对节点索引元数据表的索引进行修改的时间。

实施例二

本实施例为装置实施例,用于执行上述实施例中的方法。

图4为本发明实施例二提供的分布式索引实现装置的结构示意图;如图4所示,本实施例提供一种分布式索引实现装置,包括第一获取模块201、查找模块202、筛选模块203、第二获取模块204、数据库地址获取模块205和数据访问模块206。

其中,第一获取模块201,用于从第一级元数据表中获取第一标识;其中,第一级元数据表用于存储租户的所有数据表元数据;

查找模块202,用于根据第一标识在节点索引元数据表中进行查找,以获得查找结果;其中,节点索引元数据表包括第一标识和字段名;

筛选模块203,用于获取筛选条件,并根据筛选条件对查找结果进行筛选,以获得筛选结果,筛选条件包括字段名;

第二获取模块204,用于根据第二标识在第二级元数据表中进行查找,以获取与第二标识对应的数据库标识,其中,第二级元数据表包括第一标识和数据库标识;数据库标识为数据库表的主键,数据库表还包括数据库地址;第二标识为从筛选结果中获取的第一标识;

数据库地址获取模块205,用于根据数据库标识在数据库表中进行查找,以获得对应的数据库地址;

数据访问模块206,用于根据数据库地址对数据进行访问。

在本发明一个具体实施例中,第一级元数据表位于父存储设备中,第二级元数据表及节点索引元数据表位于子存储设备中,且子存储设备有多个。

如图5所示,在本发明另一个具体实施例中,分布式索引实现装置还包括第四获取模块207和更新模块208。

其中,第四获取模块207,用于从父存储设备的第一级元数据表中获取第四标识;

更新模块208,用于根据第四标识,对各子存储设备中的节点索引元数据表的相应数据进行修改或删除。

如图6所示,在本发明另一个具体实施例中,分布式索引实现装置还包括第三获取模块209、第一新增数据生成模块210和第二新增数据生成模块211。

其中,第三获取模块209用于从第一级元数据表中获取第三标识;

第一新增数据生成模块210用于根据第三标识,在第二级元数据表中生成第一新增数据,其中,第一新增数据包括第三标识和对应的数据库标识;

第二新增数据生成模块211用于根据第三标识,在节点索引元数据表中生成第二新增数据,其中,第二新增数据包括第三标识和对应的字段名。

进一步的,第一级元数据表还包括索引完成数、第一创建时间和第一修改时间;节点索引元数据表还包括索引字段、第二创建时间和第二修改时间。

本实施例是与方法实施例一对应的装置实施例,具体可参见实施例一中的描述,在此不再赘述。

应该理解的是,本发明所公开的实施例不限于这里所公开的特定结构、处理步骤或材料,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。

说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。

此外,所描述的特征、结构或特性可以任何其他合适的方式结合到一个或多个实施例中。在上面的描述中,提供一些具体的细节,例如材料等,以提供对本发明的实施例的全面理解。然而,相关领域的技术人员将明白,本发明无需上述一个或多个具体的细节便可实现,或者也可采用其它方法、组件、材料等实现。在其它示例中,周知的结构、材料或操作并未详细示出或描述以免模糊本发明的各个方面。

虽然上述示例用于说明本发明在一个或多个应用中的原理,但对于本领域的技术人员来说,在不背离本发明的原理和思想的情况下,明显可以在形式上、用法及实施的细节上作各种修改而不用付出创造性劳动。因此,本发明由所附的权利要求书来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1