CN103577457A - 用于对多租户数据库进行操控的方法和系统 - Google Patents
用于对多租户数据库进行操控的方法和系统 Download PDFInfo
- Publication number
- CN103577457A CN103577457A CN201210271433.1A CN201210271433A CN103577457A CN 103577457 A CN103577457 A CN 103577457A CN 201210271433 A CN201210271433 A CN 201210271433A CN 103577457 A CN103577457 A CN 103577457A
- Authority
- CN
- China
- Prior art keywords
- database
- tenant
- source
- map information
- logical view
- 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.)
- Granted
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
-
- 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/21—Design, administration or maintenance of databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (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-tenency)技术近年来日益引起人们的兴趣。多租户技术是指在服务提供商的服务器上运行软件的实例,由该实例为多个客户组织(也即租户)尤其是中小型客户提供服务。在大规模多租户应用场景中可能有大量的(例如超过100万个)中小型租户的数据物理上分布在不同的源数据库中。
现有的多租户技术在这些源数据库中通常采用多种物理数据共享或存储/隔离模式。图1示意性示出了多租户系统源数据库中物理数据共享或存储/隔离模式的框图。如图1所示,例如可以包括以下三种典型模式:
独立数据库模式,即每个租户拥有自己单独的数据库。这种模式对于用户数据隔离级别最高,安全性最好。但是这种模式增大了数据库的安装数量,随之带来维护成本和购置成本的增加。对于硬盘和内存空间的利用率不高,并且随着租户数量的增加,整体系统数据访问性能水平会显著降低。这种单独数据库模式适用于租户数量较少并且为大型租户的应用场景。
共享数据库及隔离数据架构。在这种模式中,多个租户共享同一个数据库,每个租户拥有自己单独的表组,每个租户采用各自的架构(schema)。这种模式能够为安全性要求较高的租户提供了一定程度的逻辑数据隔离。
共享数据库及共享数据架构。在这种模式中,多个租户共享同一个数据库中的同一个表组,采用同一个架构。在表组的每一个表中记录“租户ID”字段以便将不同的租户的数据记录区分开。这种模式是共享程度最高、隔离级别最低的模式。同时,采用这种模式的数据库维护和购置成本低,允许每个数据库支持的较大数据量的租户。
因此,例如在支持多租户平台即服务(PaaS)平台上,每个应用将实际上具有以上述一种或多种物理数据共享或存储/隔离模式组织的租户数据的多个源数据库。存在对各个源数据库中的租户数据操作的各种需求。例如,当独立软件供应商(ISV)在应用调试、测试和更新中需要对各个源数据库中的租户数据进行操作,或者当应用运行时租户数据出现问题时需要在一定时间内修复数据以保证租户的事务。然而,由于源数据库底层(underlying)模式和技术的复杂性,在现有系统中对多租户系统中的源数据库进行操作是繁复而耗时的。
发明内容
为了解决现有技术中存在的问题,本发明提供一种对多租户数据库进行操作的技术方案。
根据本发明的一个方面,提供了一种用于对多租户数据库进行操控的方法,其中该多租户数据库包括用于存储租户数据的一个或多个源数据库。该方法包括:接收针对租户特定的逻辑视图的数据库操作请求,其中租户特定的逻辑视图是基于指向多租户数据库中包括的一个或多个源数据库的映射信息以及多租户元数据为各个租户创建的;获取与数据库操作请求有关的指向多租户数据库中包括的一个或多个源数据库的映射信息;基于获取的映射信息,执行对一个或多个源数据库的数据库操作。
根据本发明的一个方面,提供了一种对多租户数据库进行操控的方法,其中该多租户数据库包括用于存储租户数据的一个或多个源数据库。该方法包括:在操控台数据库中建立指向所述源数据库的映射信息;基于所述映射信息以及多租户元数据,为各个租户创建租户特定的逻辑视图;以及在运行时支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。
根据本发明的另一个方面,提供了一种对多租户数据库进行操控的系统,其中该多租户数据库包括用于存储租户数据的一个或多个源数据库。该系统包括:操控台数据库管理器,被配置为在操控台数据库中建立指向所述源数据库的映射信息;逻辑视图生成器,被配置为基于所述映射信息以及多租户元数据,为各个租户创建租户特定的逻辑视图,并且被配置为在运行时支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。
根据本发明的实施方式,能够向操作者隐藏底层源数据库复杂的模式和技术,并且便于提供用户熟悉的界面和操作风格,由此简化操作者在对多租户系统的多个源数据库进行操控的过程。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了多租户系统源数据库中物理数据共享或存储/隔离模式的框图。
图2示出了适于用来实现本发明实施方式的示例性计算系统200的框图。
图3示出了根据本发明实施方式的用于对多租户数据库进行操控的系统300的框图。
图4示出了根据本发明实施方式的在初始化时用于对多租户数据库进行操控的方法400的流程图。
图5示出了根据本发明实施方式的在运行时用于对多租户数据库进行操控的方法500的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图2示出了适于用来实现本发明实施方式的示例性计算系统200的框图。如图2所示,计算机系统200可以包括:CPU(中央处理单元)201、RAM(随机存取存储器)202、ROM(只读存储器)203、系统总线204、硬盘控制器205、键盘控制器206、串行接口控制器207、并行接口控制器208、显示控制器209、硬盘210、键盘211、串行外部设备212、并行外部设备213和显示器214。在这些设备中,与系统总线204耦合的有CPU 201、RAM 202、ROM 203、硬盘控制器205、键盘控制器206、串行控制器207、并行控制器208和显示控制器209。硬盘210与硬盘控制器205耦合,键盘211与键盘控制器206耦合,串行外部设备212与串行接口控制器207耦合,并行外部设备213与并行接口控制器208耦合,以及显示器214与显示控制器209耦合。应当理解,图2所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
为了解决现有技术中存在的问题,本发明的实施方式提供一种解决方案,用于为多租户数据库系统提供统一的操控台,使得操作者(管理员或者得到授权的租户)能够通过熟悉的常规用户界面和操作风格对多租户系统的底层源数据库进行操作。通过使用根据本发明实施方式,操作者无需了解底层源数据库的特定物理数据共享或存储/隔离模式,由此简化了操作者在对多租户系统的多个源数据库进行操作的过程。
图3示出了根据本发明实施方式的用于对多租户数据库进行操控的系统300的框图。
如图3所示,根据本发明实施方式的用于对多租户数据库进行操控的系统300包括操控台数据库管理器310、操控台数据库320以及逻辑视图生成器330。
操控台数据库管理器310用于执行对多租户数据库系统中各个源数据库的管理功能,包括但不限于在操控台数据库320中建立指向多租户数据库系统的各个源数据库的映射信息。操控台数据库管理器310建立上述映射信息还包括对上述映射信息进行维护,包括:当新建立新源数据库时添加映射信息;当源数据库被改变时相应地更新所建立的映射信息;当源数据库被注销时删除所建立的映射信息,等等。
根据本发明的一个实施方式,在初始化阶段,操控台数据库管理器310为多租户数据库创建操控台数据库320。操控台数据库管理器310编目多租户数据库的源数据库中的每一个,并且为编目的源数据库创建映射信息以建立数据库联邦。例如,操控台数据库管理器310利用对应于源数据库中各个表组的表组别名来对建立数据库联邦。在运行时,当多租户数据库的源数据库被改变化时(例如,添加新的源数据库、注销原有源数据库、改变源数据库中物理数据共享或存储/隔离模式,等等),相应地对映射信息进行维护。
源数据库可以包括存储有租户数据的数据库,例如,图3中作为示例示出的云数据库中的数据库1-4。源数据库还可以包括存储有系统数据的数据库,例如,图3中作为示例示出的源数据库中的数据库0。源数据库可以采用不同的数据共享或存储/隔离模式来实现对于多租户数据的存储。例如,源数据库1所采用的存储/隔离模式是如图1中所示的共享数据库及共享数据架构,其中租户A和租户B共享同一表组,采用同一个架构,通过在每个表中记录“租户ID”字段来区分不同租户的数据。数据库2所采用的存储/隔离模式是如图1中所示的共享数据库及隔离数据架构,其中租户C和租户D共享同一个数据库,但租户C和租户D分别拥有自己单独的表组,每个租户采用各自的架构。数据库3、4所采用的存储/隔离模式是如图1中所示的独立数据库模式,其中租户E单独使用数据库3,而租户F单独使用数据库4。
为了能够向操作者提供统一、便捷的对源数据库的操控,逻辑视图生成器330基于操控台数据库320中存储的映射信息以及多租户元数据(存储于多租户元数据库(未示出)中),为各个租户创建租户特定的逻辑视图,以便操作者基于租户特定的逻辑视图对相应的源数据库进行操作。
特别地,对于源数据库中具有的多租户共享表组,逻辑视图生成器330所创建的逻辑视图能够独立地反映单个租户的数据库逻辑。例如,对于租户A和租户B,逻辑视图生成器330分别创建特定于租户A的逻辑视图,以及特定于租户B的逻辑视图。通过特定于租户A的逻辑视图仅租户A的数据记录可见,而通过特定于租户B的逻辑视图仅租户B的数据记录可见。由此,即使对于低隔离级别的共享数据库/共享数据架构也能有效地提供数据隔离。
根据本发明的一个实施方式,逻辑视图生成器330基于控制台数据库中的联邦的表组别名和多租户元数据为各个租户创建租户特定的逻辑视图。
根据本发明的一个实施方式,多租户元数据库(未示出)存储有多租户元数据。该多租户元数据可以包括各租户与源数据库中表组的对应关系。在又一示例中,为了支持应用特定的多租户数据库操作,多租户元数据还可以包括特定应用与表组的对应关系。在又一示例中,多租户元数据还可以包括各个租户采用的数据隔离级别,用于提供租户的服务等级相关的信息。多租户元数据库可以被实现为独立于操控台数据库和/或多租户云数据库的单独的数据库,也可以被实现为结合操控台数据库和/或多租户云数据库而实现的数据库。
根据本发明的一个实施方式,逻辑视图生成器330支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。
根据本发明的一个实施方式,系统的鉴权模块(未示出)可以向特定用户进行授权,由此使得例如具有管理员权限的独立软件供应商或者获得授权的租户的操作者可以基于逻辑视图在用户界面中对相应租户的实际数据进行数据库操控,由此隐藏了源数据库的底层模式和技术的复杂性。
为了支持授权用户基于逻辑视图的数据库操作,在本发明的一个实施方式中,逻辑视图生成器330可以针对逻辑视图的数据库操作创建相应的触发器。在一个实现中,对于源数据库中的多租户共享表组,可以利用创建的触发器处理租户ID列以用于插入操作、删除操作等,并且创建两段式事务用于对跨多后台数据库的系统表的更新。本领域技术人员可以理解,还可以为基于逻辑视图的其它数据库操作定义触发器和过程,以便支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。而且,触发器的形式和内容均可以根据具体数据库和所需的功能进行改变。
在本发明的实施方式中,通过租户特定的逻辑视图向操作者隐藏了底层源数据库复杂的模式和技术。这使得操作者仅在熟悉的常规界面中执行常规数据库操作即可对相应地源数据库进行数据库操作,由此简化操作者在对多租户系统的多个源数据库进行操控的过程。
在下文中将参照图4和图5描述根据本发明实施方式的用于对多租户数据库进行操控的方法。
现在参看图4。图4示出了根据本发明实施方式的在初始化时用于对多租户数据库进行操控的方法400的流程图。
如图4所示,在步骤S410中,根据本发明实施方式的在初始化时用于对多租户数据库进行操控的方法开始。
在步骤S420中,建立指向多租户数据库所包括的一个或多个源数据库的映射信息。
根据本发明的一个实施方式,首先为多租户数据库创建操控台数据库。操控台数据库管理器编目多租户数据库的源数据库中的每一个,并且为编目的源数据库创建映射信息以建立数据库联邦。例如,操控台数据库管理器利用对应于源数据库中各个表组的表组别名来对建立数据库联邦。源数据库可以包括存储有租户数据的数据库,还可以包括存储有系统数据的数据库。源数据库可以采用不同的数据共享或存储/隔离模式来实现对于多租户数据的存储。
在步骤S430中,基于映射信息以及多租户元数据,为各个租户创建租户特定的逻辑视图。
特别地,对于源数据库中具有的多租户共享表组,所创建的逻辑视图能够独立地反映单个租户的数据库逻辑。
根据本发明的一个实施方式,基于控制台数据库中的联邦的表组别名和多租户元数据为各个租户创建租户特定的逻辑视图。
根据本发明的一个实施方式,多租户元数据可以包括各租户与源数据库中表组的对应关系。在又一示例中,为了支持应用特定的多租户数据库操作,多租户元数据还可以包括特定应用与表组的对应关系。在又一示例中,多租户元数据还可以包括各个租户采用的数据隔离级别,用于提供租户的服务等级相关的信息。
在步骤S440中,支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。
可以向具有特定授权的用户,例如具有管理员权限的独立软件供应商或者获得授权的租户可以基于逻辑视图在用户界面中对相应租户的实际数据进行数据库操作,由此隐藏了源数据库的底层模式和技术的复杂性。
为了支持授权用户基于逻辑视图的数据库操作,在本发明的一个实施方式中,可以针对逻辑视图的数据库操作创建相应的触发器。在一个实现中,对于源数据库中的多租户共享表组,可以利用创建的触发器处理租户ID列以用于插入操作,并且创建两段式事务用于对跨多后台数据库的系统表的更新。
在一个实现方式中,创建用于基于租户表视图插入租户数据的操作的触发器的一个具体示例如下:
-CREATE TRIGGER TTABLE_1 INSTEAD OF INSERT ON COMPANY0001.TENANTTABLE1 REFERENCING NEW AS n FOR EACH ROW
- call instnt()
-CREATE PRCCEDURE instnt() LANGUAGE SQL BEGIN
-DECLARESQLSTR VARCHAR(1024);--SET SQLSTR=′SET PASSTHRU TDB1′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′insert into tenanttable1 values(51,″245″,″company0001″)′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′SET PASSTHRU RESET;--EXECUTE IMMEDIATE SQLSTR;--
-END
根据本发明的一个实现方式,创建用于基于系统表视图删除和更新系统数据的操作的触发器的一个具体示例如下:
-CREATE TRIGGER SYSTABLE_D INSTEAD OF DELETE ON SYSSCM.SYSTABLE REFERENCING OLD AS o FOR EACH
- call delsys()
-CREATE TRIGGER SYSTABLE_U INSTEAD OF UPDATE ON SYSSCM.SYSTABLE REFERENCING OLD AS o FOR EACH
- call upsys()
-CREATE PROCEDURE delsys() LANGUAGE SQL BEGIN
-DECLARE SQLSTR VARCHAR(1024);--SET SQLSTR=′SET PASSTHRU SYSDB1′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′delete from db2admin.systable where id=1′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′SET PASSTHRU RESET′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′SET PASSTHRU TDB1′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′delete from db2admin.systable where id=1′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′SET PASSTHRU RESET′;--EXECUTE IMMEDIATE SQLSTR;--
-END
-
-CREATE PROCEDURE upsys() LANGUAGE SQL BEGIN
-DECLARE SQLSTR VARCHAR(1024);--SET SQLSTR=′SET PASSTHRU SYSDB1′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′update db2admin.systable set ip=″qwe″where id=4′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′SET PASSTHRU RESET;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′SET PASSTHRU TDB1′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′update db2admin.systable set ip=″qwe″where id=4′;--EXECUTE IMMEDIATE SQLSTR;--
-SET SQLSTR=′SET PASSTHRU RESET′;--EXECUTE IMMEDIATE SQLSTR;--
-END
本领域技术人员可以理解,还可以为基于逻辑视图的其它数据库操作定义触发器和过程,以便支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。而且,上述触发器的形式和内容均可以根据具体数据库和所需的功能进行改变。因此,仅处于说明性目的给出上述示例,而并非对本公开的范围进行限制。
根据本发明一种或多种实施方式,可以对多租户数据库中的系统数据进行类似于上文描述的对于租户数据的相应的处理。这一点结合上文给出的用于基于系统表视图删除和更新系统数据的操作的触发器的具体示例可以变得更加明显。因此,在上文所描述的多租户数据库进行操控的方法中,并不排斥系统数据库/系统表,相反,应该理解将其为一种可以包含系统数据库/系统表处理的解决方案。
在步骤S450中,根据本发明实施方式的用于对多租户数据库进行操控的方法结束。
图5示出了根据本发明实施方式的在运行时用于对多租户数据库进行操控的方法500的流程图。
在步骤S510中,根据本发明实施方式的响应于操作者对于数据库的操作请求用于对多租户数据库进行操控的方法开始。
在步骤S520中,接收来自操作者的针对租户特定的逻辑视图的数据库操作请求。
根据本发明的一种或多种实施方式,向操作者提供类似于常用的数据库软件的用户界面以显示租户特定的逻辑视图。该租户特定的逻辑视图是在初始化过程中由逻辑视图生成器基于操控台数据库中存储的映射信息以及多租户元数据,为各个租户所创建的。特别地,对于源数据库中具有的多租户共享表组,创建的租户特定的逻辑视图能够独立地反映单个租户的数据库逻辑。操作者可以基于该租户特定的逻辑视图进行各种常规数据操作请求。例如,请求在逻辑视图中添加数据项、修改数据项、删除数据项等。
在步骤S530中,获取与数据库操作请求有关的指向多租户数据库中包括的一个或多个源数据库的映射信息。
根据本发明的一种或多种实施方式,在初始化阶段可以针对逻辑视图的数据库操作创建相应的触发器。响应于对于租户特定逻辑视图的数据库操作请求,调用相应的触发器。操作者对租户特定的逻辑视图的数据库操作请求可以被特定触发器捕获并解释,由此获得与数据库操作请求有关的指向多租户数据库中包括的一个或多个源数据库的映射信息。该映射信息存储在操控台数据库中。根据本发明的一个实施方式,在初始化阶段通过对该多租户数据库中的每一个源数据库进行编目并且为编目的源数据库创建相应的映射信息以建立数据库联邦,来创建映射信息。在一个实施方式中,映射信息可以包括所述数据库联邦的表组别名。
在步骤S540中,基于获取的映射信息,执行对一个或多个源数据库的数据库操作。
通过获取的映射信息,可以将对于租户特定的逻辑视图进行的数据库操作请求转换为对于多租户数据库中一个或多个相应源数据库的数据库操作。在一个实现中,触发器使用触发器创建时同时创建的特定存储过程接收数据库操作请求,根据通过获取的映射信息对源数据库进行操作。
例如,当对租户特定的逻辑视图进行删除或者更新的数据库操作时,该事务将由相应触发器解释。触发器例如按照针对租户特定的逻辑视图的数据库操作所针对的租户ID创建相应的数据库操作语句,并且调用删除或更新过程。当对租户特定的逻辑视图进行插入的数据库操作时,该事务也将由相应触发器解释。触发器例如按照针对租户特定的逻辑视图的数据库操作所针对租户ID和新的记录条目值创建相应的数据库操作语句,并且调用插入过程。这些数据库操作过程将接收所获取的指向多租户数据库中包括的一个或多个源数据库的映射信息作为参数,并利用关于相应源数据库的信息(例如,数据库联邦的表组别名)替换创建的数据库操作语句中的相应信息。然后,在相应的源数据库中执行数据库操作。
在步骤S550中,根据本发明实施方式的响应于操作者对于数据库的操作请求用于对多租户数据库进行操控的方法结束。
可以理解,根据本发明的各种实施方式通过建立租户特定的逻辑视图向操作者提供了具有熟悉的常规界面的统一的多租户数据库操控台,从而隐藏了底层源数据库复杂的模式和技术。操作者无需了解有关各个源数据库的具体物理数据共享或存储/隔离模式就可以实现针对各个租户的数据库操作,由此简化操作者在对多租户系统的多个源数据库进行操控的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (13)
1.一种用于对多租户数据库进行操控的方法,其中该多租户数据库包括用于存储租户数据的一个或多个源数据库,该方法包括:
接收针对租户特定的逻辑视图的数据库操作请求,其中所述租户特定的逻辑视图是基于指向所述多租户数据库中包括的一个或多个源数据库的映射信息以及多租户元数据为各个租户创建的;
获取与所述数据库操作请求有关的指向所述多租户数据库中包括的一个或多个源数据库的映射信息;
基于获取的映射信息,执行对所述一个或多个源数据库的数据库操作。
2.根据权利要求1所述的方法,还包括:
调用针对所述租户特定的逻辑视图的数据库操作所创建的触发器。
3.根据权利要求1所述的方法,其中
通过编目所述源数据库的每一个,并且为编目的源数据库创建映射信息以建立数据库联邦,来创建到多个源数据库的映射信息。
4.根据权利要求1或2所述的方法,其中:
所述映射信息包括所述数据库联邦的表组别名。
5.根据权利要求1所述的方法,其中:
所述多租户元数据包括各租户与所述源数据库中表组的对应关系。
6.根据权利要求1所述的方法,其中:
所述源数据库中的至少一个源数据库包括多租户共享表组。
7.一种对多租户数据库进行操控的方法,其中该多租户数据库包括用于存储租户数据的一个或多个源数据库,该方法包括:
建立到所述源数据库的映射信息;
基于所述映射信息以及多租户元数据,为各个租户创建租户特定的逻辑视图;以及
支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。
8.一种对多租户数据库进行操控的系统,其中该多租户数据库包括用于存储租户数据的一个或多个源数据库,包括:
操控台数据库管理器,被配置为在操控台数据库中建立指向所述源数据库的映射信息;
逻辑视图生成器,被配置为基于所述映射信息以及多租户元数据,为各个租户创建租户特定的逻辑视图,并且被配置为在支持对至少一个所创建的租户特定的逻辑视图进行数据库操作。
9.根据权利要求8所述的系统,其中:
所述操控台数据库管理器被配置为编目所述源数据库的每一个并且为编目的源数据库创建映射信息以建立数据库联邦。
10.根据权利要求8或9的系统,其中:
所述映射信息包括所述数据库联邦的表组别名。
11.根据权利要求8所述的系统,其中:
所述多租户元数据包括各租户与所述源数据库中表组的对应关系。
12.根据权利要求8所述的系统,其中:
所述源数据库中的至少一个源数据库包括多租户共享表。
13.根据权利要求8所述的系统,其中:
所述逻辑视图生成器被配置为针对所述逻辑视图的数据库操作创建相应的触发器,以及响应于用户对所述逻辑视图的数据库操作调用相应触发器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271433.1A CN103577457B (zh) | 2012-07-31 | 2012-07-31 | 用于对多租户数据库进行操控的方法和系统 |
US13/954,179 US9372883B2 (en) | 2012-07-31 | 2013-07-30 | Manipulation of multi-tenancy database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271433.1A CN103577457B (zh) | 2012-07-31 | 2012-07-31 | 用于对多租户数据库进行操控的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577457A true CN103577457A (zh) | 2014-02-12 |
CN103577457B CN103577457B (zh) | 2017-09-08 |
Family
ID=50026542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210271433.1A Expired - Fee Related CN103577457B (zh) | 2012-07-31 | 2012-07-31 | 用于对多租户数据库进行操控的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9372883B2 (zh) |
CN (1) | CN103577457B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016119590A1 (en) * | 2015-01-27 | 2016-08-04 | Huawei Technologies Co., Ltd. | Network virtualization for network infrastructure |
CN106453247A (zh) * | 2016-08-31 | 2017-02-22 | 东软集团股份有限公司 | 用户数据隔离方法、操作方法及各自对应的装置 |
CN109254847A (zh) * | 2018-08-22 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种租户映射信息获取方法及装置 |
CN109947767A (zh) * | 2017-10-26 | 2019-06-28 | Sap欧洲公司 | 多重租赁数据库系统中的系统共享类型 |
CN110443062A (zh) * | 2019-06-17 | 2019-11-12 | 平安科技(深圳)有限公司 | 多租户数据库的操作方法、装置和计算机设备 |
CN110489392A (zh) * | 2019-08-22 | 2019-11-22 | 中国工商银行股份有限公司 | 多租户间的数据访问方法、装置、系统、存储介质及设备 |
CN110799948A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 针对时间点恢复数据库的数据集的系统和方法 |
CN111339560A (zh) * | 2020-02-26 | 2020-06-26 | 中国邮政储蓄银行股份有限公司 | 一种数据隔离方法、装置及系统 |
CN111984977A (zh) * | 2020-08-06 | 2020-11-24 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的多租户权限鉴权方法 |
CN117076473A (zh) * | 2023-10-11 | 2023-11-17 | 浪潮通用软件有限公司 | 一种SaaS多租户的元数据运行方法、系统、设备及介质 |
CN117971798A (zh) * | 2023-12-11 | 2024-05-03 | 陕西瀚光数字科技有限公司 | SaaS软件多技术融合的数据隔离方法、系统及设备 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866513B (zh) * | 2014-02-26 | 2018-09-11 | 国际商业机器公司 | 用于跨租户数据访问的系统和方法 |
US20150370674A1 (en) * | 2014-06-19 | 2015-12-24 | Microsoft Corporation | Tenant provisioning for testing a production multi-tenant service |
US10223389B2 (en) * | 2015-11-03 | 2019-03-05 | Salesforce.Com, Inc. | System and method for analyzing complex metadata |
US10706170B2 (en) | 2017-03-16 | 2020-07-07 | Sap Se | Tenant table sharing with content separation |
US10185552B2 (en) | 2017-05-12 | 2019-01-22 | Sap Se | Enforcing content constraints on delivery and end user changes |
US10437795B2 (en) | 2017-05-12 | 2019-10-08 | Sap Se | Upgrading systems with changing constraints |
US10268472B2 (en) | 2017-05-16 | 2019-04-23 | Sap Se | Upgrading systems with replicated data |
US10713277B2 (en) | 2017-10-26 | 2020-07-14 | Sap Se | Patching content across shared and tenant containers in multi-tenancy database systems |
US10621167B2 (en) | 2017-10-26 | 2020-04-14 | Sap Se | Data separation and write redirection in multi-tenancy database systems |
US10740318B2 (en) | 2017-10-26 | 2020-08-11 | Sap Se | Key pattern management in multi-tenancy database systems |
US10733168B2 (en) | 2017-10-26 | 2020-08-04 | Sap Se | Deploying changes to key patterns in multi-tenancy database systems |
US10740315B2 (en) | 2017-10-26 | 2020-08-11 | Sap Se | Transitioning between system sharing types in multi-tenancy database systems |
US10452646B2 (en) | 2017-10-26 | 2019-10-22 | Sap Se | Deploying changes in a multi-tenancy database system |
US10482080B2 (en) | 2017-10-26 | 2019-11-19 | Sap Se | Exchanging shared containers and adapting tenants in multi-tenancy database systems |
US10536461B2 (en) | 2017-12-19 | 2020-01-14 | Sap Se | Service identity propagation between applications and reusable services |
US11030164B2 (en) | 2018-01-18 | 2021-06-08 | Sap Se | Artifact deployment for application managed service instances |
US10715405B2 (en) | 2018-01-30 | 2020-07-14 | Sap Se | Tenant isolated data in shared reusable services |
US10860606B2 (en) * | 2018-01-31 | 2020-12-08 | Salesforce.Com, Inc. | Efficiently deleting data from objects in a multi tenant database system |
US11086819B2 (en) | 2018-04-23 | 2021-08-10 | Salesforce.Com, Inc. | Efficiently deleting data from objects in a multi-tenant database system |
US10942892B2 (en) | 2018-05-18 | 2021-03-09 | Sap Se | Transport handling of foreign key checks |
US10915551B2 (en) | 2018-06-04 | 2021-02-09 | Sap Se | Change management for shared objects in multi-tenancy systems |
US10936624B2 (en) | 2018-06-12 | 2021-03-02 | Sap Se | Development and productive use of system with parallel use of production data and zero downtime of software changes |
US10824650B2 (en) * | 2018-12-20 | 2020-11-03 | Servicenow, Inc. | Discovery of database and related services |
CN112906054A (zh) * | 2021-03-12 | 2021-06-04 | 光典信息发展有限公司 | 多租户的数据库隔离方法、装置及电子设备 |
US11436230B1 (en) * | 2021-04-29 | 2022-09-06 | Microsoft Technology Licensing, Llc | Cross-tenant people search in a multi-tenant computing system |
CN113965383B (zh) * | 2021-10-21 | 2024-03-15 | 平安国际智慧城市科技股份有限公司 | 租户数据访问管理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050223022A1 (en) * | 2004-04-02 | 2005-10-06 | Salesforce.Com, Inc. | Custom entities and fields in a multi-tenant database system |
CN101354720A (zh) * | 2008-09-04 | 2009-01-28 | 中兴通讯股份有限公司 | 一种分布式内存数据库数据系统及其共享方法 |
CN101777161A (zh) * | 2008-08-19 | 2010-07-14 | 国际商业机器公司 | 多租户环境中的映射门户应用 |
CN102236762A (zh) * | 2010-04-30 | 2011-11-09 | 国际商业机器公司 | 用于处理对多租户应用的文件访问的方法和文件代理装置 |
US20110302212A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Systems and methods for analyzing operations in a multi-tenant database system environment |
CN102456028A (zh) * | 2010-10-27 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种面向多租户的数据获取方法、装置及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577835B2 (en) * | 2007-06-28 | 2013-11-05 | Salesforce.Com, Inc. | Method and system for sharing data between subscribers of a multi-tenant database service |
US20100299664A1 (en) | 2009-05-21 | 2010-11-25 | Salesforce.Com, Inc. | System, method and computer program product for pushing an application update between tenants of a multi-tenant on-demand database service |
CN102053975A (zh) | 2009-10-30 | 2011-05-11 | 国际商业机器公司 | 数据库系统和跨数据库查询优化方法 |
US8473515B2 (en) | 2010-05-10 | 2013-06-25 | International Business Machines Corporation | Multi-tenancy in database namespace |
US8386431B2 (en) | 2010-06-14 | 2013-02-26 | Sap Ag | Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor |
US8412673B2 (en) * | 2010-07-30 | 2013-04-02 | Sap Ag | Persistence of master data in a multi-tenant software delivery architecture |
US8701198B2 (en) | 2010-08-10 | 2014-04-15 | Salesforce.Com, Inc. | Performing security analysis on a software application |
US8769704B2 (en) | 2010-09-10 | 2014-07-01 | Salesforce.Com, Inc. | Method and system for managing and monitoring of a multi-tenant system |
US20130055118A1 (en) * | 2011-08-29 | 2013-02-28 | Salesforce.Com, Inc. | Configuring database objects in multi-tenant systems |
-
2012
- 2012-07-31 CN CN201210271433.1A patent/CN103577457B/zh not_active Expired - Fee Related
-
2013
- 2013-07-30 US US13/954,179 patent/US9372883B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050223022A1 (en) * | 2004-04-02 | 2005-10-06 | Salesforce.Com, Inc. | Custom entities and fields in a multi-tenant database system |
CN101777161A (zh) * | 2008-08-19 | 2010-07-14 | 国际商业机器公司 | 多租户环境中的映射门户应用 |
CN101354720A (zh) * | 2008-09-04 | 2009-01-28 | 中兴通讯股份有限公司 | 一种分布式内存数据库数据系统及其共享方法 |
CN102236762A (zh) * | 2010-04-30 | 2011-11-09 | 国际商业机器公司 | 用于处理对多租户应用的文件访问的方法和文件代理装置 |
US20110302212A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Systems and methods for analyzing operations in a multi-tenant database system environment |
CN102456028A (zh) * | 2010-10-27 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种面向多租户的数据获取方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
马新娜: "异构数据库的集成和资源共享的研究", 《CNKI硕士学术论文》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016119590A1 (en) * | 2015-01-27 | 2016-08-04 | Huawei Technologies Co., Ltd. | Network virtualization for network infrastructure |
US10341188B2 (en) | 2015-01-27 | 2019-07-02 | Huawei Technologies Co., Ltd. | Network virtualization for network infrastructure |
CN106453247A (zh) * | 2016-08-31 | 2017-02-22 | 东软集团股份有限公司 | 用户数据隔离方法、操作方法及各自对应的装置 |
CN106453247B (zh) * | 2016-08-31 | 2020-08-28 | 东软集团股份有限公司 | 用户数据隔离方法、操作方法及各自对应的装置 |
CN110799948A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 针对时间点恢复数据库的数据集的系统和方法 |
CN110799948B (zh) * | 2017-06-27 | 2024-03-26 | 硕动力公司 | 针对时间点恢复数据库的数据集的系统和方法 |
CN109947767A (zh) * | 2017-10-26 | 2019-06-28 | Sap欧洲公司 | 多重租赁数据库系统中的系统共享类型 |
CN109947767B (zh) * | 2017-10-26 | 2024-03-08 | Sap欧洲公司 | 多重租赁数据库系统中的系统共享类型 |
CN109254847B (zh) * | 2018-08-22 | 2022-04-19 | 创新先进技术有限公司 | 一种租户映射信息获取方法及装置 |
CN109254847A (zh) * | 2018-08-22 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种租户映射信息获取方法及装置 |
CN110443062A (zh) * | 2019-06-17 | 2019-11-12 | 平安科技(深圳)有限公司 | 多租户数据库的操作方法、装置和计算机设备 |
CN110489392A (zh) * | 2019-08-22 | 2019-11-22 | 中国工商银行股份有限公司 | 多租户间的数据访问方法、装置、系统、存储介质及设备 |
CN110489392B (zh) * | 2019-08-22 | 2022-03-29 | 中国工商银行股份有限公司 | 多租户间的数据访问方法、装置、系统、存储介质及设备 |
CN111339560A (zh) * | 2020-02-26 | 2020-06-26 | 中国邮政储蓄银行股份有限公司 | 一种数据隔离方法、装置及系统 |
CN111339560B (zh) * | 2020-02-26 | 2023-06-13 | 中国邮政储蓄银行股份有限公司 | 一种数据隔离方法、装置及系统 |
CN111984977A (zh) * | 2020-08-06 | 2020-11-24 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的多租户权限鉴权方法 |
CN111984977B (zh) * | 2020-08-06 | 2022-07-19 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的多租户权限鉴权方法 |
CN117076473B (zh) * | 2023-10-11 | 2024-02-06 | 浪潮通用软件有限公司 | 一种SaaS多租户的元数据运行方法、系统、设备及介质 |
CN117076473A (zh) * | 2023-10-11 | 2023-11-17 | 浪潮通用软件有限公司 | 一种SaaS多租户的元数据运行方法、系统、设备及介质 |
CN117971798A (zh) * | 2023-12-11 | 2024-05-03 | 陕西瀚光数字科技有限公司 | SaaS软件多技术融合的数据隔离方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20140040294A1 (en) | 2014-02-06 |
CN103577457B (zh) | 2017-09-08 |
US9372883B2 (en) | 2016-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577457A (zh) | 用于对多租户数据库进行操控的方法和系统 | |
CN108475271B (zh) | 容器数据库的应用容器 | |
CN111902810B (zh) | 中心化和去中心化的数据的混合云链管理 | |
US10572551B2 (en) | Application containers in container databases | |
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
US10762075B2 (en) | Database interface agent for a tenant-based upgrade system | |
US8539562B2 (en) | Automated management of system credentials | |
CN111027921A (zh) | 一种业务处理方法、装置及电子设备和存储介质 | |
CN106537338A (zh) | 自扩展云 | |
CN111491012A (zh) | SaaS多租户数据隔离访问方法、装置、电子设备及存储介质 | |
US11080041B1 (en) | Operating system management for virtual workspaces | |
US10459893B2 (en) | Computer system, file storage apparatus, and storage control method | |
JP2015072688A (ja) | Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化 | |
JP6595625B2 (ja) | 自動再チャージシステム、方法、およびサーバ | |
CN103593207A (zh) | 使用虚拟磁盘的高速自动化丛集系统部署方法 | |
EP4033349A1 (en) | Method and apparatus for generating mirror image file, and computer-readable storage medium | |
US12086612B2 (en) | Multitenancy hierarchical update campaigns | |
CN110737506A (zh) | 一种虚拟机镜像版本管理的方法 | |
CN110221910A (zh) | 用于执行mpi作业的方法和装置 | |
CN104298761A (zh) | 一种异构软件系统间主数据匹配的实现方法 | |
CN106020795A (zh) | Vdi桌面个人数据盘的实现方法及装置 | |
CN109784103B (zh) | 一种usb设备使用记录的获取方法和装置及存储介质 | |
CN106209445B (zh) | 一种通过网络部署的虚拟化数据中心 | |
KR20150061346A (ko) | 가상 세션 관리자를 이용한 클라우드 가상화 시스템 및 방법 | |
US11552959B2 (en) | Access management system with a pre-commit verification engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170908 |
|
CF01 | Termination of patent right due to non-payment of annual fee |