【技术实现步骤摘要】
本专利技术涉及数据处理领域,具体涉及多租户技术,更具体涉及一种多 租户数据存储和访问方法和装置。
技术介绍
多租户(imilti-tenancy)技术,作为一种近年来日益引起人们更大兴 趣的技术,是指在服务提供商的服务器上运行软件的单个实例,由该单个 实例为多个客户组织(即租户)尤其是中小企业提供服务。图1示出了多 租户应用的体系结构的示意图。在大目的多租户应用场景中,可能有大 量的(例如超过100万个)中小企业租户同时访问托管平台上的应用实例。 随着租户数量的大量增加,多租户应用面临着如下挑战 一是继续保持较 低和稳定的每租户资源使用成本,并同时保持可接受的每租户性能水平; 二是保持较低的诸如租户间操作、租户注册等管理操作的复杂性。现有的多租户技术使用如图2所示的三种典型的物理数据存储或共享 模式第一种是单独数据库模式,即每个租户拥有自己单独的数据库。这种 模式存在着如下缺点以当前主流数据库关系系统为例,每新构建一个数 据库至少需要大约80M的缺省硬盘空间,这样,如果需要300个数据库, 则需要24G的硬盘空间;如果需要500个数据库,则需要40G的硬盘空间。 在运行时,数据库耗用的内存空间较大,比如300个数据库本身至少需要 2.4G的内存空间,而500个数据库本身至少需要3G的内存空间。此外, 随着租户数量的增加,即使增加的租户数量并不大,整体系统数据访问性 能水平已经急剧降低。由于有以上缺点,这种单独数据库模式在仅适用于租户数量很少且为大型租户的场景。第二种模式是共享数据库及共享表模式,在这种模式中,所有租户共享同一个数据库中的同一个表组(即用于 ...
【技术保护点】
一种用于存储和访问多租户数据的方法,包括: 在一个或多个数据库中建立多个表组,其中每个表组用于存储所述多个租户中的一组租户的数据;以及 响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。
【技术特征摘要】
1.一种用于存储和访问多租户数据的方法,包括在一个或多个数据库中建立多个表组,其中每个表组用于存储所述多个租户中的一组租户的数据;以及响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。2. 根据权利要求1的方法,还包括将租户与表组之间的对应 关系记录在多租户元数据库中,且所述响应于接收到来自租户的 数据访问请求,访问相应的表组中的租户数据包括响应于接收到 来自租户的数据访问请求,通过查询所述多租户元数据库来找到 相应的表组,并访问相应的表组中的租户数据。3. 根据权利要求1的方法,其中,所述数据访问请求包含用 于数据访问的SQL语句,且所述响应于接收到来自租户的数据访 问请求,访问相应的表组中的租户数据包括响应于接收到来自租 户的数据访问请求,提取并分析该数据访问请求中包含的SQL语 句,将该SQL语句〗奮改为用于访问相应的表组中该租户的相应数 据的相应的SQL语句,并将该修改后的SQL语句发送给相应的 数据库。4. 根据权利要求1的方法,还包括确定每个数据库中的最大 表组数和最大表共享率,且其中,在所述一个或多个数据库中建 立多个表组是根据所确定的每个数据库中的最大表组数以及最大 表共享率进行的。5. 根据权利要求4的方法,其中在所述一个或多个数据库中 建立多个表組包括响应于新租户注册,如果判断当前数据库中存在未达到所述 最大表共享率的表组,则将新租户分配给该表组;如果判断当前数据库中不存在未达到所述最大表共享率的表组,并且判断当前数据库中的表组数没有达到所述最大表组数,则建立一个新表组,并将所述新租户分配给所述新表组;以及否则针对下一个数据库执行以上操作,直到所述一个或多个 数据库中的每一个数据库都包含了所述最大表组数,且每一个表 组都达到了所述最大表共享率。6. 根据权利要求4的方法,其中在所述一个或多个数据库中 建立多个表組包括响应于新租户注册,如果判断当前数据库中的表组数未达到 所述最大表组数,则创建新表组,并将新租户分配给该新表组, 直到当前数据库中的表组数达到最大表组数;如果判断当前数据库中的表组数已达到所述最大表组数,则 将新租户分配给当前数据库中租户数最少的表组,直到当前数据库中的所有表组均达到所述最大表共享率;以及然后针对下一个数据库重复执行以上操作,直到所述一个或 多个数据库中的每一个数据库都达到了所述最大表组数,且每一 个表组都达到了所述最大表共享率。7. 根据权利要求4的方法,其中所述确定每个数据库中的最 大表组数和最大表共享率包括建立反映所述多租户应用的使用的仿真用例; 针对所迷多租户应用以及该数据库运行所述仿真用例,从而 获得所述多租户应用在多个表共享率中的每个表共享率和多个租 户总数量水平中的每个租户总数量水平下的总性能值;以及根据所述总性能值以及对于每个租户的所要求性能值得出所 述最大表共享率和最大租户总数量水平,并进而得出该数据库中 的最大表组数,其中所述得出最大表共享率和最大租户总数量水 平还根据所述多租户应用的提供方所能容忍的、在对于每个租户 的所要求性能值不变的情况下随着表共享率的增加而造成的租户 总数量水平降低的百分比。8. 根据权利要求7的方法,其中所述得出最大表共享率和租 户总数量水平包括根据表共享率为1时各租户总数量水平下的总性能值以及对 于每个租户的所要求性能值得出表共享率为1时满足对于每个租 户的所要求性能值的租户总数量水平;根据所述表共享率为1时满足对于每个租户的所要求性能值 的租户总数量水平以及所述多租户应用的提供方所能容忍的所述 租户数量降低的百分比得出所述提供方所能接受的最大租户总数 量水平',以及通过比较所述多租户应用在多个表共享率和该最大租户总数 量水平下的总性能值与在该最大租户总数量水平下满足对于每个 租户的所要求性能值的总性能值来得出所述最大表共享率。9. 一种用于存储和访问多租户数据的装置,包括 建立模块,被配置...
【专利技术属性】
技术研发人员:王芝虎,高波,郭常杰,孙伟,苏中,安文豪,张真,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。