多租户共享数据表的分区管理方法、服务器与系统的制作方法

文档序号:6503552阅读:303来源:国知局
多租户共享数据表的分区管理方法、服务器与系统的制作方法
【专利摘要】本发明公开了一种多租户共享数据表的分区管理方法、服务器与系统。该方法包括:记录共享数据表中针对每个租户数据的查询开销,其中,每个租户的数据存放在共享数据表中的一个分区中;统计预定时间段内共享数据表中每个分区的查询开销;根据查询开销以及预定时间段,计算每个分区的平均查询开销;识别平均查询开销是否超过预设的查询开销阈值;响应于平均查询开销超过预设的查询开销阈值,为共享数据表创建新的分区将一个或者多个租户数据迁移到所创建的新的分区中。本发明提供的技术方案,针对租户差异化的数据规模和查询频率,实现了分区数据的负载均衡,提升数据查询性能。
【专利说明】多租户共享数据表的分区管理方法、服务器与系统

【技术领域】
[0001] 本发明涉及数据库领域,特别涉及一种多租户共享数据表的分区管理方法、服务 器与系统。

【背景技术】
[0002] 多租户应用是在服务提供商的服务器上运行的单个软件实例,能够为多个客户 (即租户)同时提供软件服务,并且允许租户对应用所提供的服务进行定制。目前多租户应 用主要采用关系数据库存储租户数据,其数据存储或共享方式包括:独立数据库、共享数据 库独立模式、共享数据库共享模式。
[0003] 前两种模式适合于中小规模的多租户应用场景。在共享数据库共享模式中,所有 租户共享同一个数据库中的同一数据模式,使得这种方式的数据库资源共享程度最高,资 源开销最小,适合大规模的多租户应用场景。
[0004] 在共享数据库共享模式中,数据表由多个租户共享,在大型的多租户应用场景中 共享数据表存放了大量租户的海量数据,例如大型电子商务平台的交易表可能存放上百万 商户(即租户)的数十亿交易数据,对存放海量数据的共享表查询将非常耗时。同时大量租 户集中访问同一个共享表也容易出现I/O瓶颈。因此,目前存在几种对大型的多租户共享 表进行分区,以提升数据查询性能的方式。现有多租户共享表分区方法主要有以下几种:
[0005] 按字段分区:例如,按照租户标识(ID)或者非租户ID分区。按照租户标识ID分 区可能出现小型租户集中到一个分区,大型租户又集中到另一个分区的情况,造成分区之 间的数据负载不均衡。而按照非租户ID,但会导致一个租户的数据被分布到多个分区中,出 现大量跨分区的查询,影响查询效率;
[0006] 按租户数分表:将一个大共享表的租户数据分布存放到若干个小的共享子表中, 每张表最多只能存放η个租户的数据,同样这种方法可能出现小型租户集中到一个共享子 表,大型租户又集中到另一个共享子表,造成分区之间的数据负载不均衡。


【发明内容】

[0007] 根据本发明实施例的一个方面,所要解决的一个技术问题是:提供一种多租户共 享数据表的分区管理方法、服务器与系统,以提供分区数据的查询负载均衡以及更高的查 询效率。
[0008] 本发明实施例提供的一种多租户共享数据表分区的管理方法,包括:
[0009] 记录共享数据表中针对每个租户数据的查询开销,其中,每个租户的数据存放在 所述共享数据表中的一个分区中,所述共享数据表包括租户标识信息、分区标识信息; [0010] 统计预定时间段内所述共享数据表中每个分区的查询开销;
[0011] 根据所述查询开销以及所述预定时间段,计算每个分区的平均查询开销;
[0012] 识别所述平均查询开销是否超过预设的查询开销阈值;
[0013] 响应于所述平均查询开销超过预设的查询开销阈值,为所述共享数据表创建新的 分区;
[0014] 将一个或者多个租户数据迁移到所创建的新的分区中。
[0015] 本发明实施例提供的一种多租户共享数据表分区的管理服务器,包括:
[0016] 数据查询开销记录单元,用于记录共享数据表中针对每个租户数据的查询开销, 其中,每个租户的数据存放在所述共享数据表中的一个分区中,所述共享数据表包括租户 标识信息、分区标识信息;
[0017] 超负荷分区识别单元,用于统计预定时间段内所述共享数据表中每个分区的查询 开销;根据所述查询开销以及所述预定时间段,计算每个分区的平均查询开销;识别所述 平均查询开销是否超过预设的查询开销阈值;
[0018] 分区创建单元,用于响应于平均查询开销超过预设的查询开销阈值,为所述共享 数据表创建新的分区;
[0019] 租户数据迁移单元,用于根据预定时间段内所述每个租户数据的查询开销,将查 询开销最高的一个或者多个租户数据迁移到所创建的新的分区中。
[0020] 本发明实施例提供的一种多租户共享数据表分区的管理系统,包括:
[0021] 上述本发明实施例提供的任意一种多租户共享数据表分区的管理服务器;
[0022] 物理数据库服务器,用于存储数据表,以及执行所述语句转发单元转发的数据库 操作语句。
[0023] 基于本发明上述实施例提供的多租户共享数据表的分区管理方法、服务器与系 统,通过记录共享数据表中针对每个租户数据的查询开销,针对每个分区,根据租户的查询 开销,对分区平均查询开销超过查询开销阈值的分区的租户进行迁移,迁移到所创建的新 的分区中,从而针对租户差异化的数据规模和查询频率,实现了分区数据的负载均衡,提升 数据查询性能。
[0024] 通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其 优点将会变得清楚。

【专利附图】

【附图说明】
[0025] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
[0026] 同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际 的比例关系绘制的。相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一 个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0027] 构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解 释本发明的原理。
[0028] 参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
[0029] 图la、lb分别示出本发明所提供的方法实施例的流程示意图;
[0030] 图2示出本发明所提供的方法实施例中的数据写入操作流程示意图;
[0031] 图3示出本发明所提供的方法实施例中的数据查询操作流程示意图;
[0032] 图4示出本发明所提供的多租户共享数据表的分区管理服务器一种实施例的结 构示意图;
[0033] 图5示出本发明所提供的多租户共享数据表的分区管理服务器一种实施例的结 构示意图;
[0034] 图6示出本发明所提供的多租户共享数据表的分区管理系统一种实施例的结构 示意图;
[0035] 图7示出本发明所提供的多租户共享数据表的分区管理系统一种实施例的结构 示意图。

【具体实施方式】
[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。应注 意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置不限制本发 明的范围。
[0037] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明 及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创 造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适 当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
[0039] 在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不 是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
[0040] 参见图1所示,图1示出本发明所提供的多租户共享数据表的分区管理方法一种 实施例的流程示意图。该实施例提供的多租户共享数据表分区的管理方法,包括以下操作。
[0041] 101,记录共享数据表中针对每个租户数据的查询开销,其中,每个租户的数据存 放在共享数据表中的一个分区中,共享数据表包括租户标识(ID)信息、分区标识(ID)信 息。
[0042] 如表1所示,该表以交易表为例,示意性展示了多租户共享数据表的表结构。该共 享表包含有租户ID和分区ID两个字段,租户ID用于区分不同的租户,分区ID用于区分租 户所属的分区,分区ID对于租户应用通常是透明的。
[0043] 表1共享数据表
[0044]

【权利要求】
1. 一种多租户共享数据表分区的管理方法,包括: 记录共享数据表中针对每个租户数据的查询开销,其中,每个租户的数据存放在所述 共享数据表中的一个分区中,所述共享数据表包括租户标识信息、分区标识信息; 统计预定时间段内所述共享数据表中每个分区的查询开销; 根据所述查询开销以及所述预定时间段,计算每个分区的平均查询开销; 识别所述平均查询开销是否超过预设的查询开销阈值; 响应于所述平均查询开销超过预设的查询开销阈值,为所述共享数据表创建新的分 区; 将一个或者多个租户数据迁移到所创建的新的分区中。
2. 根据权利要求1所述的方法,还包括: 根据预定时间段内所述每个租户数据的查询开销,选择开销最高的一个或者多个租 户; 被迁移到所创建的新的分区中的一个或者多个租户数据,为所述开销最高的一个或者 多个租户的数据。
3. 根据权利要求1所述的方法,其中, 具体根据所述共享数据表标识信息、分区标识信息,查询共享分区信息表,获得与分区 标识信息相对应的查询开销阈值,作为所述预设的查询开销阈值; 所述共享分区信息表包括共享数据表标识信息、分区标识信息,以及与分区标识信息 相对应的查询开销阈值。
4. 根据权利要求1所述的方法,还包括: 接收用户提交的数据库写入语句信息,所述数据库写入语句信息包括租户标识信息、 共享数据表标识信息; 在租户分区关系信息表中,查询与所述租户标识信息、共享数据表标识信息相对应的 分区标识信息,其中,所述租户分区关系信息表包括租户标识信息、共享数据表标识信息、 分区标识信息; 响应于获得相对应的分区标识信息,在所述写入语句信息中插入所述分区标识信息; 向数据库转发所述数据库写入语句,以在具有所述分区标识的分区中执行所述数据库 写入语句。
5. 根据权利要求4所述的方法,其中,响应于未获得相对应的分区标识信息,所述方法 还包括: 根据每个分区的查询开销,选择查询开销最小的分区标识分配给所述租户标识; 所述共享数据表增加记录包括所述租户标识信息、所分配的分区标识信息; 在所述租户分区关系信息表中增加所述租户标识信息、共享数据表标识信息、所分配 的分区标识信息。
6. 根据权利要求1所述的方法,还包括: 接收用户提交的数据库查询语句信息,所述数据库查询语句信息包括租户标识信息、 共享数据表标识信息; 在租户分区关系信息表,查询与所述租户标识信息、共享数据表标识信息相对应的分 区标识信息,其中,所述租户分区关系信息表包括租户标识信息、共享数据表标识信息、分 区标识信息; 响应于获得相对应的分区标识信息,在所述数据库查询语句信息中插入所述分区标识 信息; 向数据库转发所述数据库查询语句,以在具有所述分区标识的分区中执行所述数据库 查询语句;以及在租户查询开销表中记录所述租户标识以及执行所述数据库查询语句的查 询开销。
7. -种多租户共享数据表分区的管理服务器,包括: 数据查询开销记录单元,用于记录共享数据表中针对每个租户数据的查询开销,其中, 每个租户的数据存放在所述共享数据表中的一个分区中,所述共享数据表包括租户标识信 息、分区标识信息; 超负荷分区识别单元,用于统计预定时间段内所述共享数据表中每个分区的查询开 销;根据所述查询开销以及所述预定时间段,计算每个分区的平均查询开销;识别所述平 均查询开销是否超过预设的查询开销阈值; 分区创建单元,用于响应于平均查询开销超过预设的查询开销阈值,为所述共享数据 表创建新的分区; 租户数据迁移单元,用于根据预定时间段内所述每个租户数据的查询开销,将查询开 销最高的一个或者多个租户数据迁移到所创建的新的分区中。
8. 根据权利要求7所述的服务器,还包括: 租户筛选单元,用于根据预定时间段内所述每个租户数据的查询开销,选择开销最高 的一个或者多个租户; 所述租户数据迁移单元,具体用于将开销最高的一个或者多个租户的数据迁移到所创 建的新的分区中。
9. 根据权利要求7所述的服务器,还包括: 所述超负荷分区识别单元,具体用于查询共享分区信息表,获得与分区标识信息相对 应的查询开销阈值,作为所述预设的查询开销阈值,所述共享分区信息表包括共享数据表 标识信息、分区标识信息,以及与分区标识信息相对应的查询开销阈值。
10. 根据权利要求7所述的服务器,还包括: 接收单元,用于接收用户提交的数据库写入语句信息,所述数据库写入语句信息包括 租户标识信息、共享数据表标识信息; 分区键注入单元,用于利用租户分区关系信息表,查询与所述租户标识信息、共享数据 表标识信息相对应的分区标识信息,所述租户分区关系信息表包括租户标识信息、共享数 据表标识信息、分区标识信息;响应于获得相对应的分区标识信息,在所述写入语句信息中 插入所述分区标识信息; 语句转发单元,用于向数据库转发所述数据库写入语句,以在具有所述分区标识的分 区中执行所述数据库写入语句。
11. 根据权利要求10所述的服务器,还包括: 分区信息管理单元,响应于分区键注入单元未获得相对应的分区标识信息,根据每个 分区的查询开销,选择查询开销最小的分区标识分配给所述租户标识;在共享数据表中增 加包括所述租户标识信息、所分配的分区标识信息的记录; 所述租户分区关系管理单元,还用于在所述租户分区关系信息表中增加所述租户标识 信息、共享数据表标识信息、所分配的分区标识信息。
12. 根据权利要求7所述的服务器,其中, 所述接收单元,还用于接收用户提交的数据库查询语句信息,所述数据库查询语句信 息包括租户标识信息、共享数据表标识信息; 所述分区键注入单元,还用于在所述租户分区关系信息表,查询与所述租户标识信息、 共享数据表标识信息相对应的分区标识信息;响应于获得相对应的分区标识信息,在所述 数据库查询语句信息中插入所述分区标识信息; 所述语句转发单元,还用于向数据库转发所述数据库查询语句,以在具有所述分区标 识的分区中执行所述数据库查询语句; 所述数据查询开销记录单元,还用于在租户查询开销表中记录所述租户标识以及执行 数据库查询语句的查询开销。
13. -种多租户共享数据表分区的管理系统,包括: 权利要求7至12任意一项所述的多租户共享数据表分区的管理服务器; 物理数据库服务器,用于存储数据表,以及执行所述语句转发单元转发的数据库操作 语句。
【文档编号】G06F17/30GK104216893SQ201310211597
【公开日】2014年12月17日 申请日期:2013年5月31日 优先权日:2013年5月31日
【发明者】何震苇, 杨新章, 陆钢, 胡文胜, 陈力, 李慧云, 梁柏青, 陈珣 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1