CN101620609B - 多租户数据存储和访问方法和装置 - Google Patents
多租户数据存储和访问方法和装置 Download PDFInfo
- Publication number
- CN101620609B CN101620609B CN2008101272722A CN200810127272A CN101620609B CN 101620609 B CN101620609 B CN 101620609B CN 2008101272722 A CN2008101272722 A CN 2008101272722A CN 200810127272 A CN200810127272 A CN 200810127272A CN 101620609 B CN101620609 B CN 101620609B
- Authority
- CN
- China
- Prior art keywords
- tenant
- table group
- maximum
- rate
- database
- 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.)
- Active
Links
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种用于存储和访问多租户数据的方法,该方法包括:在一个或多个数据库中建立多个表组,其中每个表组用于存储多个租户中的一组租户的数据;以及响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。
Description
技术领域
本发明涉及数据处理领域,具体涉及多租户技术,更具体涉及一种多租户数据存储和访问方法和装置。
背景技术
多租户(multi-tenancy)技术,作为一种近年来日益引起人们更大兴趣的技术,是指在服务提供商的服务器上运行软件的单个实例,由该单个实例为多个客户组织(即租户)尤其是中小企业提供服务。图1示出了多租户应用的体系结构的示意图。在大规模的多租户应用场景中,可能有大量的(例如超过100万个)中小企业租户同时访问托管平台上的应用实例。随着租户数量的大量增加,多租户应用面临着如下挑战:一是继续保持较低和稳定的每租户资源使用成本,并同时保持可接受的每租户性能水平;二是保持较低的诸如租户间操作、租户注册等管理操作的复杂性。
现有的多租户技术使用如图2所示的三种典型的物理数据存储或共享模式:
第一种是单独数据库模式,即每个租户拥有自己单独的数据库。这种模式存在着如下缺点:以当前主流数据库关系系统为例,每新构建一个数据库至少需要大约80M的缺省硬盘空间,这样,如果需要300个数据库,则需要24G的硬盘空间;如果需要500个数据库,则需要40G的硬盘空间。在运行时,数据库耗用的内存空间较大,比如300个数据库本身至少需要2.4G的内存空间,而500个数据库本身至少需要3G的内存空间。此外,随着租户数量的增加,即使增加的租户数量并不大,整体系统数据访问性能水平已经急剧降低。由于有以上缺点,这种单独数据库模式在仅适用于 租户数量很少且为大型租户的场景。
第二种模式是共享数据库及共享表模式,在这种模式中,所有租户共享同一个数据库中的同一个表组(即用于特定应用的一组表),这样就需要在表组的每个表中增加一个新的“租户ID”字段,以便将不同租户的数据记录区分开来。这种模式的优点包括:由于仅有一个表组,因此易于进行跨租户的管理操作;构建一个数据库仅需要约80M的缺省硬盘空间;在运行时,数据库本身所耗用的缺省内存空间约为600-700M。然而,这种模式的缺点是,随着租户数量增加到一个很大的数量(例如,超过1000),会出现多租户数据间互相严重干扰,整体系统数据访问性能急剧降低的断点(break point)。
第三种模式是共享数据库及单独表模式,在这种模式中,所有租户共享同一个数据库,但每个租户拥有自己单独的表组。这种模式的优点在于:即使租户的数量增加到很大的数量,也不会出现整体系统数据访问性能急剧降低的断点;构建一个数据库只需要大约80M的缺省硬盘空间;在运行时,数据库本身的内存空间消耗缺省约为600-700M。然而,这种模式的缺点是:由于表组数量等于租户数量,因而随着租户数量增加,表组数量会变得太大,这样租户注册、跨租户等管理操作会异常复杂。
图3示出了在上述三种模式下一示例多租户应用的整体系统数据访问性能随着租户数的增加而变化的情况。从图中可见,共享数据库且单独表模式下的性能较高且相对于租户数的增加较为稳定。而共享数据库且共享表模式下的性能低一些,且随着租户数增加到如1000个左右出现整体系统数据访问性能较快下降的断点。单独数据库模式下的整体系统数据访问性能随着租户数的增加而急剧下降。
显然,本领域中需要一种既能够随着租户数的大量增加而保持整体系统数据访问性能的稳定性、又可降低管理成本的多租户数据存储方案。
发明内容
根据本发明的一个方面,提供了一种用于存储和访问多租户数据的方法,包括:确定每个数据库中的最大表组数和最大表共享率;根据所确定的每个数据库中的最大表组数以及最大表共享率,在所述一个或多个数据库中建立多个表组,其中每个表组用于存储所述多个租户中的一组租户的数据;以及响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。
根据本发明的另一个方面,提供了一种用于存储和访问多租户数据的装置,包括:确定模块,其被配置为确定每个数据库中的最大表组数和最大表共享率;建立模块,被配置为根据确定模块所确定的每个数据库中的最大表组数和最大表共享率,在一个或多个数据库中建立多个表组,其中每个表组用于存储所述多个租户中的一组租户的数据;以及多租户数据路由器,被配置为响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。
本发明的优点是在租户数很大的情况下既保证了较高的性能,又保证了较低的管理成本。具体地说,由于与共享数据库且单独表组模式相比,表组数减少了,因此提高了资源使用效率,并且跨租户操作等的管理成本减少了。此外,在一定的表共享率(即每个表组所对应的租户数量)下,即使租户数量增加到很大数量(例如超过4000个租户),整体系统数据访问性能也保持接近于共享数据库且单独表模式下的性能水平。此外,提供了在部署多租户应用部署时可预测的适当数据共享方案。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、另外的目标、特征以及优点,在附图中:
图1示出了多租户应用的体系结构示意图;
图2示出了现有的多租户技术使用的三种典型的物理数据存储或共享模式;
图3示出了在三种共享模式下一示例多租户应用的性能随着租户数的 增加而变化的情况;
图4示出了根据本发明的实施例的用于存储和访问多租户数据的方法;
图5示出了根据本发明的实施例根据最小表组数策略创建和分配共享组和表组的具体步骤;
图6示出了根据本发明的实施例根据最大性能策略创建和分配共享组和表组的具体步骤;
图7示出了根据本发明的实施例的用于获得在数据库中存储多租户应用的多租户数据的共享方案的方法;
图8例示了根据本发明的实施例的用于获得在数据库中存储多租户应用的多租户数据的共享方案的方法的具体步骤;以及
图9示出了根据本发明的实施例的用于存储和访问多租户数据的装置。
具体实施方式
下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员很明显,本发明的实现可不具有这些具体细节。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和元素的任意组合来实施和实践本发明。而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。
下面参照附图4描述根据本发明的实施例的用于存储和访问多租户数据的方法。
如图所示,在可选步骤401,确定多租户应用的一个或多个数据库中的每个数据库中的最大表组数和最大表共享率。表共享率是指每个表组中所包含的租户的数量。可以使用多种方法来确定所述最大表组数和最大表共享率,例如由用户根据经验来确定,或者使用下文中参照图7所述的仿真方法来确定。
在步骤402,在所述一个或多个数据库中建立多个表组,其中每个表组用于存储所述多个租户中的一组租户的数据。所述一组租户称为共享组,该共享组所包含的租户的数量即为表共享率。在本发明的不同实施例中, 表共享率可以不同,例如可以是500、100、25、10等等。
属于同一共享组中的租户的数据在同一表组中可使用租户ID区分开来。
用于存储不同共享组的租户数据的不同表组可位于相同或不同的数据库中。
在本发明的实施例中,所述在一个或多个数据库中建立多个表组是根据所确定的每个数据库中的最大表组数以及每个表组的最大表共享率进行的。也就是说,在每个数据库中所建立的表组的数量不超过所确定的最大表组数,且每个表组所对应的共享组中租户的数量不超过所确定的最大表共享率。
在本发明的实施例中,当新租户注册(on-boarding)时,将根据预定的策略,或者选择现有的共享组和相应的表组,并将该新租户分配到该现有的共享组和相应的表组,或者创建新的共享组和相应的表组,并将该新租户分配到该新创建的共享组和相应的表组。
在本发明的一实施例中,所述用于创建和分配共享组和表组的预定策略为最小表组数策略。图5示出了根据本发明的实施例根据最小表组数策略分配和创建共享组和表组的具体步骤。
如图所示,在步骤501,响应于新租户注册,判断当前数据库中是否存在未达到所述最大表共享率的表组。
如果所述判断为是,则转到步骤502,将所述新租户分配给所述表组,并且过程结束。
如果所述判断为否,则转到步骤503,进一步判断当前数据库中的表组数是否已达到所述最大表组数。
如果所述进一步判断为否,则转到步骤504,建立一个新表组,并将所述新租户分配给所述新表组,并且过程结束。
如果所述进一步判断为是,则转到步骤505,判断是否还存在数据库。
如果该判断为是,则转到步骤506,将下一个数据库作为当前数据库,并返回执行步骤501。
如果该判断为否,则转到步骤507,返回错误指示,然后过程结束。
以上过程针对每一个新租户注册重复进行。
在本发明的另一实施例中,所述用于创建和分配共享组和表组的预定的策略为最大性能策略。图6示出了根据本发明的实施例根据最大性能策略分配和创建共享组和表组的具体步骤。
如图所示,在步骤601,响应于新租户注册,判断当前数据库中的表组数是否已达到所确定的最大表组数。
如果所述判断是否,则转到步骤602,根据数据库的最大表组数,在当前数据库中创建新表组使当前数据库的表组数达到最大表组数。然后,在步骤603,将所述新租户分配给创建的最后一个新表组,并且过程结束。
如果所述判断为是,则转到步骤604,从当前数据库中寻找到一个租户数量最少的表组,然后在步骤605,判断该表组的租户数量是否达到所确定的最大表共享率。
如果该判断是否,在步骤606,将所述新租户分配给该表组,并且过程结束。
如果该判断为是,表明当前数据库中已经没有可用的表组,则转到步骤607,判断是否还存在下一个数据库。
如果这个判断为是,则针对该下一个数据库返回执行步骤601。
如果这个判断为否,则转到步骤608,返回错误指示,并且过程结束。
以上过程针对每一个新租户注册重复执行。
应指出的是,以上所述根据本发明的实施例用于创建和分配共享组和表组的策略仅为示例,而不是对本发明的限制。在本发明的其他实施例中,可以使用其他策略来创建和分配共享组和表组。此外,在本发明的一些实施例中,所述最小表组数策略和最大性能策略中的各具体步骤可以与所描述的不同。
在本发明的实施例中,所创建的每个表组都具有唯一的序列号,并且该表组中每个表的名称为该多租户应用的数据库模式中原表的名称与表组序列号的拼接。例如原表的名称为“SalesOrder”,则新创建的表的名称 为“SalesOrder_00000001”、“SalesOrder_00000002”等。
在本发明的实施例中,所创建的每个表组中的每个表具有与原表相同的字段,以及新添加的“tenantID”字段,该字段用来将同一个表中属于同一共享组中的不同租户的数据区分开来。
返回图4,在本发明的一实施例中,每当将新的租户分配给现有的或新创建的表组后,在可选步骤403,将该租户与所分配的表组之间的对应关系记录在多租户元数据库中。例如,在该元数据库中记录了每个租户ID与相应的表组序列号。这样,当接收到来自某一租户的数据访问请求时,就可以根据该租户的ID在多租户元数据库中找到相应的表组,并进而实现对相应表组中的表中该租户的相应数据的访问。在本发明的实施例中,元数据库中还存储有数据库系统单元的访问地址,例如访问URL。
在步骤404,响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。
在本发明的实施例中,所述响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据包括响应于接收到来自租户的数据访问请求,通过查询所述多租户元数据库来找到相应的表组,并访问相应的表组中的租户数据。
在本发明的实施例中,所述数据访问请求包含用于数据访问的SQL语句,且所述响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据包括响应于接收到来自租户的数据访问请求,提取并分析该数据访问请求中包含的SQL语句,将该SQL语句修改为用于访问相应的表组中该租户的相应数据的相应的SQL语句,并将该修改后的SQL语句发送给相应的数据库。
下面举例说明步骤404的具体执行过程。
在第一步,例如,某一租户向多租户应用发送包含如下SQL语句的数据访问请求:select*from T_SALESORDER where signdate>’2007-01-05’and signdate<’2007-01-24’。
在第二步,根据本发明的装置截获该请求,获得当前请求的租户ID, 并通过一多租户元数据管理器从多租户元数据库中查找与该租户ID对应的表组序列号和数据库系统单元的访问URL。例如,通过多租户应用的系统程序接口或安全会话机制获得当前租户的租户ID为“tenantA”,而从多租户数据库中获得相应的表组序列号为“00000001”。
在第三步,根据本发明的装置分析上述SQL语句,并使用所查找的租户ID和相应的表组序列号修改该SQL语句。例如,将该SQL语句修改为:select*from T_SALESORDER_00000001where tenanted=‘tenantA’and signdate>’2007-01-05’and signdate<’2007-01-24’。
在第四步,根据本发明的装置将带有修改后的SQL语句的租户请求重新发送到相应的数据库系统单元的访问URL。
下面参照附图7描述根据本发明的实施例用于通过仿真方法执行上述步骤401、即确定每个数据库中的最大表组数和最大表共享率的具体步骤。
如图所示,该方法包括以下步骤:
在步骤701,建立反映所述多租户应用的使用的仿真用例。
在步骤702,针对所述多租户应用及该数据库运行所述仿真用例,从而获得所述多租户应用在多个表共享率中的每个表共享率和多个租户总数量水平中的每个下的总性能值。
在步骤703,根据所述总性能值以及对于每个租户的所要求性能值获得最大表共享率和最大租户总数量水平,并进而得出该数据库中的最大表组数。
根据本发明的实施例,其中所述获得最大表共享率和最大租户总数量水平还根据所述多租户应用的提供方所能容忍的、在对于每个租户的所要求性能值不变的情况下随着表共享率的增加而造成的租户总数量降低的百分比。
根据本发明的实施例,所述获得最大表共享率和租户总数量水平的步骤包括以下具体步骤:
在第一步,根据表共享率为1时各租户总数量水平下的总性能值以及对于每个租户的所要求性能值获得表共享率为1时满足对于每个租户的所 要求性能值的租户总数量水平。
在第二步,根据所述表共享率为1时满足对于每个租户的所要求性能值的租户总数量水平以及所述多租户应用的提供方所能容忍的所述租户总数量降低的百分比获得所述提供方所能接受的最大租户总数量水平。
在第三步,通过比较所述多租户应用在多个表共享率和该最大租户总数量水平下的总性能值与在该最大租户总数量水平下满足对于每个租户的所要求性能值的总性能值来获得所述最大表共享率。
下面参照附图8举例说明根据本发明的实施例的用于获得每个数据库中的最大表组数和每个表组的最大表共享率的方法的各具体步骤。
在步骤一,根据多租户应用的使用信息构建仿真用例。典型的多租户应用的混合用例包含以下内容:
-SQL操作属性
·SQL操作脚本:与真实的典型混合用例一致的一系列SQL操
作(select,insert,update等)。
-表属性
·多租户应用的表生成脚本
·多租户应用的仿真业务数据生成脚本
·每个表上每租户的数据记录量
-性能目标属性
·边界TPS(每秒事务):混合用例的所要求的每租户TPS(例如,基于服务级别协议(SLA))
·容许总租户数减少百分比:在边界TPS不变的情况下,随着TSR(表共享率)的增加,多租户应用的提供商允许总租户数减少的百分比
-伸缩属性
·租户数伸缩差
·TSR伸缩差
·边界伸缩率:
-伸缩率:整体系统单元最大TPS减少的差值/租户数量伸缩值
-如果当前伸缩率超出了边界伸缩率,则当前租户数为断点
本领域的技术人员可以根据对仿真用例的以上说明容易地构建出适当的仿真用例。
在步骤二:通过针对多租户应用运行以上仿真用例可获得该多租户应用在各种表共享率和租户总数量水平下的总性能值(例如,TPS)。
例如,如图所示,仿真在TSR=1即单独表模式下的线1:
·租户数伸缩差为500
·在每个租户数伸缩水平下,在目标表中产生业务数据
-增加的数据大小=(每租户的记录数量)*(租户数伸缩差)
·多个客户端请求根据仿真用例同时执行操作以获得最大的整体系统单元TPS
-监视系统瓶颈,例如CPU时间百分比,磁盘空闲时间百分比,内存使用等)
在步骤三:确定该数据库系统单元所支持的最大总租户数
·如果在步骤二中得到的线1中存在断点(即当前伸缩率超出了边界伸缩率),则上一次伸缩点与断点之间的一点可能是最大租户数。此时,可以将租户数伸缩差设置为较小值,并重新进行仿真,直到精确地定位最大总租户数。
·如果不存在断点,但线1与边界TPS线交于一点,则停止租户数伸缩,并且该交点表示单独表模式下的最大总租户数。在图中所示示例中,该最大总租户数为1375,如线2所示。
·基于上述最大总租户数以及容许租户数减少百分比(图中所示示例为10%),获得该多租户应用的提供商所能接受的适当租户数。在图中所示示例为,该提供商所能接受的适当租户数为1375*90%=1250,如图中线3所示。
在步骤四:基于边界TPS,确定最大TSR
·在由步骤三求出的所能接受的适当租户数固定的情况下(线2),按照TSR伸缩差增加TSR,获得当前最大总TPS,并确保它大于当前边界TPS下的总TPS值(在图中所示示例中,该总TPS值为0.3*1275=375).
·由此获得最大TSR,在图中所示的示例中,该最大TSR为25。
这样,由以上过程所获得的示例多租户应用的适当的数据共享方案为:每个数据库系统单元所支持的最大租户总数量水平为1250;最大表共享率(TSR)为25,最大表组数为50。
以上过程既可针对一个数据库系统单元执行,并将所获得的最大表组数和最大表共享率应用于其他数据库系统单元,也可以针对每一个数据库系统单元分别执行,从而获得每一个数据库系统单元各自的最大表组数和最大表共享率。
以上描述了根据本发明的实施例的用于存储和访问多租户数据的方法,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序可以与所描述的不同。例如,在本发明的一些实施例中,可以没有上述一个或多个可选步骤。每个步骤的具体执行方式可以与所描述的不同。再例如,在本发明的一些实施例中,作为附加或替代,还可通过监视多租户应用的实际使用情况来获得多租户应用的实际使用数据,根据多租户应用的实际使用数据来生成或修改仿真用例,并针对该多租户应用运行该仿真用例,从而获得适当的每个数据库的最大表组数和每个表组的最大表共享率,等等。所有这些变化都处于本发明的精神和范围之内。
下面参照附图9描述根据本发明的实施例的用于存储和访问多租户数据的装置。该装置可用于实现上述根据本发明的实施例的用于存储和访问多租户数据的方法。为简明起见,在以下描述中,省略了与以上描述重复的部分内容。因此,可参见以上描述来了解该装置的细节。
如图所示,该装置包括:建立模块901,被配置为在一个或多个数据库中建立多个表组,其中每个表组用于存储所述多个租户中的一组租 户的数据;以及多租户数据路由器902,被配置为响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。所述建立模块901既可以如图中所示位于所述多租户数据路由器902之内,作为所述多租户数据路由器902的一部分,也可以作为单独的模块位于所述多租户数据路由器902之外。
根据本发明的实施例,所述一个或多个数据库可被扩展为更多的数据库。
根据本发明的实施例,该装置还包括多租户元数据库903,用于记录租户与表组之间的对应关系,即租户位置信息,且所述多租户数据路由器902进一步被配置为响应于接收到来自租户的数据访问请求,通过查询所述多租户元数据库903来找到相应的表组,并访问相应的表组中的租户数据。
根据本发明的实施例,所述数据访问请求包含用于数据访问的SQL语句,且所述多租户数据路由器902进一步被配置为响应于接收到来自租户的数据访问请求,提取并分析该数据访问请求中包含的SQL语句,将该SQL语句修改为用于访问相应的表组中该租户的相应数据的相应的SQL语句,并将该修改后的SQL语句发送给相应的数据库。
根据本发明的实施例,该用于存储和访问多租户数据的装置还包括确定模块904,该确定模块被配置为确定每个数据库中的最大表组数和最大表共享率,并且所述建立模块901进一步被配置为根据所确定的每个数据库中的最大表组数和最大表共享率在所述一个或多个数据库中建立多个表组。
根据本发明的一实施例,所述建立模块901使用最小表组数据策略在一个或多个数据库中建立表组,并将所建立的表组分配给租户。在这样的实施例中,所述建立模块901可以包括:用于响应于新租户注册,如果判断当前数据库中存在未达到所述最大表共享率的表组,则将新租户分配给该表组的装置;用于如果判断当前数据库中不存在未达到所述最大表共享率的表组,并且判断当前数据库中的表组数没有达到所述最大表组数,则 建立一个新表组,并将所述新租户分配给所述新表组的装置;以及用于否则针对下一个数据库执行以上操作,直到所述一个或多个数据库中的每一个数据库都达到了所述最大表组数,且每一个表组均达到了所述最大表共享率的装置。
根据本发明的另一实施例,所述建立模块901使用最大性能策略在一个或多个数据库中建立表组,并将所建立的表组分配给租户。在这样的实施例中,所述建立模块901可以包括:用于响应于新租户注册,如果判断当前数据库中的表组数未达到所述最大表组数,则创建新表组,并将新租户分配给该新表组,直到当前数据库中的表组数达到所述最大表组数的装置;用于如果判断当前数据库中的表组数已达到所述最大表组数,则将新租户分配给当前数据库中租户数量最少的表组,直到当前数据库中的所有表组均达到所述最大表共享率的装置;以及用于然后针对下一个数据库重复执行以上操作,直到所述一个或多个数据库中的每一个数据库都达到了所述最大表组数,且每一个表组都达到了所述最大表共享率的装置。
根据本发明的实施例,所述确定模块904包括:用于建立反映所述多租户应用的使用的仿真用例的装置;用于针对所述多租户应用以及该数据库运行所述仿真用例,从而获得所述多租户应用在多个表共享率中的每个表共享率和多个租户总数量水平中的每个租户总数量水平下的总性能值的装置;以及用于根据所述总性能值以及对于每个租户的所要求性能值得出最大表共享率和最大租户总数量水平,并进而得出该数据库中的最大表组数的装置,其中所述得出最大表共享率和最大租户总数量水平还根据所述多租户应用的提供方所能容忍的、在对于每个租户的所要求性能值不变的情况下随着表共享率的增加而造成的租户数量降低的百分比。
根据本发明的进一步的实施例,所述用于根据所述总性能值以及对于每个租户的所要求性能值得出最大表共享率和最大租户总数量水平的装置包括:用于根据表共享率为1时各租户总数量水平下的总性能值以及对于每个租户的所要求性能值得出表共享率为1时满足对于每个租户的所要求性能值的租户总数量水平的装置;用于根据所述表共享率为1时满足对于 每个租户的所要求性能值的租户总数量水平以及所述多租户应用的提供方所能容忍的所述租户数量降低的百分比得出所述提供方所能接受的最大租户总数量水平的装置;以及用于通过比较所述多租户应用在多个表共享率和该最大租户总数量水平下的总性能值与在该最大租户总数量水平下满足对于每个租户的所要求性能值的总性能值来得出所述最大表共享率的装置。
应指出的是,以上对本发明的用于存储和访问多租户数据装置的描述和图示仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该装置可具有更多、更少或不同的模块,且各模块之间的连接或包含关系可以与所描述和图示的不同。例如,在本发明的一些实施例中,还包括多租户元数据管理器905,其中,所述多租户数据路由器902通过所述多租户元数据管理器905来访问所述多租户元数据库903。此外,所述多租户元数据管理器905还可用于当新租户注册时,根据适当策略在多租户元数据库中建立租户与表组之间的对应关系。在本发明的一些实施例中,作为附加或替代,该用于存储和访问多租户数据装置还包括用于通过监视多租户应用的实际使用情况来获得多租户应用的实际使用数据的模块,用于根据多租户应用的实际使用数据来生成或修改仿真用例的模块,以及用于针对该多租户应用运行该仿真用例,从而获得适当的数据共享方案的模块。此外,在本发明的一些实施例中,可以没有所述多租户元数据库903和/或所述确定模块904。
本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文 中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。
Claims (14)
1.一种用于存储和访问多租户数据的方法,包括:
确定每个数据库中的最大表组数和最大表共享率;
根据所确定的每个数据库中的最大表组数以及最大表共享率,在一个或多个数据库中建立多个表组,其中每个表组用于存储所述多个租户中的一组租户的数据;以及
响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。
2.根据权利要求1的方法,还包括将租户与表组之间的对应关系记录在多租户元数据库中,且所述响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据包括响应于接收到来自租户的数据访问请求,通过查询所述多租户元数据库来找到相应的表组,并访问相应的表组中的租户数据。
3.根据权利要求1的方法,其中,所述数据访问请求包含用于数据访问的SQL语句,且所述响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据包括响应于接收到来自租户的数据访问请求,提取并分析该数据访问请求中包含的SQL语句,将该SQL语句修改为用于访问相应的表组中该租户的相应数据的相应的SQL语句,并将该修改后的SQL语句发送给相应的数据库。
4.根据权利要求1的方法,其中在所述一个或多个数据库中建立多个表组包括:
响应于新租户注册,如果判断当前数据库中存在未达到所述最大表共享率的表组,则将新租户分配给该表组;
如果判断当前数据库中不存在未达到所述最大表共享率的表组,并且判断当前数据库中的表组数没有达到所述最大表组数,则建立一个新表组,并将所述新租户分配给所述新表组;以及
否则针对下一个数据库执行以上操作,直到所述一个或多个数据库中的每一个数据库都包含了所述最大表组数,且每一个表组都达到了所述最大表共享率。
5.根据权利要求1的方法,其中在所述一个或多个数据库中建立多个表组包括:
响应于新租户注册,如果判断当前数据库中的表组数未达到所述最大表组数,则创建新表组,并将新租户分配给该新表组,直到当前数据库中的表组数达到最大表组数;
如果判断当前数据库中的表组数已达到所述最大表组数,则将新租户分配给当前数据库中租户数最少的表组,直到当前数据库中的所有表组均达到所述最大表共享率;以及
然后针对下一个数据库重复执行以上操作,直到所述一个或多个数据库中的每一个数据库都达到了所述最大表组数,且每一个表组都达到了所述最大表共享率。
6.根据权利要求1的方法,其中所述确定每个数据库中的最大表组数和最大表共享率包括:
建立反映多租户应用的使用的仿真用例;
针对所述多租户应用以及该数据库运行所述仿真用例,从而获得所述多租户应用在多个表共享率中的每个表共享率和多个租户总数量水平中的每个租户总数量水平下的总性能值;以及
根据所述总性能值以及对于每个租户的所要求性能值得出所述最大表共享率和最大租户总数量水平,并进而得出该数据库中的最大表组数,其中所述得出最大表共享率和最大租户总数量水平还根据所述多租户应用的提供方所能容忍的、在对于每个租户的所要求性能值不变的情况下随着表共享率的增加而造成的租户总数量水平降低的百分比。
7.根据权利要求6的方法,其中所述得出最大表共享率和租户总数量水平包括:
根据表共享率为1时各租户总数量水平下的总性能值以及对于每个租户的所要求性能值得出表共享率为1时满足对于每个租户的所要求性能值的租户总数量水平;
根据所述表共享率为1时满足对于每个租户的所要求性能值的租户总数量水平以及所述多租户应用的提供方所能容忍的所述租户数量降低的百分比得出所述提供方所能接受的最大租户总数量水平;以及
通过比较所述多租户应用在多个表共享率和该最大租户总数量水平下的总性能值与在该最大租户总数量水平下满足对于每个租户的所要求性能值的总性能值来得出所述最大表共享率。
8.一种用于存储和访问多租户数据的装置,包括:
确定模块,其被配置为确定每个数据库中的最大表组数和最大表共享率;
建立模块,被配置为根据确定模块所确定的每个数据库中的最大表组数和最大表共享率,在一个或多个数据库建立多个表组,其中每个表组用于存储所述多个租户中的一组租户的数据;以及
多租户数据路由器,被配置为响应于接收到来自租户的数据访问请求,访问相应的表组中的租户数据。
9.根据权利要求8的装置,还包括多租户元数据库,用于记录租户与表组之间的对应关系,且所述多租户数据路由器进一步被配置为响应于接收到来自租户的数据访问请求,通过查询所述多租户元数据库来找到相应的表组,并访问相应的表组中的租户数据。
10.根据权利要求8的装置,其中,所述数据访问请求包含用于数据访问的SQL语句,且所述多租户数据路由器进一步被配置为响应于接收到来自租户的数据访问请求,提取并分析该数据访问请求中包含的SQL语句,将该SQL语句修改为用于访问相应的表组中该租户的相应数据的相应的SQL语句,并将该修改后的SQL语句发送给相应的数据库。
11.根据权利要求8的装置,其中所述建立模块包括:
用于响应于新租户注册,如果判断当前数据库中存在未达到所述最大表共享率的表组,则将新租户分配给该表组的装置;
用于如果判断当前数据库中不存在未达到所述最大表共享率的表组,并且判断当前数据库中的表组数没有达到所述最大表组数,则建立一个新表组,并将所述新租户分配给所述新表组的装置;以及
用于否则针对下一个数据库执行以上操作,直到所述一个或多个数据库中的每一个数据库都达到了所述最大表组数,且每一个表组均达到了所述最大表共享率的装置。
12.根据权利要求8的装置,其中所述建立模块包括:
用于响应于新租户注册,如果判断当前数据库中的表组数未达到所述最大表组数,则创建新表组,并将新租户分配给该新表组,直到当前数据库中的表组数达到所述最大表组数的装置;
用于如果判断当前数据库中的表组数已达到所述最大表组数,则将新租户分配给当前数据库中租户数量最少的表组,直到当前数据库中的所有表组均达到所述最大表共享率的装置;以及
用于然后针对下一个数据库重复执行以上操作,直到所述一个或多个数据库中的每一个数据库都达到了所述最大表组数,且每一个表组都达到了所述最大表共享率的装置。
13.根据权利要求8的装置,其中,所述确定模块包括:
用于建立反映多租户应用的使用的仿真用例的装置;
用于针对所述多租户应用以及该数据库运行所述仿真用例,从而获得所述多租户应用在多个表共享率中的每个表共享率和多个租户总数量水平中的每个租户总数量水平下的总性能值的装置;以及
用于根据所述总性能值以及对于每个租户的所要求性能值得出最大表共享率和最大租户总数量水平,并进而得出该数据库中的最大表组数的装置,其中所述得出最大表共享率和最大租户总数量水平还根据所述多租户应用的提供方所能容忍的、在对于每个租户的所要求性能值不变的情况下随着表共享率的增加而造成的租户数量降低的百分比。
14.根据权利要求13的装置,其中所述用于根据所述总性能值以及对于每个租户的所要求性能值得出最大表共享率和最大租户总数量水平的装置包括:
用于根据表共享率为1时各租户总数量水平下的总性能值以及对于每个租户的所要求性能值得出表共享率为1时满足对于每个租户的所要求性能值的租户总数量水平的装置;
用于根据所述表共享率为1时满足对于每个租户的所要求性能值的租户总数量水平以及所述多租户应用的提供方所能容忍的所述租户数量降低的百分比得出所述提供方所能接受的最大租户总数量水平的装置;以及
用于通过比较所述多租户应用在多个表共享率和该最大租户总数量水平下的总性能值与在该最大租户总数量水平下满足对于每个租户的所要求性能值的总性能值来得出所述最大表共享率的装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101272722A CN101620609B (zh) | 2008-06-30 | 2008-06-30 | 多租户数据存储和访问方法和装置 |
US12/493,315 US8200628B2 (en) | 2008-06-30 | 2009-06-29 | Multi-tenancy data storage and access method and apparatus |
US13/467,228 US8489550B2 (en) | 2008-06-30 | 2012-05-09 | Multi-tenancy data storage and access method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101272722A CN101620609B (zh) | 2008-06-30 | 2008-06-30 | 多租户数据存储和访问方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101620609A CN101620609A (zh) | 2010-01-06 |
CN101620609B true CN101620609B (zh) | 2012-03-21 |
Family
ID=41465143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101272722A Active CN101620609B (zh) | 2008-06-30 | 2008-06-30 | 多租户数据存储和访问方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8200628B2 (zh) |
CN (1) | CN101620609B (zh) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5856482B2 (ja) * | 2008-11-26 | 2016-02-09 | カルガリー・サイエンティフィック・インコーポレイテッドCalgary Scientific Inc. | 画像アーカイブおよび通信システムネットワークにおけるデータ通信 |
US20110179304A1 (en) * | 2010-01-15 | 2011-07-21 | Incontact, Inc. | Systems and methods for multi-tenancy in contact handling systems |
US9477369B2 (en) * | 2010-03-08 | 2016-10-25 | Salesforce.Com, Inc. | System, method and computer program product for displaying a record as part of a selected grouping of data |
US10417611B2 (en) | 2010-05-18 | 2019-09-17 | Salesforce.Com, Inc. | Methods and systems for providing multiple column custom indexes in a multi-tenant database environment |
US9311664B2 (en) * | 2010-05-25 | 2016-04-12 | Salesforce.Com, Inc. | Systems and methods for automatically collection of performance data in a multi-tenant database system environment |
US9251204B2 (en) * | 2010-06-23 | 2016-02-02 | Salesforce.Com, Inc. | Static query optimization |
US8868582B2 (en) * | 2010-08-23 | 2014-10-21 | Sap Ag | Repository infrastructure for on demand platforms |
US20130167141A1 (en) * | 2010-09-06 | 2013-06-27 | Nec Corporation | Application configuration system, method, and program |
US8554802B1 (en) | 2010-10-09 | 2013-10-08 | MEI Research, Ltd. | System to dynamically collect and synchronize data with mobile devices |
CN102456028A (zh) * | 2010-10-27 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种面向多租户的数据获取方法、装置及系统 |
US9081837B2 (en) * | 2010-10-28 | 2015-07-14 | Microsoft Technology Licensing, Llc | Scoped database connections |
CN102567436B (zh) * | 2010-12-22 | 2017-04-12 | 塔塔咨询服务有限公司 | 多租户系统 |
US20120254118A1 (en) * | 2011-03-31 | 2012-10-04 | Microsoft Corporation | Recovery of tenant data across tenant moves |
US10108648B2 (en) * | 2011-07-13 | 2018-10-23 | Salesforce.Com, Inc. | Creating a custom index in a multi-tenant database environment |
US20130081109A1 (en) * | 2011-09-23 | 2013-03-28 | Corent Technology, Inc. | Multi-Tenant Agile Database Connector |
US8959114B2 (en) | 2011-10-21 | 2015-02-17 | Salesforce.Com, Inc. | Entitlement management in an on-demand system |
US8924361B2 (en) * | 2011-10-21 | 2014-12-30 | Salesforce.Com, Inc. | Monitoring entitlement usage in an on-demand system |
US9015169B2 (en) * | 2011-11-23 | 2015-04-21 | Nec Laboratories America, Inc. | Tenant placement in multitenant cloud databases with data sharing |
CN103136055B (zh) * | 2011-11-25 | 2016-08-03 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN103186623B (zh) * | 2011-12-31 | 2016-04-20 | 鼎捷软件股份有限公司 | 数据库存取方法以及系统 |
US8732200B2 (en) | 2012-02-13 | 2014-05-20 | Ca, Inc. | System and method for controlling access to a database object |
WO2013141832A1 (en) * | 2012-03-21 | 2013-09-26 | Hewlett-Packard Development Company, L.P. | Topological query in multi-tenancy environment |
US9703834B2 (en) | 2012-03-21 | 2017-07-11 | Hewlett Packard Enterprise Development Lp | Topological query in multi-tenancy environment |
CN104246761A (zh) * | 2012-07-31 | 2014-12-24 | 惠普发展公司,有限责任合伙企业 | 在联合数据管理系统中支持多租用 |
US20150227599A1 (en) * | 2012-11-30 | 2015-08-13 | Hitachi, Ltd. | Management device, management method, and recording medium for storing program |
TWI490716B (zh) * | 2012-12-07 | 2015-07-01 | Ind Tech Res Inst | 多租戶應用程序的開發方法、資料存取方法與系統 |
US20140214886A1 (en) * | 2013-01-29 | 2014-07-31 | ParElastic Corporation | Adaptive multi-client saas database |
US9596279B2 (en) | 2013-02-08 | 2017-03-14 | Dell Products L.P. | Cloud-based streaming data receiver and persister |
US9442993B2 (en) * | 2013-02-11 | 2016-09-13 | Dell Products L.P. | Metadata manager for analytics system |
US9191432B2 (en) | 2013-02-11 | 2015-11-17 | Dell Products L.P. | SAAS network-based backup system |
US9141680B2 (en) | 2013-02-11 | 2015-09-22 | Dell Products L.P. | Data consistency and rollback for cloud analytics |
US10339157B2 (en) | 2013-02-13 | 2019-07-02 | Facebook, Inc. | Hive table links |
WO2014133496A1 (en) * | 2013-02-27 | 2014-09-04 | Hitachi Data Systems Corporation | Resource fencing for vlan multi-tenant systems |
TWI506452B (zh) * | 2013-03-18 | 2015-11-01 | Quanta Comp Inc | 雲端平台及其資料交換方法 |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
CN104424245B (zh) | 2013-08-27 | 2017-11-24 | 国际商业机器公司 | 一种管理数据表的共享关系的方法和装置 |
US9438673B2 (en) * | 2014-07-16 | 2016-09-06 | Microsoft Technology Licensing, Llc | Dynamic update streams for real time provisioning |
US10305761B2 (en) | 2014-07-31 | 2019-05-28 | Corent Technology, Inc. | Multi-application SaaS metering engine |
US10320893B2 (en) | 2014-07-31 | 2019-06-11 | Corent Technology, Inc. | Partitioning and mapping workloads for scalable SaaS applications on cloud |
US12126676B2 (en) * | 2014-07-31 | 2024-10-22 | Corent Technology, Inc. | Multitenant cross dimensional cloud resource visualization and planning |
US20160036724A1 (en) * | 2014-07-31 | 2016-02-04 | Corent Technology, Inc. | Automatic Multi-Application Scanner for Application Migration to Cloud |
AU2017272079A1 (en) | 2016-05-23 | 2018-12-13 | Jpmorgan Chase Bank, N.A. | Security design and architecture for a multi-tenant hadoop cluster |
US10824750B2 (en) | 2016-08-12 | 2020-11-03 | Oracle International Corporation | System and method for performing connection validation in a multi-tenant environment |
US10909211B2 (en) * | 2016-08-12 | 2021-02-02 | Oracle International Corporation | System and method for control of maximum connections in a connection pool environment |
US11290540B2 (en) | 2016-08-12 | 2022-03-29 | Oracle International Corporation | System and method for use of server-side connection pool tagging in a multi-tenant environment |
US10742748B2 (en) | 2016-08-12 | 2020-08-11 | Oracle International Corporation | System and method for supporting live addition of a tenant in a connection pool environment |
CN106453247B (zh) * | 2016-08-31 | 2020-08-28 | 东软集团股份有限公司 | 用户数据隔离方法、操作方法及各自对应的装置 |
US10592681B2 (en) * | 2017-01-10 | 2020-03-17 | Snowflake Inc. | Data sharing in a multi-tenant database system |
CN108881111B (zh) * | 2017-05-10 | 2022-07-12 | 中兴通讯股份有限公司 | 一种实现多租户系统的方法及装置 |
US10713092B2 (en) * | 2018-01-02 | 2020-07-14 | Jpmorgan Chase Bank, N.A. | Dynamic resource management of a pool of resources for multi-tenant applications based on sample exceution, query type or jobs |
US10785340B2 (en) | 2018-01-25 | 2020-09-22 | Operr Technologies, Inc. | System and method for a convertible user application |
US11275733B1 (en) | 2018-04-30 | 2022-03-15 | Splunk Inc. | Mapping search nodes to a search head using a tenant identifier |
US11157497B1 (en) | 2018-04-30 | 2021-10-26 | Splunk Inc. | Dynamically assigning a search head and search nodes for a query |
US11892996B1 (en) | 2019-07-16 | 2024-02-06 | Splunk Inc. | Identifying an indexing node to process data using a resource catalog |
US11327992B1 (en) * | 2018-04-30 | 2022-05-10 | Splunk Inc. | Authenticating a user to access a data intake and query system |
US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
US11416465B1 (en) | 2019-07-16 | 2022-08-16 | Splunk Inc. | Processing data associated with different tenant identifiers |
US11829415B1 (en) | 2020-01-31 | 2023-11-28 | Splunk Inc. | Mapping buckets and search peers to a bucket map identifier for searching |
US11222035B2 (en) * | 2020-03-03 | 2022-01-11 | Sap Se | Centralized multi-tenancy as a service in cloud-based computing environment |
CN111491012B (zh) * | 2020-03-27 | 2023-05-09 | 北京尚医智信健康管理有限公司 | SaaS多租户数据隔离访问方法、装置、电子设备及存储介质 |
US20220027369A1 (en) * | 2020-07-06 | 2022-01-27 | Instant Labs, Inc. | Query-based routing of database requests |
US11449371B1 (en) | 2020-07-31 | 2022-09-20 | Splunk Inc. | Indexing data at a data intake and query system based on a node capacity threshold |
US11615082B1 (en) | 2020-07-31 | 2023-03-28 | Splunk Inc. | Using a data store and message queue to ingest data for a data intake and query system |
US11609913B1 (en) | 2020-10-16 | 2023-03-21 | Splunk Inc. | Reassigning data groups from backup to searching for a processing node |
CN112364110B (zh) * | 2020-11-17 | 2024-07-02 | 深圳前海微众银行股份有限公司 | 元数据管理方法、装置、设备及计算机存储介质 |
US11379270B2 (en) * | 2020-11-24 | 2022-07-05 | Sap Se | Clustering tenants based on tenancy knowledge graph |
CN112367408B (zh) * | 2021-01-13 | 2021-08-03 | 树根互联技术有限公司 | 一种物联网多租户数据的管理系统及方法 |
US11809395B1 (en) | 2021-07-15 | 2023-11-07 | Splunk Inc. | Load balancing, failover, and reliable delivery of data in a data intake and query system |
US20230095050A1 (en) * | 2021-09-30 | 2023-03-30 | Microsoft Technology Licensing, Llc | Dynamic enforcement of cross-tenant access policies |
CN113965383B (zh) * | 2021-10-21 | 2024-03-15 | 平安国际智慧城市科技股份有限公司 | 租户数据访问管理方法、装置、设备及存储介质 |
CN115964444B (zh) * | 2023-02-07 | 2023-07-25 | 敏博科技(武汉)有限公司 | 一种云原生分布式多租户数据库实现方法及系统 |
CN116010431B (zh) * | 2023-03-27 | 2023-06-02 | 北京有生博大软件股份有限公司 | 基于多租户模式下的数据要素管理方法及管理系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124578A (zh) * | 2005-01-14 | 2008-02-13 | 国际商业机器公司 | 包括增值和请求式数据传送的可共享多租户参考数据实用工具和储存库以及运行方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543566B2 (en) * | 2003-09-23 | 2013-09-24 | Salesforce.Com, Inc. | System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data |
US7529728B2 (en) | 2003-09-23 | 2009-05-05 | Salesforce.Com, Inc. | Query optimization in a multi-tenant database system |
US9135304B2 (en) * | 2005-12-02 | 2015-09-15 | Salesforce.Com, Inc. | Methods and systems for optimizing text searches over structured data in a multi-tenant environment |
US20070156901A1 (en) | 2005-12-30 | 2007-07-05 | Wolfgang Becker | Generation and use of table links in a provider-tenant environment |
US8122055B2 (en) * | 2007-04-26 | 2012-02-21 | Microsoft Corporation | Hosted multi-tenant application with per-tenant unshared private databases |
-
2008
- 2008-06-30 CN CN2008101272722A patent/CN101620609B/zh active Active
-
2009
- 2009-06-29 US US12/493,315 patent/US8200628B2/en not_active Expired - Fee Related
-
2012
- 2012-05-09 US US13/467,228 patent/US8489550B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124578A (zh) * | 2005-01-14 | 2008-02-13 | 国际商业机器公司 | 包括增值和请求式数据传送的可共享多租户参考数据实用工具和储存库以及运行方法 |
Also Published As
Publication number | Publication date |
---|---|
US8200628B2 (en) | 2012-06-12 |
US20100005055A1 (en) | 2010-01-07 |
US8489550B2 (en) | 2013-07-16 |
CN101620609A (zh) | 2010-01-06 |
US20120221608A1 (en) | 2012-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101620609B (zh) | 多租户数据存储和访问方法和装置 | |
KR20210002574A (ko) | 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기 | |
CN106936899B (zh) | 分布式统计分析系统的配置方法及分布式统计分析系统 | |
CN102929771B (zh) | 日志记录装置和日志记录方法 | |
CN107402995A (zh) | 一种分布式newSQL数据库系统及方法 | |
CN104113597A (zh) | 一种多数据中心的hdfs数据读写系统及方法 | |
CN103885887B (zh) | 用户数据存储方法、读取方法及系统 | |
CN102243660A (zh) | 一种数据访问方法及设备 | |
CN102932415A (zh) | 一种镜像文件存储方法及装置 | |
US11080207B2 (en) | Caching framework for big-data engines in the cloud | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN109743137A (zh) | 一种支持更新的分布式延迟消息队列处理系统 | |
CN105991478A (zh) | 服务器资源分配方法及其系统 | |
CN102937964A (zh) | 基于分布式系统的智能数据服务方法 | |
CN103109293A (zh) | 一种用户行为处理系统及方法 | |
CN106960011A (zh) | 分布式文件系统元数据管理系统及方法 | |
CN104781793A (zh) | 用于集成存储使用情况信息的系统和方法 | |
CN111274004B (zh) | 进程实例管理方法、装置及计算机存储介质 | |
CN105550351A (zh) | 旅客行程数据即席查询系统及方法 | |
US8527478B1 (en) | Handling bulk and incremental updates while maintaining consistency | |
CN102314514A (zh) | 一种表格数据结构化的作用域方法 | |
CN104391947A (zh) | 海量gis数据实时处理方法及系统 | |
CN107220342A (zh) | 一种分布式数据库的控制方法及系统 | |
KR20170096302A (ko) | 이종 데이터 처리를 위한 분산 병렬 처리 시스템 | |
CN113672683A (zh) | 基于Spark SQL的分布式数据库元数据同步装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |