多租户环境中租户特定数据集的管理的制作方法

文档序号:6533238阅读:227来源:国知局
多租户环境中租户特定数据集的管理的制作方法【专利摘要】一种用于通过以下方式管理多租户系统中的租户特定数据集的方法、计算机程序产品和系统:接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求,检索标识作出请求的租户的租户标识元数据,基于第二类型的多租户部署修改物理数据存储库中的数据集,以及修改与抽象层相关联的元数据以允许修改后的数据集被访问。【专利说明】多租户环境中租户特定数据集的管理【
技术领域
】[0001]本发明的领域涉及多租户数据库。更具体地,本发明的领域涉及多租户平台即服务(PaaS)和软件即服务(SaaS)的服务(在下文中统称为"服务")。【
背景技术
】[0002]服务可以在公共、混合和私有云环境中提供。由服务提供者提供的服务可以访问存储在数据库管理系统(DBMS)中的数据,DBMS代表计算机化的信息存储和检索系统。DBMS可以管理多个数据库,每一个数据库可以由不同的实体拥有。服务可以由多个客户组织(租户)同时订购。因此,服务处理不同租户的数据。出于安全和监管的原因,租户要求不同程度的数据隔离,这在租户订购服务时被规定为"政策要素"。更为重要的是,隔离程度必须在安全和监管要求随时间改变时能够无缝改变。因此,服务提供者需要实现允许数据和配置分开的针对服务的多租户架构,使得每个租户接收到适当水平的数据隔离。[0003]当前存在用于管理多租户数据的三种部署选项。第一部署选项将租户数据存储在分离的数据库中,这是数据隔离的最简单方案。计算资源和应用代码通常在服务器上的所有租户之间共享,但是每个租户具有其自己的与属于所有其他租户的数据在逻辑上保持隔离的数据集。元数据将每个数据库与正确的租户相关联,并且数据库安全性会防止任何租户无意或恶意地访问其他租户的数据。然而,该选项倾向于导致服务提供者维护设备和备份租户数据的更高成本。硬件成本也比在备选部署选项下更高,这是由于在给定数据库服务器上能够容纳的租户数量受限于服务器可以支持的数据库的数量。[0004]第二部署选项涉及在相同的数据库中容纳多个租户,每个租户具有其自己的表格集以及集合到专门为该租户创建的模式中的其他数据库产物。尽管不如完全隔离系统,这种方案为有安全意识的租户提供中等程度的逻辑数据隔离,并且能够支持每个数据库服务器上的更大数量的租户。[0005]第三部署方案涉及使用相同的数据库和相同的表格集来托管多个租户的数据。给定表格可以包括以任何次序存储的来自多个租户的记录,并且租户标识列将每个记录与适当的租户相关联。在这三个选项之中,共享模式方案具有最低的硬件和备份成本,这是因为其允许每个数据库服务器服务于最大数量的租户。[0006]以透明的方式将数据库部署从一个选项转换为另一个选项在当前并不被支持,并且只能用手动数据移动和系统停机来解决。此外,当前在这类转换时必须记录访问数据库的任何应用以反映对该数据库的改变。【
发明内容】[0007]各实施例提供了一种方法、计算机程序产品和系统,用于执行操作以便通过以下方式管理多租户系统中的租户特定数据集:接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求,检索标识作出请求的租户的租户标识元数据,基于第二类型的多租户部署修改物理数据存储库中的数据集,以及修改与抽象层相关联的元数据以允许修改后的数据集被访问。【专利附图】【附图说明】[0008]因此,可以参考附图来提供上述方面被实现并详细理解的方式、上面简要概括的本发明的实施例的更具体的描述。[0009]然而,应该注意的是,附图仅仅示出本发明的典型实施例,并且因此不应视为是对本发明范围的限制,因为本发明可以容纳其他等同有效的实施例。[0010]图1是示出根据本发明实施例的云计算环境的框图。[0011]图2是示出根据本发明的实施例,管理和转换多租户环境中的部署选项的架构的框图。[0012]图3是示出根据本发明实施例的两层应用架构的组件的框图。[0013]图4是示出根据本发明的实施例的用于转换数据库部署选项的方法的流程图。[0014]图5是示出根据本发明的实施例的用于转移数据以完成数据库从一个多租户部署选项到另一个多租户部署选项的转换的方法的流程图。[0015]图6是示出根据本发明的实施例,用于转移数据以完成数据库从一个多租户部署选项到另一个多租户部署选项的转换的方法的流程图。[0016]图7描绘根据本发明实施例的云计算环境。[0017]图8描绘根据本发明实施例的抽象模型层。【具体实施方式】[0018]本发明的实施例提供了用于管理多租户环境中的租户特定数据的技术。在某些实施例中,提供了一种从一个多租户数据库部署转换为另一个多租户数据库部署的方法。在某些实施例中,通过抽象层接收在多租户部署之间转换的请求,使得作出请求的应用不知道用于存储租户数据的物理实现。在某些实施例中,提供了一种转换数据库部署的应用。在某些实施例中,该应用是数据库管理系统(DBMS)的一部分。该应用可以配置成接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求。该应用然后可以通过抽象层检索标识作出该请求的租户的租户标识元数据。该应用然后可以基于第二类型的多租户部署修改物理数据存储库中的数据集。最后,该应用可以根据第二类型的多租户部署,修改与抽象层相关联的元数据以访问修改后的数据集。[0019]提前应当理解的是,尽管包括了关于云计算的详细描述,但是本文中记载的教导的实现不限于云计算环境。而是,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境而实现。[0020]为方便起见,详细描述包括已经从以下文献中得到的后面的定义:PeterMell和TimGrance在2009年10月7日发表的"DraftNISTWorkingDefinitionofCloudComputing",其在随附提交的IDS中被引用,并且其副本随附在后。[0021]云计算是一种服务交付模型,用于实现对可配置的计算资源(例如,网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)的共享池的便利、按需的网络访问,所述可配置的计算资源能够以最小的管理成本或与服务提供者的最少交互而被快速供应和释放。这种云模型可以包括至少五个特征、至少三个服务模型和至少四个部署模型。[0022]其特征如下:[0023]按需自助服务:云的消费者无需与服务提供者进行人为交互就能够单方面自动地按需供应诸如服务器时间和网络存储等之类的计算能力。[0024]广泛的网络访问:能力可以通过网络获取并通过标准机制访问,所述标准机制促进不同种类的瘦客户端平台或厚客户端平台(例如移动电话、膝上型电脑和PDA)对云的使用。[0025]资源池化:提供者的计算资源被池化以使用多租户模型服务于多个消费者,并且根据需求动态地分配和再分配不同的物理和虚拟资源。存在着位置独立感,因为消费者通常不能控制或不知晓所提供的资源的确切位置,但是能够在较高的抽象层面(例如国家、州或数据中心)上规定位置。[0026]迅速弹性:能力能够迅速且有弹性地被供应,在一些情况下被自动地供应以快速扩展,并且能够迅速释放以快速缩减。对于消费者而言,用于供应的可用能力往往看上去是无限的,并且能够在任何时候购买任意数量。[0027]被测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和有效用户帐户)的某个抽象层面上的计量能力,自动地控制和优化资源使用。可以监测、控制和报告资源使用,从而为被利用的服务的提供者和消费者双方提供透明度。[0028]服务模型如下:[0029]软件即服务(SaaS):向消费者提供的能力是使用在云基础设施上运行的提供者的应用。该应用可通过诸如网络浏览器的瘦客户端接口(例如基于网络的电子邮件)从各种客户端装置访问。除了有限的特定于用户的应用配置设置的可能例外,消费者并不管理或控制包括网络、服务器、操作系统、存储、乃至个体应用能力的下层云基础设施。[0030]平台即服务(PaaS):向消费者提供的能力是把使用提供者支持的程序设计语言和工具创建的消费者创建或获取的应用部署到云基础设施上。消费者并不管理或控制包括网络、服务器、操作系统或存储的下层云基础设施,但是对部署的应用和可能的应用托管环境配置具有控制权。[0031]基础设施即服务(IaaS):向消费者提供的能力是在消费者能够部署并运行包括操作系统和应用的任意软件的地方供应处理、存储、网络和其他基础计算资源。消费者并不管理或控制下层云基础设施,但是对操作系统、存储、部署的应用具有控制权,并且可能对选择联网组件(例如主机防火墙)具有有限的控制权。[0032]部署模型如下:[0033]私有云:云基础设施单独为某个组织运行。其可以由该组织或第三方管理、并且可以存在于该组织内部或外部。[0034]社区云:云基础设施被若干组织共享并且支持具有共同关注的问题(例如使命、安全要求、政策和合规考虑)的特定社区。其可以由这些组织或第三方管理并且可以存在于该社区内部或外部。[0035]公共云:云基础设施对于一般公众或大型行业群体而言可用并且由出售云服务的组织拥有。[0036]混合云:云基础设施是两个或多个云(私有云、社区云或公共云)的组成物,所述两个或多个云依然是独特的实体,但是通过使数据和应用能够移植的标准化或私有技术(例如用于云之间的负荷平衡的云突发(cloudbursting))绑定在一起。[0037]云计算环境是面向服务的,聚焦于无状态性、低耦合性、模块性和语意互操作性。云计算的核心是包含互连节点的网络的基础设施。云计算网络中的节点是计算装置,包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机、小型机系统、大型计算机系统、以及包括上述系统或装置中的任意一个的分布式云计算环境、等等。云计算节点能够实现和/或执行上文中阐述的任何功能。[0038]下面参照本发明的实施例。然而,应当理解,本发明并不局限于特定描述的实施例。相反,以下特征和元件的任何组合,无论其是否与不同的实施例相关,都被预期到用于实现和实践本发明。而且,尽管本发明的实施例可以实现优于其他可能的解决方案和/或现有技术的优点,但是给定的实施例是否实现了特定优点并非是对本发明进行限制。因此,以下方面、特征、实施例和优点仅是说明性的,除非在权利要求中明确陈述,否则其不应被视为所附权利要求的要素或限制。同样,对"本发明"的提及不应被解释为本文公开的任何发明主题的概括,并且不应被认为是所附权利要求的要素或限制,除非在权利要求中明确陈述。[0039]所属领域的技术人员将理解的是,本发明的各个方面可以实施为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或软件和硬件方面结合的实施方式,这里可以统称为"电路"、"模块"或"系统"。此外,本发明的各个方面还可以采取用一个或多个计算机可读介质实施的计算机程序产品的形式,该计算机可读介质上包含有计算机可读程序代码。[0040]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的适当组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0041]计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采用各种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。[0042]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。[0043]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java、Smalltalk、C++等),还包括常规的过程式程序设计语言(诸如"C"程序设计语言或类似的程序设计语言)。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。[0044]下面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。[0045]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品°[0046]计算机程序指令还可以加载到计算机、其它可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。[0047]本发明的实施例可以通过云计算基础设施提供给最终用户。云计算通常指的是通过网络提供作为服务的可伸缩计算资源。更为正式地,云计算可以被定义为在计算资源与其下层技术架构(例如,服务器、存储、网络)之间提供抽象的计算能力,从而实现对可配置的计算资源的共享池的便利、按需的网络访问,所述可配置的计算资源能够以最小的管理成本或与服务提供者的最少交互而被快速供应和释放。因此,云计算允许用户访问"云"中的虚拟计算资源(例如,存储、数据、应用甚至完全虚拟的计算系统),而不管用于提供计算资源的下层物理系统(或这些系统的位置)如何。[0048]通常,云计算资源在按使用付费的基础上向用户提供,其中用户仅被收取实际使用的计算资源的费用(例如,用户消费的存储空间的量或由用户实例化的虚拟化系统的数量)。用户可以访问在任何时间驻留在云中以及跨越互联网来自任何地方的任何资源。在本发明的上下文下,用户可以访问云中可用的应用或相关数据。例如,多租户数据库部署转换应用可以在云中的计算系统上执行、并将数据库从一个多租户部署转换为另一个多租户部署。在这类情况下,多租户数据库部署转换应用可以转换数据库部署、并在云中的存储位置存储物理数据存储库和相关联的租户元数据。这样做允许用户从附连到与云连接的网络(例如,互联网)的任何计算系统访问该信息。[0049]图1是示出根据本发明的实施例的用于提供软件即服务的云计算系统100的框图,其中服务器提供应用、并以三种不同部署中的一种部署存储多个客户(租户)的数据。联网的系统100包括服务器102和客户端计算机132。服务器102和客户端132经由网络130彼此连接,并且可以经由网络130连接到其他计算机。一般来说,网络130可以是电信网和/或广域网(WAN)。在特定实施例中,网络130是互联网。[0050]服务器102通常包括经由总线115连接到存储器106、网络接口装置124、存储装置108、输入装置126以及输出装置128的处理器104。服务器102通常在操作系统107的控制下。操作系统的示例包括UNIX,MicrosoftWindows?.操作系统的各版本,以及Linux?.操作系统的发行版。更一般地,可以使用支持本文公开的功能的任何操作系统。处理器104被包括以表示单个CPU、多个CPU、具有多个处理核的单CPU等。类似地,存储器106可以是随机存取存储器。尽管存储器106被示为单数个体,但应当理解,存储器106可以包括多个模块,并且存储器106可以以多个级别存在,从高速寄存器和高速缓存到较低速度但更大的DRAM芯片。网络接口装置124可以是允许服务器102经由网络130与其他计算机通信的任何类型的网络通信装置。[0051]存储装置108可以是持久存储装置。尽管存储装置108被示为单个单元,但是存储装置108可以是固定和/或可移除存储装置的组合,例如固定的磁盘驱动器、固态驱动器、软盘驱动器、磁带驱动器、可移除存储卡或光存储装置。存储器106和存储装置108可以是跨越多个主要和次级存储装置的一个虚拟地址空间的一部分。[0052]如图所示,服务器的存储装置108包含多个数据库。在该特定附图中,示出四个数据库,尽管任何数量的数据库可以存储在服务器102的存储装置108中。存储装置108被示为包含编号为118U20和122的租户特定数据库,每个数据库对应于不同的部署选项。存储装置108也被示为包含元数据仓库125,其存储租户标识信息、系统策略和任何其他相关信息。[0053]输入装置126可以是用于向服务器102提供输入的任何装置。例如,可以使用键盘和/或鼠标。输出装置128可以是用于向服务器102的用户提供输出的任何装置。例如,输出装置108可以是任何常规的显示屏或扬声器组。尽管与输入装置126分开示出,但是输出装置128和输入装置126可以组合在一起。例如,可以使用带有集成的触摸屏的显示屏。[0054]如图所示,服务器102的存储器106包括配置成经由网络130向用户提供多个服务的多租户应用110。如图所示,服务器102的存储器106还包含配置成管理包含在服务器102的存储装置108中的多个数据库的数据库管理系统(DBMS)112。服务器102的存储器106还包含网络服务器114,其执行传统的网络服务功能,并且还可以提供作为不同应用(例如多租户应用110)的运行时环境的应用服务器功能(例如,J2EE应用服务器)。[0055]根据本发明的实施例,如图所示,客户端计算机132包含处理器134、存储器136、操作系统138、存储装置142、网络接口144、输入装置146和输出装置148。这些组件的描述和功能与参照服务器102描述的等效组件相同。如图所示,客户端计算机132的存储器136也包含网络浏览器140,在某些实施例中网络浏览器140被用于访问由服务器102提供的服务。[0056]图1的特定描述仅用于说明目的;应当理解,本发明并不局限于特定描述的实施例,并且可预期到实现和实践本发明的任何组合。尽管图1示出单个服务器102,但是本发明的实施例预期到用于提供本文所述服务和功能的任何数量的服务器。而且,尽管在图1中被示出与服务器102在一起,但是两层多租户应用110的服务和持久功能可以被容纳在分离的物理服务器中或者容纳在相同服务器内的分离的虚拟服务器中。在某些实施例中,多租户应用110可以被部署在计算集群中的多个实例中。如本领域的普通技术人员所知,为多租户应用110执行其相应功能的模块可以被容纳在相同服务器、不同服务器或其任何组合中。存储装置中的项目(例如元数据仓库125、数据库118、120和122)也可以存储在相同服务器、不同服务器或其任何组合中,并且也可以作为应用模块驻留在相同或不同服务器上。[0057]图2是示出根据本发明的实施例管理和转换多租户环境中的部署选项的架构的框图200。如图所示,多租户205i_N经由网络130连接到服务器102、并且访问包含在服务器102的存储器106中的多租户应用110。下面进一步详细描述的多租户应用110配置成向租户提供服务,在某些实施例中多租户应用110包括云计算环境中的多个软件即服务应用。还示出的是抽象层220,其充当多租户应用110和DBMS112之间的中介。通过抽象层220,可以完成不同数据库部署选项之间的透明转换,使得多租户应用110不需要知道每个数据库的物理实现、并且多租户应用110不需要被记录以反映数据库中的变化。抽象层220配置成接收来自多租户应用110的查询,然后将租户特定信息插入到该查询中,使得查询被引导到适当的数据库和/或数据库表格。租户特定信息可以包括但不限于与每个租户拥有的数据库、模式、表格和列的物理实现相关的细节。这类细节可以包括数据库、模式、表格和列的名称和位置。在备选实施例中,抽象层220可以被实现为数据库管理系统中的联合能力的扩展。在某些实施例中,抽象层还执行数据放置层的功能,该数据放置层负责接收转换请求并随后将数据从一个多租户部署类型转换为另一个多租户部署类型。[0058]在某些实施例中,租户特定信息被存储在元数据仓库125中。元数据仓库125的实施例包括关系数据库、内容管理系统、或由实施策略和数据映射的应用模块引用的文件系统。下面进一步详细描述的DBMS112是通用数据库管理系统。如图所示,DBMS112管理多个数据库,其包括:分别用于租户?\_Ν的分离的物理数据库235i_N;包含用于租户'、^和TM的分离的模式242、244和246的共享数据库240;以及包含用于所有租户的单个模式252的共享数据库250。在某些实施例中,DBMS112还可以直接管理元数据仓库125。如图所示,数据库250包含模式252,其具有分别对应于租户标识信息、密钥名和密钥值的示例性列254、256和258。租户标识信息在元数据仓库125中被存储和管理。图2中的特定描述仅用于说明目的;应当理解,本发明并不局限于特定描述的实施例,并且可以预期到用于实现和实践本发明的任何组合。[0059]图3是示出根据本发明实施例的两层应用架构的组件的框图。如图所示,多租户应用110包含服务340和持久访问层350。多租户应用110驻留在适当的应用运行时(例如J2EE应用运行时)的应用层上,例如IBM?WebSPhere⑧;应用服务器上(IBM和WebSphere是国际商业机器公司在全球许多司法辖区注册的商标)。服务340包括任何软件即服务(SaaS)解决方案,其中应用在服务器上被执行并且由用户经由网络(例如互联网)被访问。SaaS应用的示例包括但不限于用于主数据管理(MDM)、会计、协作、客户关系管理、企业资源规划、开发票(invoicing)、人力资源管理、内容管理和服务台管理的应用。持久访问层350是配置成当与抽象层220耦合时,允许多租户应用110及其服务340以透明方式访问在多租户环境中管理的多个数据库的接口。由于多租户应用110及其服务340不知道他们引用的数据库的物理实现,所以持久访问层350提供隐藏数据库的物理实现细节的多租户应用与抽象层之间的链接。通过持久访问层350,多租户应用110及其服务340通过生成查询来向数据库读取和写入数据,所述查询被发送到抽象层进行进一步外推和处理。[0060]如图所示,多租户应用110被连接到抽象层220,从而提供如上所述的功能。根据本发明的实施例,抽象层220提供多租户应用110与DBMS112之间的抽象层。如图所示,DBMS112包含数据库引擎300,其控制标准的数据库功能,例如读、写、查询和其他数据库管理工具。在某些实施例中,DBMS112可以执行在某些实施例中由如上所述的抽象层220执行的数据放置层功能。[0061]图4是示出根据本发明的实施例,将租户特定数据集从一个多租户部署选项转换为第二多租户部署选项的方法400的流程图。在一个实施例中,多租户应用110执行方法410的步骤。该方法开始于步骤410,在该步骤中转换请求由多租户应用110从租户接收。在步骤420,多租户应用110通过访问被包含在元数据仓库125中的信息,识别作出请求的租户。在元数据仓库125是关系数据库的实施例中,多租户应用110连接到元数据仓库125以检索与作出请求的租户相关联的数据。在步骤430,多租户应用110识别该租户的当前多租户部署选项。在一个实施例中,使用来自元数据仓库125的信息来确定当前的多租户部署选项。在另一个实施例中,当前的多租户部署选项由用户作为输入提供。通常,可以预期到用于确定当前部署选项的任何适合的方法。[0062]在步骤440,多租户应用110识别由该租户请求的部署选项。在某些实施例中,多租户应用110从用户接收定义所请求的多租户部署的输入。在步骤450,多租户应用110修改当前部署中的数据集,以实现该租户的转换请求。步骤450的实施例在下面关于图5和图6进行描述。在步骤460,多租户应用110修改与抽象层220相关联的元数据,以允许多租户应用110及其服务340访问转换后的数据库而无需代码修改。因为多租户应用110及其服务340与下层数据库的实际物理实现无关地被编码,所以抽象层220必须修改由多租户应用110的持久访问层350提交的查询,以便反映数据库的物理实现中的所选的部署选项。没有这样的修改,多租户应用110及其服务340将不能以透明方式无代码改变地访问下层数据库。在某些实施例中,步骤460包括多租户应用110更新被包含在元数据仓库125中的元数据,以便向抽象层220及其查询提供指向与该租户请求的部署相对应的转换后的数据库的链接。如果请求的部署是私有数据库,则利用足以把该租户现在拥有的私有数据库与抽象层220链接在一起的信息来修改元数据仓库125。在步骤460的某些实施例中,多租户应用110修改与作出请求的租户的数据库相关联的抽象层220中的查询以包括新的识别信息。如果所请求的部署是共享数据库中的私有模式(privateschema),则多租户应用110可以更新包含在元数据仓库125中的条目,以包含针对为作出请求的租户创建的私有模式的引用。在某些实施例中,在与作出请求的租户相关联的抽象层220中的查询被重写,以包含识别该私有模式信息的条款(clause)。如果所请求的部署是共享数据库中的共享模式(sharedschema),则适当的租户标识符从元数据仓库125被检索并更新,或者被插入与该租户相关联的抽象层220中的查询中。[0063]图5是示出根据本发明的实施例,对应于步骤450的方法500的流程图。在某些实施例中,多租户应用110执行方法500中的步骤。该方法开始于步骤510,在该步骤中多租户应用110开始执行包括步骤520-550的循环,用于对作出请求的租户所拥有的每个表格将租户数据库从一个部署选项转换为另一个部署选项。在步骤520,多租户应用110创建用于容纳所请求的部署转换的适当数据结构。在一个实施例中,该数据结构可以是由作出请求的租户拥有的私有数据库,如图2中的每个单元235i_N所示。在另一个实施例中,该数据结构是如图2的单元240所示的共享数据库中所包含的由作出请求的租户拥有的私有模式。然后,该方法进行到步骤530,在该步骤中当前的表格被转移到所创建的数据结构。该转移可以通过任何数量的手段发生,其包括但不限于移动和复制该表格。[0064]然后,该方法进行到步骤540,其允许"在线"表格转移,使得数据库保持可用,并且在该转移期间接收的查询被发布给适当的表格以供执行。因此,必须为在转移期间接收的每种查询类型定义一组规则。在一个实施例中,选择查询被发布给原始和转移后的表格两者,从而产生相应的结果集。在数据被转移时,对于由多租户应用的持久层请求的每个读取查询,该查询被抽象层220重定向到两个位置,然后把取并集操作(UNION)应用于所产生的数据集,并返回组合后的结果作为响应于选择查询的结果。在一个实施例中,插入查询被发布给转移后的表格,使得新数据库条目仅以所请求的部署选项在转移后的表格中被创建。在一个实施例中,更新和删除查询被发布给原始和转移后的表格并在这两个表格中被反映。通过以这种方式接受查询,数据库在数据被转移时仍保持完全可用和可操作。在线转移的优点是,订购的租户不会注意到数据从一个部署选项被移到下一个部署选项,使得服务在任何时候保持可用。没有这一点,结果将是针对该租户的停机时间,这可能是不可接受的一特别是在要移动的数据量非常大(其将导致几小时或几天的停机时间)的情况下。然后,该方法进行到步骤550,在该步骤中多租户应用110确定是否剩有另外的表格要转移。如果剩有另外的表格,则该方法返回到步骤510,否则方法500结束。[0065]在某些实施例中,为了获得更高的数据转移速率并减少在处理数据转移时对系统性能的影响,方法500中描述的转移可以通过提供IBM?FlashCopy?功能而得到进一步改善。(IBM和FlashCopy是国际商用机器公司在全球许多司法管辖区注册的商标)。[0066]图6是示出根据本发明的另一个实施例,对应于步骤450的方法600的流程图。在某些实施例中,多租户应用110执行方法600中的步骤。该方法开始于步骤610,在该步骤中多租户应用110开始执行包括步骤620-695的循环,用于对作出请求的租户所拥有的每个表格将租户数据库从一个部署选项转换为另一个部署选项。在步骤620,在某些实施例中,多租户应用110阻挡对当前表格的访问。在某些实施例中,阻挡访问是通过在抽象层220中设定限制对表格的访问的标志来实现的。仅在当前部署选项是由作出请求的租户拥有的私有数据库或共享数据库中的私有模式的情况下才要求阻挡对表格的访问(以及随后恢复访问)。阻挡访问(以及随后恢复访问)在当前部署是共享数据库中的共享模式的实施例中是可选的,这是由于其他租户的数据也会被阻挡。通过阻挡对表格的访问、直到转移完成,修改将不会被允许,使得数据库的精确副本将被转移。在步骤630,多租户应用110选择包含在要转移的表格中的数据。在当前部署选项是由作出请求的租户拥有的私有数据库的实施例中,发布请求选择所有数据的声明以选择表格数据。在一个实施例中,当前部署选项是共享数据库中的私有模式,并且发布选择来自该模式表格的所有数据的声明,其中所述模式由作出请求的租户拥有,并且该模式信息从元数据仓库125获取。例如,在表格是关系数据库的情况下,SQL查询可以被写为"select*fromschema.table"。在当前部署是共享数据库中的共享模式的实施例中,发布选择租户标识列条目等于与作出请求的租户相关联的租户标识信息的所有数据的声明以选择该数据,并且租户标识信息从元数据仓库125获取。例如,在表格是关系数据库的情况下,SQL查询可以被写为"select*fromtablewheretenant=<tenant>,'。[0067]一旦数据已被选择,该方法进行到步骤640,在该步骤中多租户应用110取决于所请求的部署选项,在由步骤630中执行的选择声明产生的表格中插入或删除包含租户标识信息的列。取决于当前和所请求的部署选项,可以请求或可以不请求租户标识信息,并且需要适当处理租户标识信息。在当前部署是共享数据库中的共享模式的实施例中,返回具有步骤630中选择的数据的租户标识列。在这些实施例中的目标数据库将不需要包含该租户标识信息的列,并且其将被相应地删除。在当前部署是共享数据库中的共享模式的实施例中,在步骤630发布的选择查询可以被修改,使得包含租户标识信息的列不被选择,使随后的删除变得不必要。在目标是共享数据库中的共享模式的实施例中,租户标识列有必要指示哪个租户拥有该数据。因此,对于在步骤630执行的选择声明的结果集中的每个记录,包含租户标识信息的列将被插入,其中该租户标识信息从元数据仓库125获取。[0068]然后,该方法进行到步骤650,在该步骤中多租户应用110确定是否需要新数据结构来完成该部署转换。如果不需要新数据结构,则该方法进行到步骤670。否则,在步骤660,多租户应用110创建适当的数据结构。该数据结构可以是下述中的一个或多个:由租户拥有的新私有数据库,由租户拥有的私有数据库中的新表格,共享数据库中的由租户拥有的新私有模式,或共享数据库中的由租户拥有的私有模式中的新表格。在这些实施例中,多租户应用110从元数据仓库125获取创建数据结构所必要的租户标识信息。[0069]一旦已创建适当的数据结构,该方法进行到步骤670,在该步骤中多租户应用110将表格转移到其目标数据结构。该转移可以通过任何数量的手段发生,包括但不限于移动和复制该表格。然后,该方法进行到步骤680,其规定:对于发布给正被转移的表格的任何查询,返回适当的错误消息直到该转移完成为止。一旦表格已被转移,则该方法进行到步骤690,在该步骤中多租户应用110恢复对该表格的访问,使得该表格可以被租户的应用访问。在某些实施例中,通过去除抽象层220中设定的阻挡对该表格的访问的标志、以及修改抽象层220中的数据以使切换后的部署与该租户相关联,来恢复对表格的访问。在某些实施例中,多租户应用110丢弃来自原始部署的私有数据库以及私有模式中的表格,这是由于根据切换后的部署,他们可能不再被需要。然后,该方法进行到步骤695,在该步骤中多租户应用110确定是否有作出请求的租户所拥有的另外的表格需要被转移。如果存在另外的表格,则该方法返回到步骤610。否则,该方法结束。[0070]方法600的备选实施例包括:通过对于共享数据库中的共享模式的形式的部署创建每个租户数据库视图,来避免在查询中包括具有性质"wheretenant=〈tenant〉"的"where"声明的能力。这些数据库视图在其整个生命周期中由抽象层220创建和管理。数据库视图由存储的查询组成,所述存储的查询可以作为由查询的结果集组成的关系数据库中的虚拟表格被访问。与关系数据库中的普通表格(基本表格)不同,该视图不形成物理模式的一部分,而是从数据库的数据中计算或整理出的动态虚拟表格。改变表格中的数据会改变在后续调用该视图时显示的数据。在另一个实施例中,选择查询可能不在单个步骤中瞄准所有数据,而是以块来处理数据,其中以遵循相同设计理念的若干次迭代发布一系列选择查询,这些选择查询各自检索该数据的互补部分。[0071]在所有情况下,一旦数据转移完成,通过释放数据库资源(这在某些情况下可能意味着数据库的丢弃,或在其他情况下适当丢弃/删除查询)来适当释放源区域中的数据。[0072]通过使用本文所述的分布式、冗余数据库架构和抽象层,多租户部署的物理实现可以对于多租户应用110而言被隐藏。通过隐藏实现细节,在每次新租户订购服务或请求部署转换时,多租户应用110及其提供的每个服务340将不需要被记录。[0073]现在参照图7,其示出说明性的云计算环境750。如图所示,云计算环境750包括一个或多个云计算节点710,由云消费者使用的本地计算装置例如个人数字助理(PDA)或蜂窝电话754A、台式计算机754B、膝上型计算机754D和/或汽车计算机系统754N可以与所述一个或多个云计算节点710通信。节点710可以彼此通信。计算节点710可以具有与服务器102和客户端计算机132相同的属性,服务器102和客户端计算机132各自可以是云计算环境中的计算节点710。它们可以在一个或多个网络中被物理或虚拟地组成群(未示出),例如上文所述的私有、社区、公共或混合云或其组合。这允许云计算环境750提供基础设施、平台和/或软件即服务,云消费者不需要在本地计算装置上为其保持资源。应当理解,在图7中示出的计算装置754A-N的类型旨在仅是说明性的,并且计算节点710和云计算环境750可以通过任何类型的网络和/或可网络寻址的连接(例如,通过使用网络浏览器)而与任何类型的计算机化的装置通信。[0074]现在参照图8,其示出由云计算环境750(图7)提供的一组功能抽象层。提前应当理解的是,图8所示的组件、层以及功能旨在仅是说明性的,并且本发明的实施例并不限于此。如图所示,提供了以下层和对应功能:[0075]硬件和软件层860包括硬件和软件组件。硬件组件的示例包括:主机,在一个示例中是IBM?zSeries?系统;基于RISC(精简指令集计算机)架构的服务器,在一个示例中是IBMpSeries?系统;IBMxSeries?系统;IBMBladeCenter?系统;存储装置;网络和网络组件。软件组件的示例包括:网络应用服务器软件,在一个示例中是IBMWebSphere?,应用服务器软件;以及数据库软件,在一个示例中是IBMDB2?激据库软件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere以及DB2是国际商业机器公司在全球许多司法辖区注册的商标)。[0076]虚拟化层862提供抽象层,可以从该抽象层提供以下虚拟实体的示例:虚拟服务器、虚拟存储装置、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统以及虚拟客户端。[0077]在一个示例中,管理层864可以提供下述功能。资源供应功能提供用于在云计算环境内执行任务的计算资源和其它资源的动态获取。计量和定价功能在云计算环境内对资源进行利用时提供成本跟踪,并为这些资源的消耗开账单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云消费者和任务提供身份验证,以及为数据和其它资源提供保护。用户入口功能为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能提供云计算资源的分配和管理,使得所要求的服务水平得到满足。服务水平协议(SLA)规划和履行功能为根据SLA预期到未来需求的云计算资源提供预先安排和获取。[0078]工作负荷层866提供可为其使用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图绘制和导航;软件开发和生命周期管理;虚拟教室教育递送;数据分析处理;交易处理;以及多租户数据库部署转换。[0079]附图中的流程图和框图示出根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些替代性实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0080]尽管前述内容针对本发明的实施例,但是在不脱离本发明的基本范围的情况下可以设计出本发明的其他和进一步的实施例,并且本发明的范围由所附权利要求确定。【权利要求】1.一种用于管理多租户系统中的租户特定数据集的用计算机实现的方法,包括:接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求;检索标识作出所述请求的租户的租户标识元数据;基于所述第二类型的多租户部署修改所述物理数据存储库中的所述数据集;以及修改与抽象层相关联的元数据以允许访问修改后的数据集。2.如权利要求1所述的用计算机实现的方法,其中所述物理数据存储库由所标识的租户拥有并且是下述中的一种:私有数据存储库;或者共享数据存储库中的私有模式;其中修改所述物理数据存储库中的所述数据集包括:创建目标数据结构,其中所述目标数据结构是下述中的一种:私有数据存储库;或者共享数据存储库中的私有模式;其中所述目标数据结构由所标识的租户拥有;将所述物理数据存储库中的第一表格转移到所述目标数据结构;以及在将所述第一表格转移到所述目标数据结构时:在接收到选择查询时,将所述选择查询发布给所述物理数据存储库中的所述表格和所述目标数据结构中的转移后的表格,其中将取并集操作应用于每个产生的数据集并返回所得结果作为响应于所述选择查询的结果集;在接收到插入查询时,将所述插入查询发布给所述目标数据结构中的所述转移后的表格;以及在接收到更新查询或删除查询时,将所述更新查询或删除查询发布给所述第一表格和所述目标数据结构中的所述转移后的表格。3.如权利要求2所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中所述第一表格是所述物理数据存储库中的由所标识的租户拥有的私有模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库。4.如权利要求2所述的用计算机实现的方法,其中所述物理数据存储库是由所标识的租户拥有的私有数据存储库,其中所述目标数据结构是共享物理数据存储库中的由所标识的租户拥有的私有模式。5.如权利要求1所述的用计算机实现的方法,其中修改所述物理数据存储库中的所述数据集包括:选择来自所述物理数据存储库中的第一表格的数据;将所选的数据转移到目标数据结构,其中所述目标数据结构是与所述第二类型的多租户部署相对应的下述中的一种:私有物理数据存储库,共享数据存储库中的私有模式,或者共享数据存储库中的共享模式;以及在将所选的数据转移到所述目标数据结构时,在接收到指向所述第一表格的查询时,返回错误消息。6.如权利要求5所述的用计算机实现的方法,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述物理数据存储库是由所标识的租户拥有的私有物理数据存储库,所述方法还包括:在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。7.如权利要求5所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述第一表格采用所述物理数据存储库中的由所标识的租户拥有的私有模式,所述方法还包括:在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。8.如权利要求5所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库,其中所选的数据由所标识的租户拥有,所述方法还包括:在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。9.如权利要求5所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是共享数据存储库中的由所标识的租户拥有的私有模式,其中所选的数据由所标识的租户拥有,所述方法还包括:在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。10.如权利要求1所述的用计算机实现的方法,其中访问采用所述第一类型的多租户部署的租户特定数据集的应用能够访问采用所述第二类型的多租户部署的租户特定数据集而无需修改代码,其中访问采用多租户部署的租户特定数据集中的数据的应用不知道所述租户特定数据集的物理实现。11.一种用于管理多租户系统中的租户特定数据集的计算机程序产品,所述计算机程序广品包括:具有与其一起体现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括:计算机可读程序代码,其配置成接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求;计算机可读程序代码,其配置成检索标识作出所述请求的租户的租户标识元数据;计算机可读程序代码,其配置成基于所述第二类型的多租户部署修改所述物理数据存储库中的所述数据集;以及计算机可读程序代码,其配置成修改与抽象层相关联的元数据以允许访问修改后的数据集。12.如权利要求11所述的计算机程序产品,其中所述物理数据存储库由所标识的租户拥有并且是下述中的一种:私有数据存储库;或者共享数据存储库中的私有模式;其中修改所述物理数据存储库中的所述数据集包括:创建目标数据结构,其中所述目标数据结构是下述中的一种:私有数据存储库;或者共享数据存储库中的私有模式;其中所述目标数据结构由所标识的租户拥有;将所述物理数据存储库中的第一表格转移到所述目标数据结构;以及在将所述第一表格转移到所述目标数据结构时:在接收到选择查询时,将所述选择查询发布给所述物理数据存储库中的所述表格和所述目标数据结构中的转移后的表格,其中将取并集操作应用于每个产生的数据集并返回所得结果作为响应于所述选择查询的结果集;在接收到插入查询时,将所述插入查询发布给所述目标数据结构中的所述转移后的表格;以及在接收到更新查询或删除查询时,将所述更新查询或删除查询发布给所述第一表格和所述目标数据结构中的所述转移后的表格。13.如权利要求12所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述第一表格是所述物理数据存储库中的由所标识的租户拥有的私有模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库。14.如权利要求12所述的计算机程序产品,其中所述物理数据存储库是由所标识的租户拥有的私有数据存储库,其中所述目标数据结构是共享物理数据存储库中的由所标识的租户拥有的私有模式。15.如权利要求11所述的计算机程序产品,其中修改所述物理数据存储库中的所述数据集包括:选择来自所述物理数据存储库中的第一表格的数据;将所选的数据转移到目标数据结构,其中所述目标数据结构是与所述第二类型的多租户部署相对应的下述中的一种:私有物理数据存储库,共享数据存储库中的私有模式,或者共享数据存储库中的共享模式;以及在将所选的数据转移到所述目标数据结构时,在接收到指向所述第一表格的查询时,返回错误消息。16.如权利要求15所述的计算机程序产品,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述物理数据存储库是由所标识的租户拥有的私有物理数据存储库,所述方法还包括:在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。17.如权利要求15所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述第一表格采用所述物理数据存储库中的由所标识的租户拥有的私有模式,所述方法还包括:在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。18.如权利要求15所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库,其中所选的数据由所标识的租户拥有,所述方法还包括:在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。19.如权利要求15所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是共享数据存储库中的由所标识的租户拥有的私有模式,其中所选的数据由所标识的租户拥有,所述方法还包括:在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。20.如权利要求11所述的计算机程序产品,其中访问采用所述第一类型的多租户部署的租户特定数据集的应用能够访问采用所述第二类型的多租户部署的租户特定数据集而无需修改代码,其中访问采用多租户部署的租户特定数据集中的数据的应用不知道所述租户特定数据集的物理实现。21.-种系统,包括:一个或多个计算机处理器;包含程序的存储器,所述程序在由所述一个或多个计算机处理器执行时被配置成执行用于管理多租户系统中的租户特定数据集的操作,所述操作包括:接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求;检索标识作出所述请求的租户的租户标识元数据;基于所述第二类型的多租户部署修改所述物理数据存储库中的所述数据集;以及修改与抽象层相关联的元数据以允许访问修改后的数据集。22.如权利要求21所述的系统,其中所述物理数据存储库由所标识的租户拥有并且是下述中的一种:私有数据存储库;或者共享数据存储库中的私有模式;其中修改所述物理数据存储库中的所述数据集包括:创建目标数据结构,其中所述目标数据结构是下述中的一种:私有数据存储库;或者共享数据存储库中的私有模式;其中所述目标数据结构由所标识的租户拥有;将所述物理数据存储库中的第一表格转移到所述目标数据结构;以及在将所述第一表格转移到所述目标数据结构时:在接收到选择查询时,将所述选择查询发布给所述物理数据存储库中的所述表格和所述目标数据结构中的转移后的表格,其中将取并集操作应用于每个产生的数据集并返回所得结果作为响应于所述选择查询的结果集;在接收到插入查询时,将所述插入查询发布给所述目标数据结构中的所述转移后的表格;以及在接收到更新查询或删除查询时,将所述更新查询或删除查询发布给所述第一表格和所述目标数据结构中的所述转移后的表格。23.如权利要求22所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述第一表格是所述物理数据存储库中的由所标识的租户拥有的私有模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库。24.如权利要求22所述的系统,其中所述物理数据存储库是由所标识的租户拥有的私有数据存储库,其中所述目标数据结构是共享物理数据存储库中的由所标识的租户拥有的私有模式。25.如权利要求21所述的系统,其中修改所述物理数据存储库中的所述数据集包括:选择来自所述物理数据存储库中的第一表格的数据;将所选的数据转移到目标数据结构,其中所述目标数据结构是与所述第二类型的多租户部署相对应的下述中的一种:私有物理数据存储库,共享数据存储库中的私有模式,或者共享数据存储库中的共享模式;以及在将所选的数据转移到所述目标数据结构时,在接收到指向所述第一表格的查询时,返回错误消息。26.如权利要求25所述的系统,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述物理数据存储库是由所标识的租户拥有的私有物理数据存储库,所述方法还包括:在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。27.如权利要求25所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述第一表格采用所述物理数据存储库中的由所标识的租户拥有的私有模式,所述方法还包括:在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。28.如权利要求25所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库,其中所选的数据由所标识的租户拥有,所述方法还包括:在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。29.如权利要求25所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是共享数据存储库中的由所标识的租户拥有的私有模式,其中所选的数据由所标识的租户拥有,所述方法还包括:在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。30.如权利要求21所述的系统,其中访问采用所述第一类型的多租户部署的租户特定数据集的应用能够访问采用所述第二类型的多租户部署的租户特定数据集而无需修改代码,其中访问采用多租户部署的租户特定数据集中的数据的应用不知道所述租户特定数据集的物理实现。【文档编号】G06F12/00GK104160381SQ201380012870【公开日】2014年11月19日申请日期:2013年2月21日优先权日:2012年3月8日【发明者】M·奥伯霍费尔,D·J·曼德尔施泰因,I·M·米尔曼,S·潘迪特,C·D·沃尔夫森申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1