CN112905708A - 基于SaaS系统的数据库操作方法及系统 - Google Patents
基于SaaS系统的数据库操作方法及系统 Download PDFInfo
- Publication number
- CN112905708A CN112905708A CN202110347832.0A CN202110347832A CN112905708A CN 112905708 A CN112905708 A CN 112905708A CN 202110347832 A CN202110347832 A CN 202110347832A CN 112905708 A CN112905708 A CN 112905708A
- Authority
- CN
- China
- Prior art keywords
- database
- request
- data source
- tenant
- databases
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000000926 separation method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013523 data management Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational 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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于SaaS系统的数据库操作方法及系统,该方法包括:接收来自租户的请求,所述请求包括创建应用,一个租户对应一个数据库集群,一个数据库集群包括多个数据库;根据请求确认是否存在数据源规则,数据源规则包括请求和数据库集群中的一个或多个数据库的第一对应关系;若数据源规则存在,则根据第一对应关系绑定请求和一个或多个数据库;以及若数据源规则不存在,则创建包括第一对应关系的数据源规则,并根据第一对应关系绑定请求和一个或多个数据库。根据本发明的数据库操作方法及操作系统,可以自动绑定租户的请求和数据库集群中的数据库,无需DBA进行人工绑定操作,节省了人工成本,并且可以避免人为错误。
Description
技术领域
本发明主要涉及临床试验研究领域,具体地涉及一种基于临床SaaS系统的数据库操作方法及系统。
背景技术
随着互联网技术的发展,SaaS(Software-as-a-Service)软件的应用越来越广泛。在临床试验研究领域,出于研究目的需要采集相关的受试者信息,并且随着研究的进展,受试者的信息逐渐增多,需要对受试者信息进行合理的管理。通常以数据库的形式来管理这些数据,然而一个数据库的容量具有一定的限制,当存放在一个数据库中的数据过多时,会影响数据存取的速度和数据处理的性能,因此需要增加数据库的数量,这就需要对数据进行分库处理,即按照一定的逻辑将数据分配到某一个数据库中。
目前的分库处理主要依赖数据库管理员(Database Administrator,DBA)的人工操作。当用户在使用临床SaaS软件时,执行创建新的租户、项目和应用等操作时,后台程序向DBA提出分库申请,DBA收到分库申请之后,为新的租户、项目和应用分配一个数据库,将新的租户、项目和应用与数据库绑定。这样,当用户在使用该应用时,所产生的数据就会存储在其所绑定的数据库中。然而,这种方式一方面依赖DBA执行该绑定操作,耗费人工,另一方面人工操作容易发生错误,从而造成一系列损失。
发明内容
本发明所要解决的技术问题是提供一种自动绑定租户请求和数据库的数据库操作方法及系统。
本发明为解决上述技术问题而采用的技术方案是一种基于SaaS系统的数据库操作方法,其特征在于,包括:接收来自租户的请求,所述请求包括创建应用,一个所述租户对应一个数据库集群,一个所述数据库集群包括多个数据库;根据所述请求确认是否存在数据源规则,所述数据源规则包括所述请求和所述数据库集群中的一个或多个数据库的第一对应关系;若所述数据源规则存在,则根据所述第一对应关系绑定所述请求和所述一个或多个数据库;以及若所述数据源规则不存在,则创建包括所述第一对应关系的数据源规则,并根据所述第一对应关系绑定所述请求和所述一个或多个数据库。
在本发明的一实施例中,还包括:在数据容器中存储数据源信息和所述数据源规则,所述数据源信息包括所述数据库集群的信息;在所述接收来自租户的请求的步骤之后还包括:获取所述数据源信息。
在本发明的一实施例中,所述请求还包括创建租户和创建项目,所述应用对应于所述项目,所述项目对应于所述租户。
在本发明的一实施例中,所述租户具有租户ID,所述项目具有项目ID,所述应用具有应用ID,在所述接收来自租户的请求的步骤之后还包括:响应于所述请求创建用户密钥,所述用户密钥由所述租户ID、所述项目ID和所述应用ID共同唯一确定;以及,所述数据源规则包括所述用户密钥和所述数据库集群中的一个或多个数据库的第二对应关系。
在本发明的一实施例中,还包括:根据所述请求判断是否需要读写分离,若需要读写分离,则所述数据源规则包括所述请求和所述数据库集群中的一读数据库、一写数据库之间的第三对应关系。
在本发明的一实施例中,在所述接收来自租户的请求的步骤之后还包括:拦截所述请求。
在本发明的一实施例中,使用代理对象拦截所述请求。
在本发明的一实施例中,所述数据容器基于Zookeeper框架而设置。
本发明为解决上述技术问题还提出一种基于SaaS系统的数据库操作系统,其特征在于,包括:微服务模块、数据容器和数据库集群,其中,所述SaaS系统的租户通过所述微服务模块提出请求,所述请求包括创建应用,一个所述租户对应一个数据库集群;所述微服务模块根据所述请求从所述数据容器中获取数据源规则,所述数据源规则包括所述请求和所述数据库集群中的一个或多个数据库的第一对应关系;若所述微服务模块成功获取所述数据源规则,则根据所述第一对应关系绑定所述请求和所述一个或多个数据库;以及若所述微服务模块不能获取所述数据源规则,则创建包括所述第一对应关系的数据源规则,并根据所述第一对应关系绑定所述请求和所述一个或多个数据库。
在本发明的一实施例中,还包括数据管理模块,数据库管理员通过所述数据管理模块管理所述数据容器中的数据源信息,所述数据源信息包括数据库集群的信息,所述数据库集群包括多个数据库;其中,所述微服务模块根据所述请求从所述数据容器中获取所述数据源信息,并将所述数据源信息加载到本地。
在本发明的一实施例中,所述请求还包括创建租户和创建项目,所述应用对应于所述项目,所述项目对应于所述租户。
在本发明的一实施例中,所述租户具有租户ID,所述项目具有项目ID,所述应用具有应用ID,所述微服务模块还根据所述请求创建用户密钥,所述用户密钥由所述租户ID、所述项目ID和所述应用ID共同唯一确定;其中,所述数据源规则包括所述用户密钥和所述数据库集群中的一个或多个数据库的第二对应关系。
在本发明的一实施例中,所述微服务模块包括第一子模块和第二子模块,所述第一子模块适于获取所述数据源规则,所述第二子模块适于创建所述数据源规则。
在本发明的一实施例中,所述微服务模块还根据所述请求判断是否需要读写分离,若需要读写分离,则所述数据源规则包括所述请求和所述数据库集群中的一读数据库、一写数据库之间的第三对应关系。
在本发明的一实施例中,还包括代理对象,所述代理对象拦截所述请求,使所述微服务模块获得所述请求。
在本发明的一实施例中,所述数据容器基于Zookeeper框架而设置。
本发明为解决上述技术问题还提出一种基于SaaS系统的数据库操作系统,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如上所述的方法。
本发明为解决上述技术问题还提出一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的方法。
根据本发明的数据库操作方法及操作系统,可以自动绑定租户的请求和数据库集群中的数据库,无需DBA进行人工绑定操作,节省了人工成本,并且可以避免人为错误。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是本发明一实施例的基于SaaS系统的数据库操作方法的示例性流程图;
图2是本发明另一实施例的基于SaaS系统的数据库操作方法的示例性流程图;
图3是本发明一实施例的基于SaaS系统的数据库操作系统的示例性框图;
图4是本发明一实施例的基于SaaS系统的数据库操作系统的系统框图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本申请保护范围的限制。此外,尽管本申请中所使用的术语是从公知公用的术语中选择的,但是本申请说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本申请。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是本发明一实施例的基于SaaS系统的数据库操作方法的示例性流程图。参考图1所示,该实施例的数据库操作方法包括以下步骤:
步骤S110:接收来自租户的请求,该请求包括创建应用,一个租户对应一个数据库集群,一个数据库集群包括多个数据库;
步骤S120:根据请求确认是否存在数据源规则,数据源规则包括请求和数据库集群中的一个或多个数据库的第一对应关系;
骤S130:若数据源规则存在,则根据第一对应关系绑定请求和一个或多个数据库;以及
步骤S140:若数据源规则不存在,则创建包括第一对应关系的数据源规则,并根据第一对应关系绑定请求和一个或多个数据库。
需要说明,步骤S110-S140没有对执行该步骤的主体做出限制,该各个步骤的主体可以是具体的SaaS系统,例如临床SaaS系统,也可以是基于该SaaS系统的某应用程序。以下具体说明上述步骤S110-S140。
在步骤S110中,该租户指SaaS系统的租户。在临床试验研究中,租户可以是具有使用临床SaaS系统权限的公司、医院等实体对象。请求通常来自于SaaS系统的使用者,该使用者应具有一定的租户权限。对于一个租户来说,可以由多个使用者来行使一个租户的权限。因此,步骤S110中的请求实际上是来自于SaaS系统的使用者。该请求包括创建应用。在一个租户权限下,可以在SaaS系统中根据需要创建相应的应用。不同的租户可以个性化的制定满足自身需要的各种应用。
在本发明中,SaaS系统为每个租户都提供一个数据库集群,该数据库集群中包括多个数据库,可以根据一定的规则将某一应用和某一个或多个数据库相对应。
在步骤S120中,根据请求确认是否存在数据源规则。该数据源规则包括步骤S110中的请求和数据库的第一对应关系,该数据库属于该租户的数据库集群。
在一些实施例中,一个创建应用的请求和一个数据库对应。
在另一些实施例中,一个创建应用的请求可以和多个数据库对应。
本发明对于数据源规则的存储方式不做限制。在步骤S120中,可以从存储数据源规则的存储装置或区域中获取该数据源规则,若成功获取,则表示该数据源规则存在,若不能成功获取,则表示该数据源规则不存在。在一些实施例中,可以通过查询的方式在存储数据源规则的存储装置或区域中查询该数据源规则,若能查询到,则表示该数据源规则存在,若不能查询到,则表示该数据源规则不存在。
若步骤S120确认数据源规则存在,则说明SaaS系统中已经创建了该租户的请求与其所对应的数据库的第一对应关系,则执行步骤S130,绑定该请求和该数据库。在实际的执行中,可以是返回该请求所对应的数据库的名称到主程序。这样,当使用者下一次打开其在步骤S110中的请求所创建的应用时,SaaS系统就自动地将该应用中的数据存储到该数据库中,或者从该数据库中读取需要的数据。
若步骤S120确认该数据源规则不存在,则表明SaaS系统中不存在该请求和数据库集群中的某数据库的第一对应关系,则执行步骤S140,创建包括该第一对应关系的数据源规则,并根据该第一对应关系绑定请求和数据库集群中的一个或多个数据库。这里所创建的数据源规则与成功获取的数据源规则可以相同也可以不同。
在步骤S140中,创建包括该第一对应关系的数据源规则可以根据预设的方式来创建。例如,假设该租户的数据库集群中包括N个数据库,该预设的方式是:检测当前的N个数据库,将步骤S110中的请求和数据使用量最小的数据库建立第一对应关系。这样,在后续租户使用该请求中的应用时,在该数据使用量最小的数据库中执行数据的读写。
上述的预设方式仅为示例,不用于限制本发明的创建数据源规则的具体方式。本领域技术人员可以在该思想的基础上,结合临床试验的实际需要,采取任意的方式来创建数据源规则。
根据本发明的数据库操作方法,可以自动绑定租户的请求和数据库集群中的数据库,无需DBA进行人工绑定操作,节省了人工成本,并且可以避免人为错误。
在一些实施例中,步骤S110中的请求还包括创建租户和创建项目,该应用对应于该项目,该项目对应于该租户。在SaaS系统中,假设租户A使用SaaS系统创建了项目B,并在该项目B中创建了应用C1、C2。可以是应用C1、C2都对应于数据库D1,也可以分别使应用C1对应于数据库D1,使应用C2对应于数据库D2。这样,可以根据需要对属于同一个租户的同一个项目中的多个应用C1、C2进行管理。
在一些实施例中,租户具有租户ID,项目具有项目ID,应用具有应用ID,在接收来自租户的请求的步骤之后还包括:响应于请求创建用户密钥,用户密钥由租户ID、项目ID和应用ID共同唯一确定;以及,数据源规则包括用户密钥和数据库集群中的一个或多个数据库的第二对应关系。
根据这些实施例可以创建用户密钥Key=租户ID+项目ID+应用ID,从而创建每一个用户密钥Key及其所对应的数据库之间的第二对应关系。可以避免在接收到租户的请求时出现错误,将该请求对应到错误的数据库。
在一些实施例中,本发明的数据库操作方法还包括:在数据容器中存储数据源信息和数据源规则,数据源信息包括数据库集群的信息;在接收来自租户的请求的步骤之后还包括:获取数据源信息。在这些实施例中,数据源信息是针对租户,包括某一租户所对应的数据库集群的信息,其中可以包括该数据库集群所包括的数据库的数量、名称、属性、使用情况等。该数据源规则可以是步骤S140中所创建的数据源规则。在创建数据源规则的步骤中需要用到数据源信息,例如根据数据库集群中的数据库的使用情况来分配数据库。在一些实施例中,该数据容器是基于Zookeeper框架而设置。
图2是本发明另一实施例的基于SaaS系统的数据库操作方法的示例性流程图。参考图2所示,该实施例的数据库操作方法包括以下步骤:
步骤S210:接收来自租户的请求。
步骤S210和步骤S110相似。关于步骤S110的说明内容可以用于说明步骤S210。该请求至少包括创建应用,在一些实施例中,还可以包括创建租户和创建项目,其中,所创建的应用对应于该项目,该项目对应于该租户。可以根据请求创建由租户ID、项目ID和应用ID共同唯一确定的用户密钥Key。
步骤S220:拦截请求。
本步骤可以通过拦截器来执行。在一些实施例中,使用代理对象执行拦截请求的操作。
步骤S230:获取数据源信息。
本步骤中的数据源信息可以存储在数据容器中。在本步骤中,从数据容器中获取数据源信息,以便于后续步骤根据数据源信息来创建数据源规则。
在一些实施例中,该数据容器是基于Zookeeper框架而设置。
步骤S240:判断是否需要读写分离,若是则继续执行步骤S250,若否则继续执行步骤S260。
根据本步骤,该实施例的数据库操作方法对该租户的请求中所创建的应用是否需要读写分离进行判断。若需要读写分离,则数据源规则包括该请求和一读数据库、一写数据库之间的第三对应关系。在第三对应关系中,一个请求对应于2个不同的数据库,该2个数据库都属于该租户所对应的数据库集群。在步骤S120中,当第一对应关系是租户的请求和多个数据库之间的对应关系时,该多个数据库可以是2个数据库,其中包括1个读数据库和1个写数据库。
通常默认的情况下,一个应用对应一个数据库,该数据库既用于读也用于写,是一种读写数据库。在某些特殊情况下,根据用户需要,将读操作和写操作所对应的数据库分开,可以带来例如提高读写速度等有益效果。
步骤S250:获取读写数据源规则。
在本步骤中,可以是从数据容器中获取读写数据源规则。该读写数据源规则包括第三对应关系。
步骤S260:获取通用数据源规则。
在本步骤中,通用数据源规则指对应于普通的读写数据库的数据源规则。该通用数据源规则中包括第一对应关系或第二对应关系。
步骤S270:判断是否存在数据源规则,若是则流程结束,若否则执行步骤S280。
本步骤的判断是否存在数据源规则相当于判断步骤S250或S260的获取操作是否成功执行。当获取操作成功执行时,表示实际上获取到了读写数据源规则或通用数据源规则。无论是哪一种数据源规则,若获取成功,则本流程结束。根据所获得的数据源规则,可以返回该租户的请求所对应的数据库,在需要读写分离的情况下,返回2个数据库的信息;在不需要读写分离的情况下,返回1个数据库的信息。也就是,自动绑定租户的请求及其对应的数据库。
步骤S280:创建数据源规则。
本步骤与步骤S140相似。关于步骤S140的说明内容可以用于说明步骤S280。
根据图2所示的实施例,给出了从SaaS系统的客户端的角度出发,该数据库操作方法的一种执行流程。并且对数据库是否需要读写分离进行了判断,在不存在数据源规则的情况下,自动创建数据源规则,实现租户的请求和数据库的自动绑定,提高了流程效率。
图3是本发明一实施例的基于SaaS系统的数据库操作系统的示例性框图。该数据库操作系统可以用来执行前文所述的数据库操作方法,因此,前文的说明内容和附图都可以用来说明该数据库操作系统,相同的内容将不再展开。参考图3所示,该数据库操作系统300包括微服务模块310、数据容器320和数据库集群330。
其中,SaaS系统的租户通过微服务模块310提出请求,该请求包括创建应用,一个租户对应一个数据库集群330。在步骤S110中,可以通过微服务模块310来接收租户的请求。
在一些实施例中,该请求还包括创建租户和创建项目,应用对应于项目,项目对应于租户。
微服务模块310根据该请求从数据容器320中获取数据源规则,数据源规则包括请求和数据库集群330中的一个或多个数据库的第一对应关系。根据该实施例,可以通过微服务模块310来执行步骤S120。
在一些实施例中,租户具有租户ID,项目具有项目ID,应用具有应用ID,微服务模块310还根据请求创建用户密钥,用户密钥由租户ID、项目ID和应用ID共同唯一确定;其中,数据源规则包括用户密钥和数据库集群330中的一个或多个数据库的第二对应关系。
在一些实施例中,该数据容器是基于Zookeeper框架而设置。
若微服务模块310成功获取数据源规则,则根据第一对应关系绑定请求和数据库;以及若微服务模块310不能获取数据源规则,则创建包括第一对应关系的数据源规则,并根据第一对应关系绑定请求和数据库集群330中的一个或多个数据库。根据该实施例,可以通过微服务模块310来执行步骤S130和S140。
参考图3所示,在一些实施例中,该数据库操作系统300还包括数据管理模块340,数据库管理员341通过数据管理模块340管理数据容器320中的数据源信息,数据源信息包括数据库集群330的信息,数据库集群330包括多个数据库;其中,微服务模块310根据请求从数据容器320中获取数据源信息,并将数据源信息加载到本地。根据该实施例,可以通过步骤S230从数据容器320中获取数据源信息,以便于在后续步骤根据数据源信息来创建数据源规则。并且,微服务模块310还将这些数据源信息加载到本地,以便于微服务模块310根据租户的请求和数据源信息来创建数据源规则。
当微服务模块310创建好数据源规则之后,将数据源规则存储在数据容器320中。
在一些实施例中,微服务模块310还根据请求判断是否需要读写分离,若需要读写分离,则数据源规则包括请求和数据库集群330中的一个或多个一读数据库、一写数据库之间的第三对应关系。
在一些实施例中,该数据库操作系统还包括代理对象(图未示),该代理对象拦截请求,使微服务模块310获得该请求。
在一些实施例中,微服务模块310可以包括第一子模块和第二子模块,其中,第一子模块用于从数据容器中获得数据源规则;第二子模块用于创建数据源规则,并将数据源规则存储到数据容器中。
根据本发明的数据库操作系统,由微服务模块310对租户的请求进行处理,自动绑定该请求和数据库集群中的数据库,数据库管理员341无需人工执行该绑定操作,数据库管理员341仅需对数据容器320中的数据源信息进行维护,减少了数据库管理员341的工作量,降低了人工成本,并且可以避免人为错误。
本发明还包括一种基于SaaS系统的数据库操作系统,包括存储器和处理器。其中,该存储器用于存储可由处理器执行的指令;处理器用于执行该指令以实现前文所述的基于SaaS系统的数据库操作方法。
图4是本发明一实施例的基于SaaS系统的数据库操作系统的系统框图。参考图4所示,该数据库操作系统400可包括内部通信总线401、处理器402、只读存储器(ROM)403、随机存取存储器(RAM)404以及通信端口405。当应用在个人计算机上时,该数据库操作系统400还可以包括硬盘406。内部通信总线401可以实现该数据库操作系统400组件间的数据通信。处理器402可以进行判断和发出提示。在一些实施例中,处理器402可以由一个或多个处理器组成。通信端口405可以实现该数据库操作系统400与外部的数据通信。在一些实施例中,该数据库操作系统400可以通过通信端口405从网络发送和接受信息及数据。该数据库操作系统400还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘406,只读存储器(ROM)403和随机存取存储器(RAM)404,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器处理的结果通过通信端口传给用户设备,在用户界面上显示。
上述的基于SaaS系统的数据库操作方法可以实施为计算机程序,保存在硬盘406中,并可加载到处理器402中执行,以实施本申请的数据处理方法。
本发明还包括一种存储有计算机程序代码的计算机可读介质,该计算机程序代码在由处理器执行时实现前文所述的基于SaaS系统的数据库操作方法。
基于SaaS系统的数据库操作方法实施为计算机程序时,也可以存储在计算机可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(EPROM)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
应该理解,上文所描述的实施例仅是示意。本文描述的实施例可在硬件、软件、固件、中间件、微码或者其任意组合中实现。对于硬件实现,处理器可以在一个或者多个特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器和/或设计为执行本文所述功能的其它电子单元或者其结合内实现。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
Claims (18)
1.一种基于SaaS系统的数据库操作方法,其特征在于,包括:
接收来自租户的请求,所述请求包括创建应用,一个所述租户对应一个数据库集群,一个所述数据库集群包括多个数据库;
根据所述请求确认是否存在数据源规则,所述数据源规则包括所述请求和所述数据库集群中的一个或多个数据库的第一对应关系;
若所述数据源规则存在,则根据所述第一对应关系绑定所述请求和所述一个或多个数据库;以及
若所述数据源规则不存在,则创建包括所述第一对应关系的数据源规则,并根据所述第一对应关系绑定所述请求和所述一个或多个数据库。
2.如权利要求1所述的数据库操作方法,其特征在于,还包括:在数据容器中存储数据源信息和所述数据源规则,所述数据源信息包括所述数据库集群的信息;在所述接收来自租户的请求的步骤之后还包括:获取所述数据源信息。
3.如权利要求1所述的数据库操作方法,其特征在于,所述请求还包括创建租户和创建项目,所述应用对应于所述项目,所述项目对应于所述租户。
4.如权利要求3所述的数据库操作方法,其特征在于,所述租户具有租户ID,所述项目具有项目ID,所述应用具有应用ID,在所述接收来自租户的请求的步骤之后还包括:响应于所述请求创建用户密钥,所述用户密钥由所述租户ID、所述项目ID和所述应用ID共同唯一确定;以及,所述数据源规则包括所述用户密钥和所述数据库集群中的一个或多个数据库的第二对应关系。
5.如权利要求1所述的数据库操作方法,其特征在于,还包括:根据所述请求判断是否需要读写分离,若需要读写分离,则所述数据源规则包括所述请求和所述数据库集群中的一读数据库、一写数据库之间的第三对应关系。
6.如权利要求1所述的数据库操作方法,其特征在于,在所述接收来自租户的请求的步骤之后还包括:拦截所述请求。
7.如权利要求6所述的数据库操作方法,其特征在于,使用代理对象拦截所述请求。
8.如权利要求2所述的数据库操作方法,其特征在于,所述数据容器基于Zookeeper框架而设置。
9.一种基于SaaS系统的数据库操作系统,其特征在于,包括:微服务模块、数据容器和数据库集群,其中,
所述SaaS系统的租户通过所述微服务模块提出请求,所述请求包括创建应用,一个所述租户对应一个数据库集群;
所述微服务模块根据所述请求从所述数据容器中获取数据源规则,所述数据源规则包括所述请求和所述数据库集群中的一个或多个数据库的第一对应关系;
若所述微服务模块成功获取所述数据源规则,则根据所述第一对应关系绑定所述请求和所述一个或多个数据库;以及
若所述微服务模块不能获取所述数据源规则,则创建包括所述第一对应关系的数据源规则,并根据所述第一对应关系绑定所述请求和所述一个或多个数据库。
10.如权利要求9所述的数据库操作系统,其特征在于,还包括数据管理模块,数据库管理员通过所述数据管理模块管理所述数据容器中的数据源信息,所述数据源信息包括数据库集群的信息,所述数据库集群包括多个数据库;其中,所述微服务模块根据所述请求从所述数据容器中获取所述数据源信息,并将所述数据源信息加载到本地。
11.如权利要求9所述的数据库操作系统,其特征在于,所述请求还包括创建租户和创建项目,所述应用对应于所述项目,所述项目对应于所述租户。
12.如权利要求11所述的数据库操作系统,其特征在于,所述租户具有租户ID,所述项目具有项目ID,所述应用具有应用ID,所述微服务模块还根据所述请求创建用户密钥,所述用户密钥由所述租户ID、所述项目ID和所述应用ID共同唯一确定;其中,所述数据源规则包括所述用户密钥和所述数据库集群中的一个或多个数据库的第二对应关系。
13.如权利要求9所述的数据库操作系统,其特征在于,所述微服务模块包括第一子模块和第二子模块,所述第一子模块适于获取所述数据源规则,所述第二子模块适于创建所述数据源规则。
14.如权利要求9所述的数据库操作系统,其特征在于,所述微服务模块还根据所述请求判断是否需要读写分离,若需要读写分离,则所述数据源规则包括所述请求和所述数据库集群中的一读数据库、一写数据库之间的第三对应关系。
15.如权利要求9所述的数据库操作系统,其特征在于,还包括代理对象,所述代理对象拦截所述请求,使所述微服务模块获得所述请求。
16.如权利要求9所述的数据库操作系统,其特征在于,所述数据容器基于Zookeeper框架而设置。
17.一种基于SaaS系统的数据库操作系统,包括:
存储器,用于存储可由处理器执行的指令;
处理器,用于执行所述指令以实现如权利要求1-8任一项所述的方法。
18.一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110347832.0A CN112905708A (zh) | 2021-03-31 | 2021-03-31 | 基于SaaS系统的数据库操作方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110347832.0A CN112905708A (zh) | 2021-03-31 | 2021-03-31 | 基于SaaS系统的数据库操作方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905708A true CN112905708A (zh) | 2021-06-04 |
Family
ID=76109716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110347832.0A Pending CN112905708A (zh) | 2021-03-31 | 2021-03-31 | 基于SaaS系统的数据库操作方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905708A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760849A (zh) * | 2021-11-10 | 2021-12-07 | 深圳市明源云科技有限公司 | 日志处理方法、系统、电子设备及计算机可读存储介质 |
CN114841673A (zh) * | 2022-05-19 | 2022-08-02 | 飞鸟鱼信息科技有限公司 | 业务数据处理方法及装置 |
CN115080537A (zh) * | 2022-06-07 | 2022-09-20 | 易保网络技术(上海)有限公司 | 多租户的数据分库方法、程序产品及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110264861A1 (en) * | 2010-04-21 | 2011-10-27 | Salesforce.Com | Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems |
CN102456028A (zh) * | 2010-10-27 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种面向多租户的数据获取方法、装置及系统 |
CN107203575A (zh) * | 2016-03-18 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 一种用于隔离多租户数据的系统、设备和方法 |
CN110519361A (zh) * | 2019-08-22 | 2019-11-29 | 北京宝兰德软件股份有限公司 | 基于kubernetes的容器云平台多租户构建方法及装置 |
CN110765489A (zh) * | 2019-10-30 | 2020-02-07 | 深圳前海环融联易信息科技服务有限公司 | 多租户数据库隔离方法、系统、电子设备及计算机存储介质 |
CN110799961A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 在数据库中创建和删除租户的系统和方法 |
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111491012A (zh) * | 2020-03-27 | 2020-08-04 | 北京尚医智信健康管理有限公司 | SaaS多租户数据隔离访问方法、装置、电子设备及存储介质 |
CN112100262A (zh) * | 2020-09-16 | 2020-12-18 | 南京智数云信息科技有限公司 | 多租户SaaS平台快速搭建及动态扩容的方法及系统 |
CN112527310A (zh) * | 2020-12-15 | 2021-03-19 | 平安国际智慧城市科技股份有限公司 | 多租户数据隔离方法、装置、计算机设备及存储介质 |
-
2021
- 2021-03-31 CN CN202110347832.0A patent/CN112905708A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110264861A1 (en) * | 2010-04-21 | 2011-10-27 | Salesforce.Com | Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems |
CN102456028A (zh) * | 2010-10-27 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种面向多租户的数据获取方法、装置及系统 |
CN107203575A (zh) * | 2016-03-18 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 一种用于隔离多租户数据的系统、设备和方法 |
CN110799961A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 在数据库中创建和删除租户的系统和方法 |
CN110519361A (zh) * | 2019-08-22 | 2019-11-29 | 北京宝兰德软件股份有限公司 | 基于kubernetes的容器云平台多租户构建方法及装置 |
CN110765489A (zh) * | 2019-10-30 | 2020-02-07 | 深圳前海环融联易信息科技服务有限公司 | 多租户数据库隔离方法、系统、电子设备及计算机存储介质 |
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111491012A (zh) * | 2020-03-27 | 2020-08-04 | 北京尚医智信健康管理有限公司 | SaaS多租户数据隔离访问方法、装置、电子设备及存储介质 |
CN112100262A (zh) * | 2020-09-16 | 2020-12-18 | 南京智数云信息科技有限公司 | 多租户SaaS平台快速搭建及动态扩容的方法及系统 |
CN112527310A (zh) * | 2020-12-15 | 2021-03-19 | 平安国际智慧城市科技股份有限公司 | 多租户数据隔离方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
周学权等: "面向多租户的多层次可伸缩SaaS软件架构研究", 《华中科技大学学报(自然科学版)》, 10 January 2014 (2014-01-10), pages 138 - 143 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760849A (zh) * | 2021-11-10 | 2021-12-07 | 深圳市明源云科技有限公司 | 日志处理方法、系统、电子设备及计算机可读存储介质 |
CN114841673A (zh) * | 2022-05-19 | 2022-08-02 | 飞鸟鱼信息科技有限公司 | 业务数据处理方法及装置 |
CN115080537A (zh) * | 2022-06-07 | 2022-09-20 | 易保网络技术(上海)有限公司 | 多租户的数据分库方法、程序产品及电子设备 |
CN115080537B (zh) * | 2022-06-07 | 2023-11-10 | 易保网络技术(上海)有限公司 | 多租户的数据分库方法、装置、存储介质、芯片装置及电子设备 |
WO2023236756A1 (zh) * | 2022-06-07 | 2023-12-14 | 易保网络技术(上海)有限公司 | 多租户的数据分库方法、程序产品及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784930B (zh) | 一种区块链交易数据的处理方法、装置、电子设备及介质 | |
CN112905708A (zh) | 基于SaaS系统的数据库操作方法及系统 | |
US9235589B2 (en) | Optimizing storage allocation in a virtual desktop environment | |
CN111819545A (zh) | 分布式计算系统中的虚拟机的动态迁移 | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
JP2021518021A (ja) | データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN109522332A (zh) | 客户信息数据合并方法、装置、设备及可读存储介质 | |
JP5248912B2 (ja) | サーバ計算機、計算機システムおよびファイル管理方法 | |
CN111159235A (zh) | 数据预分区方法、装置、电子设备及可读存储介质 | |
US20160019090A1 (en) | Data processing control method, computer-readable recording medium, and data processing control device | |
US20180068129A1 (en) | Implementing extent granularity authorization command flow processing in capi adapters | |
WO2021226822A1 (zh) | 日志写入方法、装置、电子设备以及存储介质 | |
CN106021566A (zh) | 一种提高单台数据库并发处理能力的方法、装置及系统 | |
EP3108400B1 (en) | Virus signature matching method and apparatus | |
KR20120037381A (ko) | 소프트웨어 컴포넌트 상태에 대한 접근 제어 | |
CN108304142A (zh) | 一种数据管理方法和装置 | |
US10043028B2 (en) | Implementing extent granularity authorization processing in CAPI adapters | |
CN111782634A (zh) | 数据分布式存储方法、装置、电子设备及存储介质 | |
US11847240B2 (en) | System and method for matching, grouping and recommending computer security rules | |
CN114385657A (zh) | 数据存储方法、装置及存储介质 | |
CN103902686B (zh) | 一种数据去重方法及装置 | |
CN115756549A (zh) | 一种大数据中台数据的下载方法、装置及存储介质 | |
CN117880288A (zh) | 数据均衡方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210604 |
|
RJ01 | Rejection of invention patent application after publication |