一种支持数据模型切换的多租户数据库系统技术方案

技术编号:31494442 阅读:18 留言:0更新日期:2021-12-18 12:33
本发明专利技术公开了一种支持数据模型切换的多租户数据库系统,分为三层:数据库驱动层、数据库转换层以及数据库存储层;数据库存储层设置了多个包含不同的数据模型的数据库实例存储空间,以及租户元数据库实例;数据库转换层主要包含两个功能实体:数据模型转换模块和数据库管理监控模块;数据库管理监控模块包括管理器和监控器;管理器具有租户需求管理和数据库实例空间管理功能;监控器具有监控数据库实例功能和监控租户数据功能;数据模型转换模块采用数据热迁移;数据库驱动层主要包含数据查询重写模块,为租户应用的数据查询提供查询重写功能。本发明专利技术满足不同租户的细粒度数据存储需求,并且支持其需求的灵活变动,同时降低服务商的运营成本。商的运营成本。商的运营成本。

【技术实现步骤摘要】
一种支持数据模型切换的多租户数据库系统


[0001]本专利技术涉及数据存储
,具体涉及一种支持数据模型切换的多租户数据库系统。

技术介绍

[0002]在SaaS多租户应用系统中,虽然一个多租户应用实例为多个相同或者类似的租户逻辑应用提供服务,但租户对应用业务的需求存在差异,这种差异使得SaaS多租户应用对数据存储服务的需求存在差异。安全性、可靠性以及可配置性是租户在租赁SaaS多租户应用时最关心的因素,租户对这些因素要求的不同体现在SaaS多租户应用对多租户数据存储服务要求的不同。
[0003]对于数据存储服务而言,租户对应用的安全性需求体现在数据的隐私性上。数据是企业的资产,因此,租户在租用SaaS服务时,对数据的隐私性及时要求程度各不相同,其对于非涉密、可公开的数据可以共享存储,而对于敏感数据,则要求独立存储。对于数据存储服务而言,租户对应用的可靠性要求体现在租户对数据库查询性能以及数据库故障恢复能力上。查询性能方面,不同租户对应用处理业务的速度往往有着不同的要求,对于负载较重的租户应用,其需要多租户数据库提供较高查询处理能力以及较高数据吞吐能力。故障恢复能力方面,不同租户对数据库受到攻击、发生人为或系统错误后恢复可用的速度要求也不尽相同。对于数据存储服务而言,租户对应用的可配置性要求体现在租户对数据结构可自定义程度上。SaaS多租户应用在租赁应用后,部分租户需要经常对业务流程进行调整与修改,这就要求SaaS多租户应用具有一定的可配置性,应用业务的改变往往需要对支撑业务的数据的逻辑结构进行调整,而对于部分租户而言,其业务流程却具有稳定性,对数据结构可自定义的需求较低。
[0004]在多租户数据存储服务的实现中,数据模型起到了决定性的作用。在实现多租户应用的数据库系统中,数据模型可以分为共享数据模型与私有数据模型。共享数据模型又包括通用表(Universal table)数据模型、透视表(Pivot table)数据模型、块表(Chunk table)数据模型等。与共享数据模型相比,私有数据模型具有更强的查询性能、更高的隐私性、较好的可自定义程度以及很强的故障恢复能力。但是,私有数据模型对数据库服务器的资源要求很高,对SaaS应用服务商的硬件成本构成了很大的压力。而在共享数据模型中,不同的模型在查询性能、隐私性、可自定义以及故障恢复等方面的特性也各有优势。另一方面,在服务过程中,SaaS租户在成本、性能、安全隔离等方面的需求也会产生变化。因此,在不中断服务的前提下,为租户提供在不同数据模型之间切换的能力是一种更加合理的做法,这能够显著地增强SaaS服务提供商的竞争能力。

技术实现思路

[0005]有鉴于此,本专利技术提出一种支持数据模型切换的多租户数据库系统,以满足不同租户的细粒度存储需求。
[0006]本专利技术通过以下技术手段解决上述问题:
[0007]一种支持数据模型切换的多租户数据库系统,包括:
[0008]数据库存储层,设置了多个包含不同的数据模型的数据库实例存储空间,以及租户元数据数据库实例;系统根据租户存储需求以及系统决策因素,为租户选择适当的数据存储模型,并根据租户的数据集实例将该租户元数据存储到租户元数据数据库实例中;
[0009]数据库驱动层,为租户应用的数据查询提供查询重写功能;对于非共享表数据模型,由于其物理存储表结构与租户逻辑表结构一致,因此查询无需经过重写即可执行;而对于共享表数据模型,其面向租户查询则需要重写,并且查询的结果需要经过构造才返回给多租户应用;
[0010]数据库转换层,包括数据模型转换模块和数据库管理监控模块;
[0011]所述数据库管理监控模块包括管理器和监控器;管理器具有租户需求管理和数据库实例空间管理功能;监控器具有监控数据库实例功能和监控租户数据功能;
[0012]所述数据模型转换模块采用数据热迁移,通过为租户数据集中每一个元组增加迁移标记,根据迁移标记的状态对租户的数据进行从源数据模型到目标数据模型的映射,映射后的数据进行顺序迁移,而对于迁移过程中租户发起的查询请求,则根据查询标记状态,对查询涉及的数据进行主动请求迁移,最后使得租户源数据与目标数据达到数据逻辑无异;
[0013]管理器的租户需求管理功能为上层应用提供租户数据存储需求设置接口,当租户改变其需求时,管理器会将更新的租户需求存储在元数据数据库中,并向数据模型转换模块发出请求;数据模型转换模块接收到请求后,会通过监视器的数据库实例监控功能和租户数据监控功能提供的接口获取数据模型转换策略所需的信息;
[0014]若数据模型转换模块需要对数据库实例进行调整,会调用管理器数据库实例空间管理功能的提供的接口,由管理器完成数据库实例的调整。
[0015]进一步地,所述数据库存储层包含私有表数据模型数据库实例空间、通用表数据模型数据库实例空间、多级块表数据模型数据库实例空间、透视图数据模型数据库实例空间以及租户元数据数据库实例。
[0016]进一步地,所述数据库驱动层中查询重写的过程如下:SaaS应用向租户对应的逻辑数据库发出基于租户逻辑数据库表的查询语句,多租户数据库系统的查询重写器根据租户ID,查找对应的租户元数据数据库,根据查询得到的数据库和列名的映射信息,将查询语句进行重写,并向相应的数据库实例发起查询请求,得到查询结果后进一步判断是否进行格式转换,最终将查询结果返回给SaaS应用。
[0017]进一步地,所述数据模型转换模块实现的数据热迁移包含三个阶段,分别为:
[0018]一、迁移准备阶段;
[0019]该阶段完成存储标志位的初始化以及用于存储迁移后数据的数据表的建立;对存储在源实例空间S
src
上、源虚拟机VM
src
中、源数据库DB
src
中、源租户数据集DS
src
(model
src
)中所有的数据元组的mFlag置为false;若目标实例空间S
dst
上、目标虚拟机VM
dst
中、目标数据库DB
dst
中的用于存储租户数据DS
dst
(model
dst
)的数据表未建立,则建立其数据表;在准备阶段中,数据库依然处理数据查询请求;
[0020]二、双线迁移阶段;
[0021]这一阶段完成DS
src
(model
src
)到DS
dst
(model
dst
)的迁移,分为顺序迁移过程和查询请求迁移过程;
[0022]顺序迁移过程:按照顺序将DS
src
(model
src
)中用于存储Row
src
(private)i的每一个逻辑元组提取出来,然后判断中所有的元组的迁移标志位mFlag;
[0023]查询请求迁移过程:若在数据顺序迁移过程中,租户发出了查询请求,需要处本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持数据模型切换的多租户数据库系统,其特征在于,包括:数据库存储层,设置了多个包含不同的数据模型的数据库实例存储空间,以及租户元数据数据库实例;系统根据租户存储需求以及系统决策因素,为租户选择适当的数据存储模型,并根据租户的数据集实例将该租户元数据存储到租户元数据数据库实例中;数据库驱动层,为租户应用的数据查询提供查询重写功能;对于非共享表数据模型,由于其物理存储表结构与租户逻辑表结构一致,因此查询无需经过重写即可执行;而对于共享表数据模型,其面向租户查询则需要重写,并且查询的结果需要经过构造才返回给多租户应用;数据库转换层,包括数据模型转换模块和数据库管理监控模块;所述数据库管理监控模块包括管理器和监控器;管理器具有租户需求管理和数据库实例空间管理功能;监控器具有监控数据库实例功能和监控租户数据功能;所述数据模型转换模块采用数据热迁移,通过为租户数据集中每一个元组增加迁移标记,根据迁移标记的状态对租户的数据进行从源数据模型到目标数据模型的映射,映射后的数据进行顺序迁移,而对于迁移过程中租户发起的查询请求,则根据查询标记状态,对查询涉及的数据进行主动请求迁移,最后使得租户源数据与目标数据达到数据逻辑无异;管理器的租户需求管理功能为上层应用提供租户数据存储需求设置接口,当租户改变其需求时,管理器会将更新的租户需求存储在元数据数据库中,并向数据模型转换模块发出请求;数据模型转换模块接收到请求后,会通过监视器的数据库实例监控功能和租户数据监控功能提供的接口获取数据模型转换策略所需的信息;若数据模型转换模块需要对数据库实例进行调整,会调用管理器数据库实例空间管理功能的提供的接口,由管理器完成数据库实例的调整。2.根据权利要求1所述的支持数据模型切换的多租户数据库系统,其特征在于,所述数据库存储层包含私有表数据模型数据库实例空间、通用表数据模型数据库实例空间、多级块表数据模型数据库实例空间、透视图数据模型数据库实例空间以及租户元数据数据库实例。3.根据权利要求1所述的支持数据模型切换的多租户数据库系统,其特征在于,所述数据库驱动层中查询重写的过程如下:SaaS应用向租户对应的逻辑数据库发出基于租户逻辑数据库表的查询语句,多租户数据库系统的查询重写器根据租户ID,查找对应的租户元数据数据库,根据查询得到的数据库和列名的映射信息,将查询语句进行重写,并向相应的数据库实例发起查询请求,得到查询结果后进一步判断是否进行格式转换,最终将查询结果返回给SaaS应用。4.根据权利要求1所述的支持数据模型切换的多租户数据库系统,其特征在于,所述数据模型转换模块实现的数据热迁移包含三个阶段,分别为:一、迁移准备阶段;该阶段完成存储标志位的初始化以及用于存储迁移后数据的数据表的建立;对存储在源实例空间S
src
上、源虚拟机VM
src
中、源数据库DB
src
中、源租户数据集DS
src
(model
src
)中所有的数据元组的mFlag置为false;若目标实例空间S
dst
上、目标虚拟机VM
dst
中、目标数据库DB
dst
中的用于存储租户数据DS
dst
(model
dst
)的数据表未建立,则建立其数据表;在准备阶段中,数据库依然处理数据查询请求;
二、双线迁移阶段;这一阶段完成DS
src
(model
src
)到DS
dst
(model
dst
)的迁移,分为顺序迁移过程和查询请求迁移过程;顺序迁移...

【专利技术属性】
技术研发人员:陈昕郑伟平闫雪梅
申请(专利权)人:砺剑防务技术新疆有限公司
类型:发明
国别省市:

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

1