CN112069210A - 一种saas平台多租户数据隔离方法 - Google Patents
一种saas平台多租户数据隔离方法 Download PDFInfo
- Publication number
- CN112069210A CN112069210A CN202010847607.9A CN202010847607A CN112069210A CN 112069210 A CN112069210 A CN 112069210A CN 202010847607 A CN202010847607 A CN 202010847607A CN 112069210 A CN112069210 A CN 112069210A
- Authority
- CN
- China
- Prior art keywords
- tenant
- service instance
- query request
- database
- preset
- 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
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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开的saas平台多租户数据隔离方法,涉及计算机技术领域,通过解析appollo分布式配置中心配置的信息并将该信息存储于本地java虚拟机中,接收用户发起的查询请求,获取查询请求对应的租户标识及租户类型,根据租户标识及租户类型,从预设的租户与业务实例之间的匹配规则中获取相应的业务实例,将业务实例写入查询请求对应的SQL语句或该查询请求,执行该查询请求对应的SQL语句或该查询请求,根据预设的业务实例与数据库之间的匹配规则,为查询请求匹配对应的数据库,从该数据库中获取数据,节省了大量人工成本及设备成本,能快速获取租户信息并获取租户要获取的数据,提高了性能及可扩展性。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种saas平台多租户数据隔离方法。
背景技术
当前流行的Saas平台,其搭建过程必然涉及到对租户数据进行隔离。针对多租户数据隔离的方案,一般情况下分为三种方案:一、仅共享硬件;二、仅共享应用程序,对每个租户使用不同的数据库;三、共享应用程序和数据库。第三种方案为目前主流的多租户数据隔离方案,但该方案需要复杂配置及大量的运维工作,人工及设备成本较高,不能快速定位租户信息,性能较低且灵活性及扩展性较差。
发明内容
为解决现有技术的不足,本发明实施例提供了一种saas平台多租户数据隔离方法,该方法包括以下步骤:
启动SpringBoot框架的启动器starter,解析appollo分布式配置中心配置的信息并将所述信息存储于本地java虚拟机中,其中,所述信息包括预设的租户与业务实例之间的匹配规则、预设的业务实例与数据库之间的匹配规则;
接收用户发起的查询请求,利用SQL语句解析组件或Elasticsearch查询代理组件解析用户发起的查询请求,得到所述查询请求对应的租户标识及租户类型;
根据所述租户标识及所述租户类型,从预设的租户与业务实例之间的匹配规则中获取相应的业务实例;
将所述业务实例写入所述查询请求对应的SQL语句或所述查询请求;
利用Mybatis框架中SQL语句执行组件SqlExecutor,执行所述查询请求对应的SQL语句或利用Elasticsearch查询代理组件中的索引引擎indexEngine,执行所述查询请求;
根据预设的业务实例与数据库之间的匹配规则,为所述查询请求匹配对应的数据库,从所述数据库中获取数据。
优选地,预设的租户与业务实例之间的匹配规则的创建过程包括:
利用appollo分布式配置中心,为各个业务实例设置相应的标识;
利用appollo分布式配置中心,为各个租户设置相应的类型、标识;
根据业务实例的标识、租户的标识,将业务实例与租户相关联,生成预设的租户与业务实例之间的匹配规则。
优选地,预设的业务实例与数据库之间的匹配规则的创建过程包括:
利用appollo分布式配置中心,设置各个业务实例的类型;
根据数据库的类型、业务实例的类型,将数据库与业务实例相关联,生成预设的业务实例与数据库之间的匹配规则。
优选地,一个业务实例对应不同类型的租户,同一类型的租户对应同一类型的数据库及不同的租户标识。
本发明实施例提供的saas平台多租户数据隔离方法具有以下有益效果:
(1)无需复杂配置及运维工作即可完成租户组件集成过滤,简单易用,能够节省大量人工成本及设备成本;
(2)能快速获取租户信息并获取租户要获取的数据,性能较高;
(3)各业务实例可根据其关联的租户类型,对其进行灵活配置字段,可扩展性较强。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
本发明实施例提供的saas平台多租户数据隔离方法包括以下步骤:
S101,启动SpringBoot框架的启动器starter,解析appollo分布式配置中心配置的信息并将该信息存储于本地java虚拟机中,其中,该信息包括预设的租户与业务实例之间的匹配规则、预设的业务实例与数据库之间的匹配规则。
作为本发明一个具体的实施例,针对共享汽车领域,业务实例包括订单类业务、维修类业务、车辆提供类业务及场地提供类业务。
S102,接收用户发起的查询请求,利用SQL语句解析组件或Elasticsearch查询代理组件解析用户发起的查询请求,得到查询请求对应的租户标识及租户类型。
作为本发明一个具体的实施例,租户标识为租户的登录账号,租户类型包括车辆供应商、场地供应商。
S103,根据租户标识及租户类型,从预设的租户与业务实例之间的匹配规则中获取相应的业务实例。
S104,将业务实例写入查询请求对应的SQL语句或该查询请求。
作为本发明一个具体的实施例,通过“and”语句将业务实例写入查询请求对应的SQL语句。
S105,利用Mybatis框架中SQL语句执行组件SqlExecutor,执行该查询请求对应的SQL语句或利用Elasticsearch查询代理组件中的索引引擎indexEngine,执行该查询请求。
S106,根据预设的业务实例与数据库之间的匹配规则,为查询请求匹配对应的数据库,从该数据库中获取数据。
可选地,预设的租户与业务实例之间的匹配规则的创建过程包括:
利用appollo分布式配置中心,为各个业务实例设置相应的标识;
利用appollo分布式配置中心,为各个租户设置相应的类型、标识;
根据业务实例的标识、租户的标识,将业务实例与租户相关联,生成预设的租户与业务实例之间的匹配规则。
可选地,预设的业务实例与数据库之间的匹配规则的创建过程包括:
利用appollo分布式配置中心,设置各个业务实例的类型;
根据数据库的类型、业务实例的类型,将数据库与业务实例相关联,生成预设的业务实例与数据库之间的匹配规则。
作为本发明一个具体的实施例,数据库包括Mysql等关系型数据库、Elasticsearch等非关系型数据库。
可选地,一个业务实例对应不同类型的租户,同一类型的租户对应同一类型的数据库及不同的租户标识。
本发明实施例提供的saas平台多租户数据隔离方法,通过启动SpringBoot框架的启动器starter,解析appollo分布式配置中心配置的信息并将该信息存储于本地java虚拟机中,接收用户发起的查询请求,利用SQL语句解析组件或Elasticsearch查询代理组件解析用户发起的查询请求,得到查询请求对应的租户标识及租户类型,根据租户标识及租户类型,从预设的租户与业务实例之间的匹配规则中获取相应的业务实例,将业务实例写入查询请求对应的SQL语句或该查询请求,利用Mybatis框架中SQL语句执行组件SqlExecutor,执行该查询请求对应的SQL语句或利用Elasticsearch查询代理组件中的索引引擎indexEngine,执行该查询请求,根据预设的业务实例与数据库之间的匹配规则,为查询请求匹配对应的数据库,从该数据库中获取数据,节省了大量人工成本及设备成本,能快速获取租户信息并获取租户要获取的数据,提高了性能及可扩展性。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (6)
1.一种saas平台多租户数据隔离方法,其特征在于,包括:
启动SpringBoot框架的启动器starter,解析appollo分布式配置中心配置的信息并将所述信息存储于本地java虚拟机中,其中,所述信息包括预设的租户与业务实例之间的匹配规则、预设的业务实例与数据库之间的匹配规则;
接收用户发起的查询请求,利用SQL语句解析组件或Elasticsearch查询代理组件解析用户发起的查询请求,得到所述查询请求对应的租户标识及租户类型;
根据所述租户标识及所述租户类型,从预设的租户与业务实例之间的匹配规则中获取相应的业务实例;
将所述业务实例写入所述查询请求对应的SQL语句或所述查询请求;
利用Mybatis框架中SQL语句执行组件SqlExecutor,执行所述查询请求对应的SQL语句或利用Elasticsearch查询代理组件中的索引引擎indexEngine,执行所述查询请求;
根据预设的业务实例与数据库之间的匹配规则,为所述查询请求匹配对应的数据库,从所述数据库中获取数据。
2.根据权利要求1所述的saas平台多租户数据隔离方法,其特征在于,预设的租户与业务实例之间的匹配规则的创建过程包括:
利用appollo分布式配置中心,为各个业务实例设置相应的标识;
利用appollo分布式配置中心,为各个租户设置相应的类型、标识;
根据业务实例的标识、租户的标识,将业务实例与租户相关联,生成预设的租户与业务实例之间的匹配规则。
3.根据权利要求1所述的saas平台多租户数据隔离方法,其特征在于,预设的业务实例与数据库之间的匹配规则的创建过程包括:
利用appollo分布式配置中心,设置各个业务实例的类型;
根据数据库的类型、业务实例的类型,将数据库与业务实例相关联,生成预设的业务实例与数据库之间的匹配规则。
4.根据权利要求1所述的saas平台多租户数据隔离方法,其特征在于,一个业务实例对应不同类型的租户,同一类型的租户对应同一类型的数据库及不同的租户标识。
5.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如权利要求1至3任一项所述的方法。
6.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847607.9A CN112069210A (zh) | 2020-08-21 | 2020-08-21 | 一种saas平台多租户数据隔离方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847607.9A CN112069210A (zh) | 2020-08-21 | 2020-08-21 | 一种saas平台多租户数据隔离方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112069210A true CN112069210A (zh) | 2020-12-11 |
Family
ID=73658803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010847607.9A Pending CN112069210A (zh) | 2020-08-21 | 2020-08-21 | 一种saas平台多租户数据隔离方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069210A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367408A (zh) * | 2021-01-13 | 2021-02-12 | 树根互联技术有限公司 | 一种物联网多租户数据的管理***及方法 |
CN112527504A (zh) * | 2020-12-17 | 2021-03-19 | 金蝶蝶金云计算有限公司 | 多租户的资源配额管理方法、装置、计算机设备 |
CN112905630A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 数据操作方法、服务器和计算机可读介质 |
CN112905617A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 数据写入方法、服务器及计算机可读存储介质 |
CN112905636A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 数据操作方法、服务器和计算机可读介质 |
CN113535723A (zh) * | 2021-07-13 | 2021-10-22 | 杭州安恒信息技术股份有限公司 | 一种多租户数据库管控方法、***及存储介质 |
CN113821531A (zh) * | 2021-09-28 | 2021-12-21 | 山东舜网传媒股份有限公司 | 融媒体多租户数据隔离方法、***及设备 |
CN115118765A (zh) * | 2022-06-20 | 2022-09-27 | 北京京东乾石科技有限公司 | 服务处理的方法、装置、电子设备和存储介质 |
CN115391828A (zh) * | 2022-10-31 | 2022-11-25 | 泰豪软件股份有限公司 | 基于微服务架构的多租户平台的数据隔离方法及*** |
CN116010431A (zh) * | 2023-03-27 | 2023-04-25 | 北京有生博大软件股份有限公司 | 基于多租户模式下的数据要素管理方法及管理*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036856A (zh) * | 2011-10-09 | 2013-04-10 | 镇江金软计算机科技有限责任公司 | 基于saas应用的多租户***实现 |
CN104462421A (zh) * | 2014-12-12 | 2015-03-25 | 中国科学院声学研究所 | 基于键-值数据库的多租户扩展方法 |
CN108829507A (zh) * | 2018-03-30 | 2018-11-16 | 北京百度网讯科技有限公司 | 分布式数据库***的资源隔离方法、装置和服务器 |
CN109412878A (zh) * | 2019-01-16 | 2019-03-01 | 紫光云数科技有限公司 | 多租户业务接入实现方法、装置及电子设备 |
CN110737663A (zh) * | 2019-10-15 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN110765489A (zh) * | 2019-10-30 | 2020-02-07 | 深圳前海环融联易信息科技服务有限公司 | 多租户数据库隔离方法、***、电子设备及计算机存储介质 |
-
2020
- 2020-08-21 CN CN202010847607.9A patent/CN112069210A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036856A (zh) * | 2011-10-09 | 2013-04-10 | 镇江金软计算机科技有限责任公司 | 基于saas应用的多租户***实现 |
CN104462421A (zh) * | 2014-12-12 | 2015-03-25 | 中国科学院声学研究所 | 基于键-值数据库的多租户扩展方法 |
CN108829507A (zh) * | 2018-03-30 | 2018-11-16 | 北京百度网讯科技有限公司 | 分布式数据库***的资源隔离方法、装置和服务器 |
CN109412878A (zh) * | 2019-01-16 | 2019-03-01 | 紫光云数科技有限公司 | 多租户业务接入实现方法、装置及电子设备 |
CN110737663A (zh) * | 2019-10-15 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN110765489A (zh) * | 2019-10-30 | 2020-02-07 | 深圳前海环融联易信息科技服务有限公司 | 多租户数据库隔离方法、***、电子设备及计算机存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527504A (zh) * | 2020-12-17 | 2021-03-19 | 金蝶蝶金云计算有限公司 | 多租户的资源配额管理方法、装置、计算机设备 |
CN112367408A (zh) * | 2021-01-13 | 2021-02-12 | 树根互联技术有限公司 | 一种物联网多租户数据的管理***及方法 |
CN112905617B (zh) * | 2021-03-31 | 2023-01-24 | 浙江太美医疗科技股份有限公司 | 数据写入方法、服务器及计算机可读存储介质 |
CN112905617A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 数据写入方法、服务器及计算机可读存储介质 |
CN112905636A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 数据操作方法、服务器和计算机可读介质 |
CN112905630A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 数据操作方法、服务器和计算机可读介质 |
CN113535723A (zh) * | 2021-07-13 | 2021-10-22 | 杭州安恒信息技术股份有限公司 | 一种多租户数据库管控方法、***及存储介质 |
CN113821531A (zh) * | 2021-09-28 | 2021-12-21 | 山东舜网传媒股份有限公司 | 融媒体多租户数据隔离方法、***及设备 |
CN113821531B (zh) * | 2021-09-28 | 2024-06-18 | 山东舜网传媒股份有限公司 | 融媒体多租户数据隔离方法、***及设备 |
CN115118765A (zh) * | 2022-06-20 | 2022-09-27 | 北京京东乾石科技有限公司 | 服务处理的方法、装置、电子设备和存储介质 |
CN115118765B (zh) * | 2022-06-20 | 2024-04-05 | 北京京东乾石科技有限公司 | 服务处理的方法、装置、电子设备和存储介质 |
CN115391828A (zh) * | 2022-10-31 | 2022-11-25 | 泰豪软件股份有限公司 | 基于微服务架构的多租户平台的数据隔离方法及*** |
CN116010431A (zh) * | 2023-03-27 | 2023-04-25 | 北京有生博大软件股份有限公司 | 基于多租户模式下的数据要素管理方法及管理*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112069210A (zh) | 一种saas平台多租户数据隔离方法 | |
CN109977110B (zh) | 数据清洗方法、装置及设备 | |
US9558218B2 (en) | Truncating data associated with objects in a multi-tenant database | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
CN101031907B (zh) | 索引处理 | |
CN108932313B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US10169446B1 (en) | Relational modeler and renderer for non-relational data | |
CA3176450A1 (en) | Method and apparatus for implementing incremental data consistency | |
CN107016019B (zh) | 数据库索引创建方法及装置 | |
RU2008106228A (ru) | Клонирование и управление фрагментами базы данных | |
CA2461871A1 (en) | An efficient index structure to access hierarchical data in a relational database system | |
CN107291770A (zh) | 一种分布式***中海量数据的查询方法及装置 | |
JP2014509423A (ja) | ルール属性から運賃検出を提供するための方法、システム、およびコンピュータプログラム | |
US20120330988A1 (en) | Systems And Methods For Performing Index Joins Using Auto Generative Queries | |
CN108255852B (zh) | Sql执行方法及装置 | |
US20210216516A1 (en) | Management of a secondary vertex index for a graph | |
CN111078728B (zh) | 一种数据库归档模式下跨库查询方法和装置 | |
CN109669946B (zh) | 一种基于海量用户的复杂权限体系数据隔离***及方法 | |
CN110147396B (zh) | 一种映射关系生成方法及装置 | |
US10007689B1 (en) | Temporally consistent group keys | |
CN116737113A (zh) | 面向海量科学数据的元数据目录管理***及方法 | |
CN108388610B (zh) | 数据etl处理方法及装置 | |
CN110737662A (zh) | 一种数据分析方法、装置、服务器及计算机存储介质 | |
US9087052B2 (en) | Batch DBMS statement processing such that intermediate feedback is provided prior to completion of processing | |
CN106372121B (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 |