多租户非关系型平台对象制造技术

技术编号:21665929 阅读:20 留言:0更新日期:2019-07-20 07:36
公开了用于更新和管理多租户非关系型数据库架构的系统、装置、方法和计算机程序产品的示例。数据库系统维护与多个企业相关联的多租户非关系型数据库。为每个企业存储数个记录。系统还维护存储数个记录的动态虚拟表。从数据库系统的用户接收请求以定义数据库系统内的数据对象。处理请求,并基于请求生成对象脚本,对象脚本定义数据库系统中与数据对象相关联的一个或更多个数据库列。更新动态虚拟表,使得一个或更多个虚拟列与对象脚本中的数据库列定义匹配。随后更新多租户非关系型数据库中的共享表的现有列以匹配动态虚拟表中的虚拟列。

Multi-tenant Non-relational Platform Objects

【技术实现步骤摘要】
【国外来华专利技术】多租户非关系型平台对象版权须知本专利文件的公开内容部分包含受版权保护的材料。版权所有者不反对任何人对美国专利商标局专利文档或记录中出现的专利文件或专利公开内容进行传真复制,但在其他方面保留所有版权。相关申请的交叉引用本专利文档要求以下申请的优先权权益:2016年9月30日提交的序列号为15/283,119的,题为多租户非关系型平台对象(MULTI-TENANTNON-RELATIONALPLATFORMOBJECTS)(律师案卷号No.SLFCP222/1749US)的美国专利申请;2016年9月30日提交的序列号为15/283,130的,题为CUSTOM自定义多租户非关系型平台对象(MULTI-TENANTNON-RELATIONALPLATFORMOBJECTS)(律师案卷号No.SLFCP222A/1749US2)的美国专利申请;以及2016年9月30日提交的序列号为15/283,145的,题为供应多租户非关系型平台对象(PROVISIONINGFORMULTI-TENANTNON-RELATIONALPLATFORMOBJECTS)(律师案卷号No.SLFCP222B/1749US3)的美国专利申请;序列号为15/283,119的美国专利申请、序列号为15/283,130的美国专利申请和序列号为15/283,145的美国专利申请中的每一个的全部内容,出于所有目的通过引用并入本文。
本专利文档总地涉及非关系型数据库系统,并且更具体地涉及更新和管理多租户非关系型数据库架构(databaseschemas)。
技术介绍
“云计算”服务根据请求来为计算机以及其他设备提供共享资源、应用和信息。在云计算环境中,服务可以由通过因特网可访问的一个或更多个服务器提供,而不是通过在内部计算机系统上本地安装软件来提供。例如,具有各种角色的用户可以利用云计算服务进行交互。附图说明所包括的附图仅用于说明的目的,并且仅用来提供用于更新和管理多租户非关系型数据库架构的,所公开的专利技术系统、设备、方法和计算机程序产品的可能的架构和操作的示例。在不脱离公开的精神和范围的情况下,这些附图并不以任何方式对本领域技术人员可以对实施例所进行的形式和细节的任何改变进行限制。图1示出根据一些实现的、用于更新和管理多租户非关系型数据库架构的系统100的示例的系统示意图。图2示出根据一些实现所执行的、用于在多租户非关系型数据库系统中更新和管理数据库架构的方法200的示例的流程图。图3示出在使用本申请中所描述的方法前,数据对象被增加至非关系型数据库的物理表的示例。图4示出根据一些实现的、用于非关系型共享表的动态架构的示例。图5示出根据一些实现的、将存储在动态非关系型共享表中的几个数据对象定义的示例。图6示出根据一些实现的、非关系型数据库中的共享表的物理布局的示例。图7示出根据一些实现所执行的、用于为多租户非关系型数据库系统创建自定义基础平台对象的方法700的示例的流程图。图8示出根据一些实现所执行的、经由访问控制来动态供应共享表的子集或架构的方法800的示例的流程图。图9A示出根据一些实现的、按需数据库服务可以在其中使用的环境10的示例的框图。图9B示出图9A的元件和在这些元件之间各种可能的交互的一些实现的示例的框图。图10A示出根据一些实现的、按需数据库服务环境900的架构组件的示例的系统示意图。图10B示出根据一些实现的、进一步示出按需数据库服务环境的架构部件的示例的系统示意图。具体实施方式在这一部分中对根据所公开的实施例的系统、装置、方法和计算机程序产品的示例进行描述。所提供的这些示例仅用于增加和帮助对所公开的实现的理解。因此,本
的技术人员应该清楚,在没有某些或所有这些具体细节的情况下,实现方式也可是可实践的。在其他示例中,为了避免对本专利技术造成不必要的混淆,省略某些操作的详细描述。其他的应用也是可能的,因此以下的示例不应理解为在范围或设置方面具有限定性或限制性。在以下的详细描述中参考附图进行,附图形成说明书的一部分,并且在其中通过图示的方式示出本公开的具体实施例。虽然这些实现方式描述了足够的细节以使本
的技术人员能够实践所公开的实施例,应该理解这些示例并非限制性的,因此可使用其他实施例并且可在不脱离本公开的精神和范围的内对其进行变化。例如,本文所描述和示出的方法的操作并非必须按照指示的顺序实现。也应该理解,方法可以包括比所示出的更多或更少的操作。在一些实现中,本文作为单独的操作所描述的操作可以进行组合。相反地,本文中描述为单个操作的可以用多个操作实现。所公开的系统、装置、方法和计算机程序产品的一些实现方式配置用于更新和管理多租户非关系型数据库系统中的数据库架构。在一些多租户数据库系统中,使用客户组织(即租户)在一个逻辑数据库中共享数据库资源的多租户架构。数据库表自身通常共享;数据模型中的每个实体通常包含组织_id或者租户_id列,其针对每个租户区分行。在租户环境下的查询和数据操纵通过通常被索引的该租户_id列被过滤,以保证恰当的安全性和私有数据库的外观。例如,在salesforce.com系统中,该策略用于披露标准对象,诸如账户(Account)、联系人(Contact)、线索(Lead)以及对客户的机会(Opportunity)。传统上,在相关数据库中,例如Oracle,在共享表内使用标准的对象。在这样的表中,标准对象可以在数万个客户中间每实例的进行共享。当表必须根本上被改变时,诸如对应新的对象增加新的字段,或移除字段,它将会呈现出很大的问题。相关数据库架构将必须进行改变,包括在数据库的物理层定义新的表、索引以及更多。数据库的拥有者将不能随时自由的进行改变;而是,数据库将不得不进行锁定和在某些时间改变,导致非常昂贵的操作。近期,对于消除这种停机时间已近取得一些进步。在该方法中,当你必须增加包含新对象的字段时,并不是定义新的物理表,而是将行增加至元数据表。行指示虚拟表正在将数据动态地存储在另一个表中。在物理数据库层只有行被插入,其是低成本且非入侵式操作,无需停机时间。已有列然后在已有表中被更新以增加新数据。因此,增加字段是应用逻辑的一部分,而不是关系型数据库架构改变一部分。虽然这对于关系型多租户数据库非常有用且经济,但是近些年非关系型数据库系统越来越流行。非关系型数据库对于需要快速访问大量数据的应用非常理想。它们为大的数据集提供灵活、可扩展的数据库架构。这样的一个非关系型数据库是HBase。非关系型数据库可以实现日志中大量数据的快速、实时捕获。非关系型数据库可以提供非结构化数据库,而非传统关系型数据库的严格结构。HBase能提供列数据库,其使用指针存储和处理数据,指针指向跨集群分布的许多列。由于非关系型数据库如HBase被设计为不同于关系型数据库,然而,缺少以和关系型数据库同样经济、低成本的方式处理对象和模式管理的框架。举例来说,Acme是运行多租户数据库系统的公司,在那里数以千计的组织实时捕获大的数据集。Acme维护HBase数据库用于这样的数据捕获和存储。它决定丢弃与对象“Login_Event(登录事件)”相关的其HBase共享数据库的列“Login_Status(登录状态)”,因为它希望将登录状态改变本文档来自技高网
...

【技术保护点】
1.一种数据库系统,包括:处理器;以及存储指令的存储器,所述指令配置为使得所述数据库系统:维护与多个企业相关联的多租户非关系型数据库,所述多租户非关系型数据库识别用于所述多个企业中的每个企业的多个记录;维护与所述多个记录相关联的动态虚拟表;接收来自所述数据库系统的用户的、定义所述数据库系统内的数据对象的请求,所述请求至少识别所述数据对象的一个或更多个属性;处理定义所述数据库系统内的所述数据对象的所述请求;基于定义所述数据对象的所述请求生成对象脚本,所述对象脚本定义所述数据库系统中与所述数据对象以及所述数据对象的一个或更多个属性相关联的一个或更多个数据库列;更新所述动态虚拟表,使得一个或更多个虚拟列与所述对象脚本中的数据库列定义匹配;以及更新所述多租户非关系型数据库中共享表的一个或更多个现有列,以匹配所述动态虚拟表中的所述一个或更多个虚拟列。

【技术特征摘要】
【国外来华专利技术】2016.09.30 US 15/283,119;2016.09.30 US 15/283,130;1.一种数据库系统,包括:处理器;以及存储指令的存储器,所述指令配置为使得所述数据库系统:维护与多个企业相关联的多租户非关系型数据库,所述多租户非关系型数据库识别用于所述多个企业中的每个企业的多个记录;维护与所述多个记录相关联的动态虚拟表;接收来自所述数据库系统的用户的、定义所述数据库系统内的数据对象的请求,所述请求至少识别所述数据对象的一个或更多个属性;处理定义所述数据库系统内的所述数据对象的所述请求;基于定义所述数据对象的所述请求生成对象脚本,所述对象脚本定义所述数据库系统中与所述数据对象以及所述数据对象的一个或更多个属性相关联的一个或更多个数据库列;更新所述动态虚拟表,使得一个或更多个虚拟列与所述对象脚本中的数据库列定义匹配;以及更新所述多租户非关系型数据库中共享表的一个或更多个现有列,以匹配所述动态虚拟表中的所述一个或更多个虚拟列。2.如权利要求1所述的系统,其中定义所述数据库系统内的所述数据对象的所述请求包括采用声明性语言的一个或更多个文档。3.如权利要求1或权利要求2所述的系统,其中所述数据对象的所述一个或更多个属性中的至少一个是由所述多个企业中的一个定义的自定义属性。4.如前述权利要求中任一项所述的系统,其中基于定义所述数据对象的所述请求生成对象脚本包括:将所述数据对象和所述数据对象的一个或更多个属性自动地定义为与所述多租户非关系型数据库相关联的、采用数据描述语言的数据库结构。5.如前述权利要求中任一项所述的系统,其中,定义所述数据库系统内的所述数据对象的所述请求进一步识别与所述数据对象相关联的一个或更多个主键列。6.如前述权利要求中任一项所述的系统,其中所述更新所述动态虚拟表包括以下中的至少一个:移除一个或更多个虚拟列,增加一个或更多个虚拟列,以及修改一个或更多个虚拟列的内容。7.如前述权利要求中任一项所述的系统,其中所述更新所述多租户非关系型数据库中共享表的一个或更多个现有列包括:将数据写入所述共享表。8.如权利要求7所述的系统,其中将数据写入所述共享表包括以下中的至少一个:Put操作,Delete操作,CheckAndPut操作,CheckAndDelete操作,Increment操作,Get操作和Scan操作。9.如前述权利要求中任一项所述的系统,所述数据库系统进一步配置为使得:将一个或更多个记录添加到所述多租户非关系型数据库中的所述共享表,所述一个或更多个记录与所述共享表的所述一个或更多个现有列相关联。10.一种方法,包括:维护与多个企业相关联的多租户非关系型数据库,所述多租户非关系型数据库识别用于所述多个企业中的每个企业的多个记录;维护与所述多个记录相关联的动态虚拟表;接收来自所述数据库系统的用户的、定义所述数据库系统内的数据对象的请求,所述请求至少识别所述数据对象的一个或更多个属性;处理定义所述数据库系统内的所述数据对象的所述请求;基于定义所述数据对象的所述请求生成对象脚本,所述对象脚本定义所述数据库系统中与所述数据对象以及所述数据对象的一个或更多个属性相关联的一个或更多个数据库列;更新所述动态虚拟表,使得一个或更多个虚拟列与所述对象脚本中的数据库列定义匹配;以及更新所述多租户非关系型数据库中共享表的一个或更多个现有列,以匹配所述动态虚拟表中的所述一个或更多个虚拟列。11.如权利要求10所述的方法,其中定义所述数据库系统内的所述数据对象的所述请求包括采用声明性语言的一个或更多个文档。12.如权利要求11或权利要求11所述的方法,其中所述数据对象的所述一个或更多个属性中的至少一个是由所述多个企业中的一个定义的自定义属性。13.如权利要求10-12中任一项所述的方法,其中基于定义所述数据对象的所述请求生成对象脚本包括:将所述数据对象和所述数据对象的一个或更多个属性自动地定义为与所述多租户非关系型数据库相关联的、采用数据描述语言的数据库结构。14.如权利要求10-13中任一项所述的方法,其中,定义所述数据库系统内的所述数据对象的所述请求进一步识别与所述数据对象相关联的一个或更多个主键列。15.如权利要求10-14中任一项所述的方法,其中所述更新所述动态虚拟表包括以下中的至少一个:移除一个或更多个虚拟列,添加一个或更多个虚拟列,以及修改一个或更多个虚拟列的内容。16.如权利要求10-15中任一项所述的方法,进一步包括:将一个或更多个记录添加到所述多租户非关系型数据库中的所述共享表,所述一个或更多个记录与所述共享表的所述一个或更多个现有列相关联。17.一种计算机程序产品,包括计算机可读程序代码,当从非暂时性计算机可读介质检索时,所述计算机可读程序代码能够由一个或更多个处理器执行,所述程序代码包括指令,其配置为使得:维护与多个企业相关联的多租户非关系型数据库,所述多租户非关系型数据库识别用于所述多个企业中的每个企业的多个记录;维护与所述多个记录相关联的动态虚拟表;接收来自所述数据库系统的用户的、定义所述数据库系统内的数据对象的请求,所述请求至少识别所述数据对象的一个或更多个属性;处理定义所述数据库系统内的所述数据对象的所述请求;基于定义所述数据对象的所述请求生成对象脚本,所述对象脚本定义所述数据库系统中与所述数据对象以及所述数据对象的一个或更多个属性相关联的一个或更多个数据库列;更新所述动态虚拟表,使得一个或更多个虚拟列与所述对象脚本中的数据库列定义匹配;以及更新所述多租户非关系型数据库中共享表的一个或更多个现有列,以匹配所述动态虚拟表中的所述一个或更多个虚拟列。18.如权利要求17所述的计算机程序产品,定义所述数据库系统内的所述数据对象的所述请求进一步识别与所述数据对象相关联的一个或更多个主键列。19.如权利要求17或权利要求18所述的计算机程序产品,其中所述更新所述动态虚拟表包括以下中的至少一个:移除一个或更多个虚拟列,添加一个或更多个虚拟列,以及修改一个或更多个虚拟列的内容。20.如权利要求17-19中任一项所述的计算机程序产品,其中所述更新所述多租户非关系型数据库中共享表的一个或更多个现有列包括:将数据写入所述共享表。21.一种数据库系统,包括:处理器;以及存储指令的存储器,所述指令配置为使得所述数据库系统:维护与多个企业相关联的多租户非关系型数据库,所述多租户非关系型数据库识别用于所述多个企业中的每个企业的多个记录;维护与所述多个记录相关联的动态虚拟表;接收来自所述多个企业中的一个企业的、定义所述数据库系统内的自定义数据对象的请求,所述请求至少识别与所述企业相关联的唯一企业ID以及所述数据对象的一个或更多个属性;处理来自所述企业的、定义所述数据库系统内的所述自定义数据对象的所述请求;基于来自所述企业的、定义所述自定义数据对象的所述请求,生成自定义对象脚本,所述自定义对象脚本定义所述数据库系统中与所述数据对象、所述唯一企业ID以及所述数据对象的一个或更多个属性相对应的一个或更多个数据库列;更新所述动态虚拟表以包括与所述自定义对象脚本中的数据库列定义相对应的一个或更多个虚拟列;更新所述多租户非关系型数据库中共享表的一个或更多个现有列,以匹配添加到所述动态虚拟表的一个或更多个虚拟列;限制对企业的共享表的与所述自定义数据对象对应的所述唯一企业ID无关的所述一个或更多个现有列的访问。22.如权利要求21所述的系统,其中所述自定义对象脚本与所述企业相关联。23.如权利要求21或权利要求22所述的系统,其中所述自定义数据对象是标准共享对象的扩展。24.如权利要求21-23中任一项所述的系统,其中来自所述多个企业中的一个企业的、定义所述数据库系统内的自定义数据对象的所述请求进一步识别与所述自定义数据对象相关联的一个或更多个主键列。25.如权利要求24所述的系统,其中所述一个或更多个主键列对应于与所述企业相关联的所述唯一企业ID。26.根据权利要求21-25中任一项所述的系统,所述指令进一步配置为使得所述数据库系统:为与所述唯一企业ID相关联的企业供应对所述共享表的所述一个或更多个现有列的访问。27.根据权利要求21-26中任一项所述的系统,所述指令进一步配置为使得所述数据库系统:将一个或更多个记录添加到所述共享表,所述一个或更多个记录与所述唯一企业ID以及所述共享表的更新的一个或更多个现有列相关联。28.根据权利要求21-27中任一项所述的系统,所述指令进一步配置为使得所述数据库系统:将所述共享表的所述更新的一个或更多个现有列与一个或更多个隐私设置相关联,所述一个或更多个隐私设置确定所述一个或更多个现有列对一个或更多个企业的可见性。29.根据权利要求21-28中任一项所述的系统,其中所述自定义数据对象的所述一个或更多个属性是由所述企业定义的自定义属性。30.如权利要求21-29中任一项所述的系统,其中来自所述多个企业中的一个企业的、定义所述数据库系统内的自定义数据对象的所述请求进一步识别由所述企业定义的关联ID属性,所述关联ID属性配置为聚合与所述共享表的一个或更多个列相关联的数据。31.一种方法,包括:维护与多个企业相关联的多租户非关系型数据库,所述多租户非关系型数据库识别用于所述多个企业中的每个企业的多个记录;维护与所述多个记录相关联的动态虚...

【专利技术属性】
技术研发人员:A·沃沙瓦斯基A·托曼E·莱文J·A·费尔南多S·简恩
申请(专利权)人:易享信息技术有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1