一种操作多租户数据的系统、方法与应用技术方案

技术编号:38537274 阅读:12 留言:0更新日期:2023-08-19 17:07
本发明专利技术公开了一种操作多租户数据系统,包括:前台服务模块和数据库模块,前台服务模块和数据库模块交互连接,前台服务模块包括前端页面交互模块和应用服务模块,前端页面交互模块与应用服务模块交互连接,前端页面交互模块获取用户操作信息,反馈操作信息到应用服务模块中;应用服务模块中包括租户信息获取模块和登录模块,在用户通过前端页面交互模块使用指定账号密码登录后通过租户信息获取模块获取当前账号下的所属租户信息,在原始sql中设置可变变量,方便进行关键词替换,便于查询不同的sql数据,在数据操作过程中,通过映射获取待替换数据,替换sql中的变量进行数据操作,整体不需要建立schema与连接的映射,不会浪费数据库连接资源。库连接资源。库连接资源。

【技术实现步骤摘要】
一种操作多租户数据的系统、方法与应用


[0001]本专利技术涉及数据库
,具体为一种操作多租户数据的系统、方法与应用。

技术介绍

[0002]多租户简单来说是指一个单独的实例可以为多个组织服务。多租户技术为共用的数据中心内如何以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍然可以保障客户的数据隔离。一个支持多租户技术的系统需要在设计上对它的数据和配置进行虚拟分区,从而使系统的每个租户或称组织都能够使用一个单独的系统实例,多租户技术可以实现多个租户之间共享系统实例,同时又可以实现租户的系统实例的个性化定制。
[0003]在现有的数据库操作方案中,应用启动时,建立租户与数据库连接,用户名,密码建立映射关系;应用在每次操作时,会先根据租户获取当前租户对应的数据库连接,然后调用此数据库连接进行数据操作,应用启动时,不建立映射关系,系统根据springboot原生能力配置替换对应数据库连接;在每次操作时,应用研发无感,直接操作数据,应用直接替换对应租户的数据库链接,操作对应Schema里面的数据,而上述方式中需要事先建立租户与数据库链接的对应关系,但是对于不活跃租户,这个数据库链接可能会浪费,并且新增加租户时,还需要重新建立数据库连接,比较复杂,为此需要一种操作多租户数据的系统、方法与应用。

技术实现思路

[0004]本专利技术的目的在于提供一种操作多租户数据的系统、方法与应用,以解决上述
技术介绍
中提出的问题。
[0005]为实现上述目的,本专利技术提供如下技术方案:一种操作多租户数据的系统,包括:前台服务模块和数据库模块,前台服务模块和数据库模块交互连接;
[0006]其中,前台服务模块包括前端页面交互模块和应用服务模块,前端页面交互模块与应用服务模块交互连接,前端页面交互模块获取用户操作信息,反馈操作信息到应用服务模块中;
[0007]其中,应用服务模块中包括租户信息获取模块和登录模块,在用户通过前端页面交互模块使用指定账号密码登录后通过租户信息获取模块获取当前账号下的所属租户信息;
[0008]其中,应用服务模块中还包括sql信息关键词替换模块,用于替换该账户下用户所需查询语句的关键词;
[0009]其中,数据库模块包括数据执行引擎模块,数据执行引擎模块与应用服务模块交互连接,用于执行应用服务模块中所传输的指令。
[0010]优选的,数据库模块为公共共享租赁数据库,存储所有租户数据和公共用户数据。
[0011]优选的,数据执行引擎模块中包括sql语句查询执行模块,sql语句查询执行模块
与sql信息关键词替换模块交互连接,用于在数据库中执行替换关键词后的sql语句。
[0012]优选的,数据执行引擎模块还包括查询登录租户信息模块,查询登录租户信息模块与所属租户信息获取模块交互连接,查询登录账号下的公共用户数据。
[0013]优选的,数据执行引擎模块还包括查询登录租户信息模块,查询登录租户信息模块与所属租户信息获取模块交互连接,查询登录账号下的公共用户数据。
[0014]本专利技术还提供了一种操作多租户数据的方法,包括以下步骤:
[0015]步骤1:新增数据库系统,数据库系统中设置schema可变变量,作为sql语句替换数据;
[0016]步骤2:获取当前用户所属租户信息,用户登录数据库后,缓存当前用户所属的租户服务器地址;
[0017]步骤3:用户信息和租户信息连接,当用户使用数据库进行数据操作时,首先获取当前用户的所有所属租户服务器地址;
[0018]步骤4:租户数据库信息连接,用户连接租户信息后,根据服务器地址获取对应数据库,形成数据库隔离;
[0019]步骤5:系统SQL语句执行,在数据库系统执行SQL语句时,替换原sql语句中的schema,得到新的sql语句,通过新sql语句查询当前对应数据库中的数据信息。
[0020]优选的,步骤2中,缓存当前用户所述的租户服务器地址中缓存在一个context中,context放置在内存中。
[0021]优选的,步骤3中,用户和租户信息连接,用户通过context中缓存的服务器地址获取所属租户的服务器地址。
[0022]优选的,所述步骤5中用户通过获取所属租户的服务器地址,获取对应的数据库schema可变变量,数据库执行sql语句替换不同的schema可变变量得到sql语句执行结果。
[0023]优选的,步骤3中,用户和租户信息连接均采用单独账号密码连接,各自数据库所属信息均绑定在用户和租户的单独账号中。
[0024]本专利技术还提供了一种操作多租户数据的应用,多租户在不同数据库操作不同数据中的应用。
[0025]与现有技术相比,本专利技术的有益效果是:
[0026]本专利技术中,在原始sql中设置可变变量,方便进行关键词替换,便于查询不同的sql数据,在数据操作过程中,通过映射获取待替换数据,替换sql中的变量进行数据操作,整体不需要建立schema与连接的映射,不会浪费数据库连接资源。
附图说明
[0027]图1为本专利技术操作多租户数据系统的模块示意图。
具体实施方式
[0028]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0029]请参阅图1,本专利技术提供一种技术方案:
[0030]一种操作多租户数据系统,包括:前台服务模块和数据库模块,前台服务模块和数据库模块交互连接;
[0031]其中,前台服务模块包括前端页面交互模块和应用服务模块,前端页面交互模块与应用服务模块交互连接,前端页面交互模块获取用户操作信息,反馈操作信息到应用服务模块中;
[0032]其中,应用服务模块中包括租户信息获取模块和登录模块,在用户通过前端页面交互模块使用指定账号密码登录后通过租户信息获取模块获取当前账号下的所属租户信息;
[0033]其中,应用服务模块中还包括sql信息关键词替换模块,用于替换该账户下用户所需查询语句的关键词;
[0034]其中,数据库模块包括数据执行引擎模块,数据执行引擎模块与应用服务模块交互连接,用于执行应用服务模块中所传输的指令。
[0035]具体的,数据库模块为公共共享租赁数据库,存储所有租户数据和公共用户数据。
[0036]具体的,数据执行引擎模块中包括sql语句查询执行模块,sql语句查询执行模块与sql信息关键词替换模块交互连接,用于在数据库中执行替换关键词后的sql语句。
[0037]具体的,数据执行引擎模块还包括查询登录租户信息模块,查询登录租户信息模块与所属租户信息获取模块交互连接,查询登录账号下的公共用户数据。
[0038]具体的,数据执行引擎模块还包括查询登录租本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种操作多租户数据系统,其特征在于,包括:前台服务模块和数据库模块,前台服务模块和数据库模块交互连接;其中,前台服务模块包括前端页面交互模块和应用服务模块,前端页面交互模块与应用服务模块交互连接,前端页面交互模块获取用户操作信息,反馈操作信息到应用服务模块中;其中,应用服务模块中包括租户信息获取模块和登录模块,在用户通过前端页面交互模块使用指定账号密码登录后通过租户信息获取模块获取当前账号下的所属租户信息;其中,应用服务模块中还包括sql信息关键词替换模块,用于替换该账户下用户所需查询语句的关键词;其中,数据库模块包括数据执行引擎模块,数据执行引擎模块与应用服务模块交互连接,用于执行应用服务模块中所传输的指令。2.根据权利要求1所述的一种操作多租户数据系统,其特征在于:数据库模块为公共共享租赁数据库,存储所有租户数据和公共用户数据。3.根据权利要求2所述的一种操作多租户数据系统,其特征在于:数据执行引擎模块中包括sql语句查询执行模块,sql语句查询执行模块与sql信息关键词替换模块交互连接,用于在数据库中执行替换关键词后的sql语句。4.根据权利要求2所述的一种操作多租户数据系统,其特征在于:数据执行引擎模块还包括查询登录租户信息模块,查询登录租户信息模块与所属租户信息获取模块交互连接,查询登录账号下的公共用户数据。5.一种操作多租户数据系统的方法,其特征在于,包括如权1

4任一项所述的一种操作多租户数据系统,还包括以下步骤:步骤1:新增数据库系统,数据库系统中设置schema可变变量,作为sql语句替换...

【专利技术属性】
技术研发人员:冯春培张英王世纪张俊林博邱伟峰请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:杭州用九智汇科技有限公司
类型:发明
国别省市:

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

1