CN115062000A - 数据隔离方法、装置、计算机设备和存储介质 - Google Patents

数据隔离方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115062000A
CN115062000A CN202210939783.4A CN202210939783A CN115062000A CN 115062000 A CN115062000 A CN 115062000A CN 202210939783 A CN202210939783 A CN 202210939783A CN 115062000 A CN115062000 A CN 115062000A
Authority
CN
China
Prior art keywords
database
mode
target
tenant
data
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
Application number
CN202210939783.4A
Other languages
English (en)
Inventor
张勇
乐天
刘可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhuyun Technology Co ltd
Original Assignee
Shenzhen Zhuyun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhuyun Technology Co ltd filed Critical Shenzhen Zhuyun Technology Co ltd
Priority to CN202210939783.4A priority Critical patent/CN115062000A/zh
Publication of CN115062000A publication Critical patent/CN115062000A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据隔离方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:SaaS服务器通过获取租户账户的注册请求,根据注册请求确定与租户账户匹配的目标数据库类型,根据目标数据库类型,并确定与租户账户匹配的目标数据库模式,从而建立账户标识与模式标识之间的对应关系,根据对应关系执行租户账户的数据读写操作,以实现在平衡服务器成本和租户需求目的下的数据隔离。

Description

数据隔离方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据隔离技术领域,特别是涉及一种数据隔离方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,软件即服务(Software as a Service,简称SaaS)得到了广泛的应用。SaaS通过互联网提供软件服务,租户按需租用,通常一个软件可以同时服务多个租户,从而降低多个租户中每个租户的成本,进而可以降低服务交付、运维成本。
但是,在面对海量租户及定制租户的模式下,传统的多租户数据隔离和资源分配技术,对于租户数量过多而租户下用户数量较少(一般少于1000)的情况,会造成schema(数据库模式)的资源浪费。而当租户数量增长到一定程度时,例如单个远程数据服务(RemoteData Services,简称RDS)实例超过10万张表时,部署的云环境又会存在不支持的情况。
因此,目标亟需一种综合的数据资源管理方法来平衡服务器成本和租户需求。
发明内容
基于此,有必要针对上述技术问题,提供一种能够平衡服务器成本和租户需求的数据隔离方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据隔离方法。所述方法包括:
获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
在其中一个实施例中,所述注册请求中携带有所述租户账户的用户规模;所述根据所述注册请求确定与所述租户账户匹配的目标数据库类型,包括:当所述用户规模小于或等于第一规模阈值时,确定与所述租户账户匹配的目标数据库类型为逻辑隔离类型;当所述用户规模大于所述第一规模阈值,且小于或等于第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为数据隔离类型,所述第二规模阈值大于所述第一规模阈值;当所述用户规模大于所述第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为物理隔离类型。
在其中一个实施例中,所述根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,包括:当所述目标数据库类型为物理隔离类型时,在物理隔离数据库中创建对应的数据库模式脚本;将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在其中一个实施例中,所述根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,包括:当所述目标数据库类型为数据隔离类型时,获取数据隔离数据库的已有租户账户数量;确定所述租户账户数量最少的目标数据隔离数据库;在所述目标数据隔离数据库中创建对应的数据库模式脚本,将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在其中一个实施例中,所述根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,包括:当所述目标数据库类型为逻辑隔离类型时,获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量;根据所述各数据库模式及对应的排序和租户账户数量,确定候选数据库模式;当所述候选数据库模式对应的租户账户数量未达到数量阈值时,将所述候选数据库模式确定为与所述租户账户匹配的目标数据库模式。
在其中一个实施例中,所述方法还包括:当所述候选数据库模式对应的租户账户数量达到数量阈值时,为所述租户账户分配待分配数据库模式;当所述逻辑隔离数据库的各数据库模式中存在所述待分配数据库模式时,将所述待分配数据库模式确定为与所述租户账户匹配的目标数据库模式。
在其中一个实施例中,所述方法还包括:当所述逻辑隔离数据库的各数据库模式中不存在所述待分配数据库模式时,在所述逻辑隔离数据库中创建所述待分配数据库模式的模式脚本;将所述待分配数据库模式的模式脚本确定为与所述租户账户匹配的目标数据库模式。
在其中一个实施例中,在所述建立所述账户标识与所述模式标识之间的对应关系之后,所述方法还包括:根据所述对应关系更新数据库模式信息表以及更新缓存,所述数据库模式信息表以及缓存中分别记录了所述租户账户的账户标识与对应目标数据库模式的模式标识之间的对应关系。
在其中一个实施例中,所述方法还包括:获取所述租户账户的数据合并请求,根据所述数据合并请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;将所述目标数据同步至逻辑隔离数据库对应的数据库模式中。
在其中一个实施例中,所述方法还包括:获取所述租户账户的升级请求,所述升级请求中携带有升级类别;根据所述升级请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中。
在其中一个实施例中,所述升级类别包括数据隔离升级;所述根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中,包括:根据所述数据隔离升级确定对应的升级数据库模式为数据隔离数据库模式,将所述目标数据同步至所述数据隔离数据库模式中。
在其中一个实施例中,所述升级类别包括物理隔离升级;所述根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中,包括:根据所述物理隔离升级确定对应的升级数据库模式为物理隔离数据库模式;当所述租户账户存在对应的物理隔离数据库模式时,将所述目标数据同步至所述物理隔离数据库模式中。
在其中一个实施例中,所述方法还包括:显示所述目标数据同步至所述升级数据库模式中的同步进度信息。
在其中一个实施例中,所述方法还包括:当所述同步进度信息中的同步状态为升级成功时,获取删除数据的操作指令;根据所述删除数据的操作指令,从所述租户账户的账户标识对应的目标数据库模式中删除所述目标数据。
第二方面,本申请还提供了一种数据隔离装置。所述装置包括:
目标数据库类型确定模块,用于获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
数据库模式确定模块,用于根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
关系建立模块,用于建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上第一方面所述方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面所述方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面所述方法的步骤。
上述数据隔离方法、装置、计算机设备、存储介质和计算机程序产品,SaaS服务器通过获取租户账户的注册请求,根据注册请求确定与租户账户匹配的目标数据库类型,根据目标数据库类型,并确定与租户账户匹配的目标数据库模式,从而建立账户标识与模式标识之间的对应关系,根据对应关系执行租户账户的数据读写操作,以实现在平衡服务器成本和租户需求目的下的数据隔离。
附图说明
图1为一个实施例中数据隔离方法的流程示意图;
图2为一个实施例中确定匹配的目标数据库模式步骤的流程示意图;
图3为另一个实施例中确定匹配的目标数据库模式步骤的流程示意图;
图4为又一个实施例中确定匹配的目标数据库模式步骤的流程示意图;
图5为又一个实施例中数据隔离方法的流程示意图;
图6为一个实施例中数据合并步骤的流程示意图;
图7为一个实施例中数据合并的原理示意图;
图8为一个实施例中升级步骤的流程示意图;
图9为一个实施例中升级进度的显示示意图;
图10为一个实施例中数据隔离装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供了一种数据隔离方法,可以应用于SaaS服务器,如图1所示,具体可以包括以下步骤:
步骤102,获取租户账户的注册请求,根据注册请求确定与租户账户匹配的目标数据库类型。
其中,租户账户可以是打算租用SaaS服务器的用户账户,其具体可以是企业用户。注册请求可以是用户账户向SaaS服务器进行注册的请求。具体地,注册请求中可以包括当前注册的用户账户的相关信息,例如,注册请求中至少包括当前注册的用户账户的账户标识。其中,账户标识是用于区分不同用户账户的标记,例如,账户标识可以是用户账户的昵称、身份标识号(Identity document,即身份ID)、邮箱、电话号码等。
数据库类型可以是根据数据库的不同数据隔离方式而对数据库进行分类的类型。具体可以包括逻辑隔离数据库、数据隔离数据库以及物理隔离数据库。其中,逻辑隔离数据库是指共享数据库实例,并共享数据库模式(schema)以及共享数据表的方式;数据隔离数据库是指共享数据库实例,但独享数据库模式的方式,从而实现数据层面的隔离;物理隔离数据库是指独享数据库实例的方式,从而实现物理层面的隔离。
目标数据库类型则是与当前注册的租户账户匹配的数据库类型。具体地,在本实施例中,租户账户在进行注册时,可以将需要的数据库类型携带在注册请求中,因此,SaaS服务器在获取到租户账户的注册请求时,还可以根据租户账户的注册请求确定与租户账户匹配的目标数据库类型,即目标数据库类型可以是注册请求中携带的数据库类型。
在一种场景下,SaaS服务器在获取到租户账户的注册请求时,还可以根据租户账户的注册请求中用户账户的相关信息,而确定与租户账户匹配的目标数据库类型。
步骤104,根据目标数据库类型,确定与租户账户匹配的目标数据库模式。
其中,数据库模式(schema)是数据库的组织和结构,数据库模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)等。数据库模式可以用一个可视化的图来表示,它显示了数据库对象及其相互之间的关系。
由于数据库模式可以表示数据库对象及其相互之间的关系,因此,对于SaaS服务器的每一个租户账户都具有对应的数据库模式,而对于不同的目标数据库类型,则其对应的数据库模式类型也不同。具体地,数据库模式类型包括独立和共享两种。
在本实施例中,SaaS服务器还可以根据目标数据库类型而确定与租户账户匹配的目标数据库模式。其中,目标数据库模式具有对应的模式标识。具体地,模式标识可以是用于区分不同数据库模式的标志。
步骤106,建立账户标识与模式标识之间的对应关系,根据对应关系执行租户账户的数据读写操作。
在本实施例中,SaaS服务器还可以建立上述账户标识与模式标识之间的对应关系,从而持久化租户账户与schema之间的关系,并能够实现租户账户与schema之间的映射。
其中,数据读写操作是指租户账户对SaaS服务器中数据的读写操作。具体地,基于租户账户的数据读写操作,SaaS服务器基于建立的对应关系,可以根据当前操作的租户账户的账户标识查找对应的schema的模式标识,并在MyBatis切换拦截器类中实现租户账户的schema切换,从而将租户账户的读定操作收敛至对应的schema中。
上述数据隔离方法中,SaaS服务器通过获取租户账户的注册请求,根据注册请求确定与租户账户匹配的目标数据库类型,根据目标数据库类型,并确定与租户账户匹配的目标数据库模式,从而建立账户标识与模式标识之间的对应关系,根据对应关系执行租户账户的数据读写操作,以实现在平衡服务器成本和租户需求目的下的数据隔离。
在一个实施例中,注册请求中携带有租户账户的用户规模。则在步骤102中,获取租户账户的注册请求,根据注册请求确定与租户账户匹配的目标数据库类型,具体可以包括:当用户规模小于或等于第一规模阈值时,确定与租户账户匹配的目标数据库类型为逻辑隔离类型。
其中,用户规模用于表征对应租户账户的使用规模。第一规模阈值则可以是基于用户规模而划分数据库类型的设定规模值。例如,若租户账户为企业用户,则租用的SaaS服务器的资源将在企业员工中共享,因此,对应的企业员工数量则可以作为对应的用户规模。具体地,若第一规模阈值为1000人,则当租户账户的用户规模小于或等于1000人时,则SaaS服务器可以确定与该租户账户匹配的目标数据库类型为逻辑隔离类型。
在一个实施例中,在步骤102中,获取租户账户的注册请求,根据注册请求确定与租户账户匹配的目标数据库类型,具体还可以包括:当用户规模大于第一规模阈值,且小于或等于第二规模阈值时,确定与租户账户匹配的目标数据库类型为数据隔离类型。
其中,第二规模阈值大于第一规模阈值。同理,第二规模阈值与第一规模阈值相类似,均是基于用户规模而划分数据库类型的设定规模值。在本实施例中,当用户规模大于第一规模阈值,且小于或等于第二规模阈值时,则SaaS服务器可以确定与租户账户匹配的目标数据库类型为数据隔离类型。具体地,第二规模阈值可以是5万人。
在一个实施例中,在步骤102中,获取租户账户的注册请求,根据注册请求确定与租户账户匹配的目标数据库类型,具体还可以包括:当用户规模大于第二规模阈值时,确定与租户账户匹配的目标数据库类型为物理隔离类型。
具体地,举例来说,若第一规模阈值为1000人,第二规模阈值为5万人,则当用户规模小于或等于1000人时,则SaaS服务器可以确定与租户账户匹配的目标数据库类型为逻辑隔离类型。而当用户规模大于1000人,且小于或等于5万人时,则SaaS服务器可以确定与租户账户匹配的目标数据库类型为数据隔离类型。而当用户规模大于5万人时,则SaaS服务器可以确定与租户账户匹配的目标数据库类型为物理隔离类型。
上述实施例中,SaaS服务器可以根据租户账户的注册请求中携带的租户账户的用户规模,而确定与该租户账户匹配的目标数据库类型,从而实现为不同规模的租户账户灵活分配适合的数据存储方式。
在一个实施例中,如图2所示,在步骤104中,根据目标数据库类型,确定与租户账户匹配的目标数据库模式,具体可以包括:
步骤202,当目标数据库类型为物理隔离类型时,在物理隔离数据库中创建对应的数据库模式脚本。
由于物理隔离类型是独享数据库实例的方式。因此,在本实施例中,当SaaS服务器确定与租户账户匹配的目标数据库类型为物理隔离类型时,则表示对应的租户账户可以独享数据库实例,基于此,SaaS服务器可以在物理隔离数据库中创建对应的数据库模式脚本,即为租户房账户创建与目标数据库类型对应的schema模式。
步骤204,将数据库模式脚本确定为与租户账户匹配的目标数据库模式。
具体地,SaaS服务器将上述创建的数据库模式脚本确定为与租户账户匹配的目标数据库模式,从而实现为物理隔离类型的租户账户分配对应的schema模式,并实现租户账户与schema模式之间的映射。
在一个实施例中,如图3所示,在步骤104中,根据目标数据库类型,确定与租户账户匹配的目标数据库模式,具体还可以包括:
步骤302,当目标数据库类型为数据隔离类型时,获取数据隔离数据库的已有租户账户数量。
由于数据隔离类型是共享数据库实例,但独享数据库模式的方式。因此,在本实施例中,当SaaS服务器确定与租户账户匹配的目标数据库类型为数据隔离类型时,则表示对应的租户账户需要与其他租户账户一起共享数据库实例。基于此,SaaS服务器进一步获取数据隔离数据库的已有租户账户数量,进而根据数据隔离数据库的已有租户账户数量而为当前租户账户分配一个合适的数据隔离数据库。其中,数据隔离数据库的已有租户账户数量是指共享该数据隔离数据库的租户数量。
步骤304,确定租户账户数量最少的目标数据隔离数据库。
其中,目标数据隔离数据库是指从所有数据隔离数据库中确定的,分配给当前注册的租户账户的数据隔离数据库。在本实施例中,SaaS服务器根据所有数据隔离数据库的已有租户账户数量,将租户账户数量最少的数据隔离数据库作为目标数据隔离数据库分配给当前注册的租户账户,从而实现资源的有效分配。
步骤306,在目标数据隔离数据库中创建对应的数据库模式脚本,将数据库模式脚本确定为与租户账户匹配的目标数据库模式。
由于数据隔离类型是共享数据库实例,但独享数据库模式的方式,因此,当SaaS服务器将租户账户数量最少的数据隔离数据库作为目标数据隔离数据库分配给当前注册的租户账户之后,还可以在该目标数据隔离数据库中创建对应的数据库模式脚本,并将创建的数据库模式脚本确定为与租户账户匹配的目标数据库模式。即在目标数据隔离数据库中创建该租户账户独享数据库模式脚本,从而实现在数据层面对该租户账户的数据进行隔离。
在一个实施例中,如图4所示,在步骤104中,根据目标数据库类型,确定与租户账户匹配的目标数据库模式,具体还可以包括:
步骤402,当目标数据库类型为逻辑隔离类型时,获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量。
由于逻辑隔离数据库是指共享数据库实例,并共享schema以及共享数据表的方式。因此,在本实施例中,当SaaS服务器确定与租户账户匹配的目标数据库类型为逻辑隔离类型时,则表示对应的租户账户需要与其他租户账户一起共享数据库实例,并共享schema以及共享数据表。基于此,SaaS服务器可以进一步获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量,以便于为当前租户账户分配合适的共享数据库实例、共享schema以及共享数据表。
其中,各数据库模式是指逻辑隔离数据库对应的各共享schema,排序则是指各共享schema的排列顺序,租户账户数量则是指每个共享schema对应共享的租户的数量。
步骤404,根据各数据库模式及对应的排序,确定候选数据库模式。
其中,候选数据库模式可以是根据上述逻辑隔离数据库的各数据库模式,以及对应的排序和租户账户数量而初步筛选的可以分配给当前租户账户的候选schema。具体地,在本实施例中,SaaS服务器根据各schema的排序,逐个判断schema的存储容量是否已满,当某一schema的存储容量未满时,则将该schema确定为候选schema。
步骤406,当候选数据库模式对应的租户账户数量未达到数量阈值时,将候选数据库模式确定为与租户账户匹配的目标数据库模式。
其中,数量阈值是指预先设定的schema中租户账户数量的上限值。目标数据库模式则是指最终分配给当前租户账户的schema。
在本实施例中,SaaS服务器进一步判断上述确定的候选数据库模式对应的租户账户数量是否达到设定的数量阈值,当候选数据库模式对应的租户账户数量未达到数量阈值时,则将该候选数据库模式确定为与租户账户匹配的目标数据库模式,从而实现为租户账户分配有效的schema。
在一个实施例中,上述方法还可以包括:当候选数据库模式对应的租户账户数量达到数量阈值时,则为租户账户分配待分配数据库模式;当逻辑隔离数据库的各数据库模式中存在待分配数据库模式时,将待分配数据库模式确定为与租户账户匹配的目标数据库模式。
其中,待分配数据库模式是当SaaS服务器确定候选schema的租户账户数量达到数量阈值时,为租户账户重新分配的schema。在本实施例中,针对该重新分配的schema,SaaS服务器进一步判断逻辑隔离数据库的各数据库模式中是否存在该重新分配的schema,当逻辑隔离数据库的各数据库模式中存在该重新分配的schema时,则将该schema确定为与租户账户匹配的目标schema,即将该schema分配给当前的租户账户,从而实现schema的有效分配。
在一个实施例中,上述方法还可以包括:当逻辑隔离数据库的各数据库模式中不存在待分配数据库模式时,则在逻辑隔离数据库中创建待分配数据库模式的模式脚本;将待分配数据库模式的模式脚本确定为与租户账户匹配的目标数据库模式。
具体地,针对该重新分配的schema,SaaS服务器进一步判断逻辑隔离数据库的各数据库模式中是否存在该重新分配的schema,当逻辑隔离数据库的各数据库模式中不存在该重新分配的schema时,SaaS服务器还可以在逻辑隔离数据库中创建该schema的模式脚本,即在逻辑隔离数据库中新建schema的模式脚本,并将新建的schema的模式脚本确定为与租户账户匹配的目标schema,以实现schema的有效分配。
在一个实施例中,在步骤106中,建立账户标识与模式标识之间的对应关系之后,上述方法还可以包括:根据对应关系更新数据库模式信息表以及更新缓存。其中,数据库模式信息表以及缓存中分别记录了租户账户的账户标识与对应目标数据库模式的模式标识之间的对应关系。具体地,数据库模式信息表是指对应的schema信息表,该表用于管理schema的规格类型,以及实现租户账户与schema的映射。缓存则可以是redis缓存,通过将上述对应关系更新到redis缓存中,从而持久化租户账户与schema之间的关系,能够实现访问层的schema路由切换,而不需要动态修改后端SQL(Structured Query Language,即结构化查询语言),极大的方便了数据读写操作。
在一个实施例中,如图5所示,以下进一步说明上述数据隔离方法,具体可以包括如下步骤:
步骤502,创建租户账户。
具体地,通过获取租户账户的注册请求,而创建对应的租户账户,并对租户账户的基础数据进行初始化。
步骤504,根据租户账户的用户规模匹配对应的目标数据库类型。
例如,当用户规模小于或等于第一规模阈值时,确定与租户账户匹配的目标数据库类型为逻辑隔离类型。当用户规模大于第一规模阈值,且小于或等于第二规模阈值时,确定与租户账户匹配的目标数据库类型为数据隔离类型。而当用户规模大于第二规模阈值时,确定与租户账户匹配的目标数据库类型为物理隔离类型。
步骤506,确定目标数据库类型为逻辑隔离数据库。
步骤508,按数据源顺序及schema相关信息确定候选schema。
具体可以参考如图4所示的实施例。
步骤510,判断候选schema是否存在。
当存在时执行步骤512,当不存在时,执行步骤520。
步骤512,建立账户标识与schema之间的对应关系。
步骤514,基于该对应关系更新schema信息表以及缓存。
步骤516,确定目标数据库类型为数据隔离数据库。
步骤518,确定目标数据隔离数据库。
具体可以参考如图3所示的实施例。
步骤520,新建schema脚本。并返回步骤512。
步骤522,确定目标数据库类型为物理隔离数据库。
具体可以参考如图2所示的实施例,当确定目标数据库类型为物理隔离数据库时,则返回执行步骤520。
上述实施例中,SaaS服务器可以根据租户账户的用户规模,而确定与该租户账户匹配的目标数据库类型,从而实现为不同规模的租户账户灵活分配适合的数据存储方式,同时具备数据库水平扩展与伸缩能力。通过建立账户标识与schema之间的对应关系,并更新schema信息表以及缓存,不仅能够实现租户内部数据事务的一致性,且能够提高数据查询效率。
在一个实施例中,如图6所示,上述方法还可以包括如下步骤:
步骤602,获取租户账户的数据合并请求,根据数据合并请求从租户账户的账户标识对应的目标数据库模式中抽取目标数据。
具体地,在本实施例的场景下,当租户账户需要从独享schema合并为共享schema时,则可以向SaaS服务器发送数据合并请求。因此,数据合并请求可以是租户账户从独享schema合并为共享schema的请求。
在本实施例中,当SaaS服务器在获取到租户账户的数据合并请求时,还可以根据该数据合并请求从租户账户的账户标识对应的目标数据库模式中抽取目标数据。其中,目标数据为与租户账户对应的数据。
步骤604,将目标数据同步至逻辑隔离数据库对应的数据库模式中。
由于共享schema对应的数据库类型为逻辑隔离类型,因此,SaaS服务器根据数据合并请求从租户账户的账户标识对应的目标数据库模式中抽取目标数据之后,则还可以将该目标数据同步至逻辑隔离数据库对应的数据库模式即共享schema中。
具体如图7所示,对于租户账户A,若其对应的独享schema为schema-a,对于租户账户B,若其对应的独享schema为schema-b,对于租户账户C,若其对应的独享schema为schema-c,则schema-a、schema-b以及schema-c对应的数据库为租户账户的源数据库。SaaS服务器在接收到租户账户A、B或C的数据合并请求时,则可以从schema-a中进行数据抽取,抽取租户账户A的目标数据,并基于数据复制服务将目标数据进行数据同步,即将目标数据同步至逻辑隔离数据库对应的共享schema中,该逻辑隔离数据库则为对应的目标数据库。同时,还可以在相应的日志数据(即binlog)中记录数据同步的相关操作,从而实现租户账户从独享schema向共享schema的迁移。
在一个实施例中,如图8所示,上述方法还可以包括如下步骤:
步骤802,获取租户账户的升级请求。
其中,升级请求是指租户账户从共享schema升级为独享schema的请求,或者从数据隔离类型的独享schema升级为物理隔离类型的独享schema的请求。又由于独享schema包括数据隔离类型的独享schema和物理隔离类型的独享schema,因此,升级请求中还可以携带有对应的升级类别,即是升级到数据隔离类型的独享schema,还是升级到物理隔离类型的独享schema。通常,当租户账户当前的数据库类型为逻辑隔离类型时,可以选择是升级到数据隔离类型的独享schema还是升级到物理隔离类型的独享schema,而当租户账户当前的数据库类型为数据隔离类型时,则仅可以升级到物理隔离类型的独享schema。
步骤804,根据升级请求从租户账户的账户标识对应的目标数据库模式中抽取目标数据。
具体地,当SaaS服务器获取到租户账户的升级请求时,则可以根据升级请求从租户账户的账户标识对应的目标数据库模式中抽取目标数据,即从租户账户对应的源数据库中进行数据抽取。
步骤806,根据升级类别确定对应的升级数据库模式,将目标数据同步至升级数据库模式中。
由于当租户账户当前的数据库类型为逻辑隔离类型时,可以选择是升级到数据隔离类型的独享schema还是升级到物理隔离类型的独享schema,而当租户账户当前的数据库类型为数据隔离类型时,则仅可以升级到物理隔离类型的独享schema。
因此,在一种场景下,当当前租户账户的升级类别为数据隔离升级时,SaaS服务器还可以根据数据隔离升级确定对应的升级数据库模式为数据隔离数据库模式,即确定目标数据库为数据隔离类型的独享schema,并将上述抽取的目标数据同步至数据隔离数据库的独享schema中,以实现租户账户从逻辑隔离到数据隔离的升级。
在另一种场景下,当当前租户账户的升级类别为物理隔离升级时,SaaS服务器还可以根据物理隔离升级确定对应的升级数据库模式为物理隔离数据库模式,即可以确定目标数据库为物理隔离类型的独享schema。又由于物理隔离数据库是独享数据库实例,因此,在本实施例中,当SaaS服务器确定当前租户账户的升级类别为物理隔离升级时,还需要进一步确定该租户账户是否存在可用的物理隔离数据库模式,即确定该租户账户是否具备对物理隔离数据库模式的操作权限。只有在确定该租户账户存在对应的物理隔离数据库模式时,才可以将上述抽取的目标数据同步至物理隔离数据库的独享schema中,以实现租户账户升级到物理隔离的需求。
在一个实施例中,在上述升级过程中,SaaS服务器还可以显示目标数据同步至升级数据库模式中的同步进度信息,也即显示升级进度信息。其中,升级进度信息如图9所示,可以包括对应的升级类型和升级进度。具体地,升级进度可以包括具体项目的升级状态和对应项目的完成时间点。
在一个实施例中,当任一项目出现升级失败的情况时,则SaaS服务器还可以结束整个升级过程,并在升级失败的具体项目中显示对应的失败原因。
在一个实施例中,当出现升级失败时,SaaS服务器还可以提供“重新升级”的操作。当“重新升级”的操作被触发时,SaaS服务器还可以根据上一次的升级请求再次进行升级,并显示升级进度信息。
在一个实施例中,当同步进度信息中的最终状态为升级成功时,SaaS服务器还可以获取删除数据的操作指令,并根据删除数据的操作指令,从租户账户的账户标识对应的目标数据库模式中删除目标数据。其中,删除数据指令是指删除租户账户的源数据库中对应数据的指示或命令。具体地,当租户账户发起删除数据的操作指令时,SaaS服务器还可以显示对应的删除提示信息,其中,该删除提示信息诸如执行删除操作后对应的数据将不可恢复之类的提示,从而提醒租户账户谨慎操作,以避免操作失误。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据隔离方法的数据隔离装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据隔离装置实施例中的具体限定可以参见上文中对于数据隔离方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种数据隔离装置,包括:目标数据库类型确定模块1002、数据库模式确定模块1004和关系建立模块1006,其中:
目标数据库类型确定模块1002,用于获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
数据库模式确定模块1004,用于根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
关系建立模块1006,用于建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
在一个实施例中,所述注册请求中携带有所述租户账户的用户规模;所述目标数据库类型确定模块,具体用于:当所述用户规模小于或等于第一规模阈值时,确定与所述租户账户匹配的目标数据库类型为逻辑隔离类型;当所述用户规模大于所述第一规模阈值,且小于或等于第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为数据隔离类型,所述第二规模阈值大于所述第一规模阈值;当所述用户规模大于所述第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为物理隔离类型。
在一个实施例中,所述数据库模式确定模块具体用于:当所述目标数据库类型为物理隔离类型时,在物理隔离数据库中创建对应的数据库模式脚本;将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,所述数据库模式确定模块具体还用于:当所述目标数据库类型为数据隔离类型时,获取数据隔离数据库的已有租户账户数量;确定所述租户账户数量最少的目标数据隔离数据库;在所述目标数据隔离数据库中创建对应的数据库模式脚本,将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,所述数据库模式确定模块具体还用于:当所述目标数据库类型为逻辑隔离类型时,获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量;根据所述各数据库模式及对应的排序和租户账户数量,确定候选数据库模式;当所述候选数据库模式对应的租户账户数量未达到数量阈值时,将所述候选数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,所述数据库模式确定模块具体还用于:当所述候选数据库模式对应的租户账户数量达到数量阈值时,为所述租户账户分配待分配数据库模式;当所述逻辑隔离数据库的各数据库模式中存在所述待分配数据库模式时,将所述待分配数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,所述数据库模式确定模块具体还用于:当所述逻辑隔离数据库的各数据库模式中不存在所述待分配数据库模式时,在所述逻辑隔离数据库中创建所述待分配数据库模式的模式脚本;将所述待分配数据库模式的模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,所述装置还包括更新模块,用于根据所述对应关系更新数据库模式信息表以及更新缓存,所述数据库模式信息表以及缓存中分别记录了所述租户账户的账户标识与对应目标数据库模式的模式标识之间的对应关系。
在一个实施例中,所述装置还包括数据合并模块,用于获取所述租户账户的数据合并请求,根据所述数据合并请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;将所述目标数据同步至逻辑隔离数据库对应的数据库模式中。
在一个实施例中,所述装置还包括升级模块,用于获取所述租户账户的升级请求,所述升级请求中携带有升级类别;根据所述升级请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中。
在一个实施例中,所述升级类别包括数据隔离升级;所述升级模块还用于,根据所述数据隔离升级确定对应的升级数据库模式为数据隔离数据库模式,将所述目标数据同步至所述数据隔离数据库模式中。
在一个实施例中,所述升级类别包括物理隔离升级;所述升级模块还用于,根据所述物理隔离升级确定对应的升级数据库模式为物理隔离数据库模式;当所述租户账户存在对应的物理隔离数据库模式时,将所述目标数据同步至所述物理隔离数据库模式中。
在一个实施例中,所述装置还包括显示模块,用于显示所述目标数据同步至所述升级数据库模式中的同步进度信息。
在一个实施例中,所述装置还包括数据删除模块,用于当所述同步进度信息中的同步状态为升级成功时,获取删除数据的操作指令;根据所述删除数据的操作指令,从所述租户账户的账户标识对应的目标数据库模式中删除所述目标数据。
上述数据隔离装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是SaaS服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储租户账户的注册数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据隔离方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
在一个实施例中,所述注册请求中携带有所述租户账户的用户规模;处理器执行计算机程序时还实现以下步骤:当所述用户规模小于或等于第一规模阈值时,确定与所述租户账户匹配的目标数据库类型为逻辑隔离类型;当所述用户规模大于所述第一规模阈值,且小于或等于第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为数据隔离类型,所述第二规模阈值大于所述第一规模阈值;当所述用户规模大于所述第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为物理隔离类型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述目标数据库类型为物理隔离类型时,在物理隔离数据库中创建对应的数据库模式脚本;将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述目标数据库类型为数据隔离类型时,获取数据隔离数据库的已有租户账户数量;确定所述租户账户数量最少的目标数据隔离数据库;在所述目标数据隔离数据库中创建对应的数据库模式脚本,将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述目标数据库类型为逻辑隔离类型时,获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量;根据所述各数据库模式及对应的排序和租户账户数量,确定候选数据库模式;当所述候选数据库模式对应的租户账户数量未达到数量阈值时,将所述候选数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述候选数据库模式对应的租户账户数量达到数量阈值时,为所述租户账户分配待分配数据库模式;当所述逻辑隔离数据库的各数据库模式中存在所述待分配数据库模式时,将所述待分配数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述逻辑隔离数据库的各数据库模式中不存在所述待分配数据库模式时,在所述逻辑隔离数据库中创建所述待分配数据库模式的模式脚本;将所述待分配数据库模式的模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据所述对应关系更新数据库模式信息表以及更新缓存,所述数据库模式信息表以及缓存中分别记录了所述租户账户的账户标识与对应目标数据库模式的模式标识之间的对应关系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述租户账户的数据合并请求,根据所述数据合并请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;将所述目标数据同步至逻辑隔离数据库对应的数据库模式中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述租户账户的升级请求,所述升级请求中携带有升级类别;根据所述升级请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中。
在一个实施例中,所述升级类别包括数据隔离升级;处理器执行计算机程序时还实现以下步骤:根据所述数据隔离升级确定对应的升级数据库模式为数据隔离数据库模式,将所述目标数据同步至所述数据隔离数据库模式中。
在一个实施例中,所述升级类别包括物理隔离升级;处理器执行计算机程序时还实现以下步骤:根据所述物理隔离升级确定对应的升级数据库模式为物理隔离数据库模式;当所述租户账户存在对应的物理隔离数据库模式时,将所述目标数据同步至所述物理隔离数据库模式中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:显示所述目标数据同步至所述升级数据库模式中的同步进度信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述同步进度信息中的同步状态为升级成功时,获取删除数据的操作指令;根据所述删除数据的操作指令,从所述租户账户的账户标识对应的目标数据库模式中删除所述目标数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
在一个实施例中,所述注册请求中携带有所述租户账户的用户规模;计算机程序被处理器执行时还实现以下步骤:当所述用户规模小于或等于第一规模阈值时,确定与所述租户账户匹配的目标数据库类型为逻辑隔离类型;当所述用户规模大于所述第一规模阈值,且小于或等于第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为数据隔离类型,所述第二规模阈值大于所述第一规模阈值;当所述用户规模大于所述第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为物理隔离类型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述目标数据库类型为物理隔离类型时,在物理隔离数据库中创建对应的数据库模式脚本;将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述目标数据库类型为数据隔离类型时,获取数据隔离数据库的已有租户账户数量;确定所述租户账户数量最少的目标数据隔离数据库;在所述目标数据隔离数据库中创建对应的数据库模式脚本,将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述目标数据库类型为逻辑隔离类型时,获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量;根据所述各数据库模式及对应的排序和租户账户数量,确定候选数据库模式;当所述候选数据库模式对应的租户账户数量未达到数量阈值时,将所述候选数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述候选数据库模式对应的租户账户数量达到数量阈值时,为所述租户账户分配待分配数据库模式;当所述逻辑隔离数据库的各数据库模式中存在所述待分配数据库模式时,将所述待分配数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述逻辑隔离数据库的各数据库模式中不存在所述待分配数据库模式时,在所述逻辑隔离数据库中创建所述待分配数据库模式的模式脚本;将所述待分配数据库模式的模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述对应关系更新数据库模式信息表以及更新缓存,所述数据库模式信息表以及缓存中分别记录了所述租户账户的账户标识与对应目标数据库模式的模式标识之间的对应关系。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述租户账户的数据合并请求,根据所述数据合并请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;将所述目标数据同步至逻辑隔离数据库对应的数据库模式中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述租户账户的升级请求,所述升级请求中携带有升级类别;根据所述升级请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中。
在一个实施例中,所述升级类别包括数据隔离升级;计算机程序被处理器执行时还实现以下步骤:根据所述数据隔离升级确定对应的升级数据库模式为数据隔离数据库模式,将所述目标数据同步至所述数据隔离数据库模式中。
在一个实施例中,所述升级类别包括物理隔离升级;计算机程序被处理器执行时还实现以下步骤:根据所述物理隔离升级确定对应的升级数据库模式为物理隔离数据库模式;当所述租户账户存在对应的物理隔离数据库模式时,将所述目标数据同步至所述物理隔离数据库模式中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:显示所述目标数据同步至所述升级数据库模式中的同步进度信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述同步进度信息中的同步状态为升级成功时,获取删除数据的操作指令;根据所述删除数据的操作指令,从所述租户账户的账户标识对应的目标数据库模式中删除所述目标数据。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
在一个实施例中,所述注册请求中携带有所述租户账户的用户规模;计算机程序被处理器执行时还实现以下步骤:当所述用户规模小于或等于第一规模阈值时,确定与所述租户账户匹配的目标数据库类型为逻辑隔离类型;当所述用户规模大于所述第一规模阈值,且小于或等于第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为数据隔离类型,所述第二规模阈值大于所述第一规模阈值;当所述用户规模大于所述第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为物理隔离类型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述目标数据库类型为物理隔离类型时,在物理隔离数据库中创建对应的数据库模式脚本;将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述目标数据库类型为数据隔离类型时,获取数据隔离数据库的已有租户账户数量;确定所述租户账户数量最少的目标数据隔离数据库;在所述目标数据隔离数据库中创建对应的数据库模式脚本,将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述目标数据库类型为逻辑隔离类型时,获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量;根据所述各数据库模式及对应的排序和租户账户数量,确定候选数据库模式;当所述候选数据库模式对应的租户账户数量未达到数量阈值时,将所述候选数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述候选数据库模式对应的租户账户数量达到数量阈值时,为所述租户账户分配待分配数据库模式;当所述逻辑隔离数据库的各数据库模式中存在所述待分配数据库模式时,将所述待分配数据库模式确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述逻辑隔离数据库的各数据库模式中不存在所述待分配数据库模式时,在所述逻辑隔离数据库中创建所述待分配数据库模式的模式脚本;将所述待分配数据库模式的模式脚本确定为与所述租户账户匹配的目标数据库模式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述对应关系更新数据库模式信息表以及更新缓存,所述数据库模式信息表以及缓存中分别记录了所述租户账户的账户标识与对应目标数据库模式的模式标识之间的对应关系。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述租户账户的数据合并请求,根据所述数据合并请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;将所述目标数据同步至逻辑隔离数据库对应的数据库模式中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述租户账户的升级请求,所述升级请求中携带有升级类别;根据所述升级请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中。
在一个实施例中,所述升级类别包括数据隔离升级;计算机程序被处理器执行时还实现以下步骤:根据所述数据隔离升级确定对应的升级数据库模式为数据隔离数据库模式,将所述目标数据同步至所述数据隔离数据库模式中。
在一个实施例中,所述升级类别包括物理隔离升级;计算机程序被处理器执行时还实现以下步骤:根据所述物理隔离升级确定对应的升级数据库模式为物理隔离数据库模式;当所述租户账户存在对应的物理隔离数据库模式时,将所述目标数据同步至所述物理隔离数据库模式中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:显示所述目标数据同步至所述升级数据库模式中的同步进度信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述同步进度信息中的同步状态为升级成功时,获取删除数据的操作指令;根据所述删除数据的操作指令,从所述租户账户的账户标识对应的目标数据库模式中删除所述目标数据。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (18)

1.一种数据隔离方法,其特征在于,所述方法包括:
获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
2.根据权利要求1所述的方法,其特征在于,所述注册请求中携带有所述租户账户的用户规模;所述根据所述注册请求确定与所述租户账户匹配的目标数据库类型,包括:
当所述用户规模小于或等于第一规模阈值时,确定与所述租户账户匹配的目标数据库类型为逻辑隔离类型;
当所述用户规模大于所述第一规模阈值,且小于或等于第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为数据隔离类型,所述第二规模阈值大于所述第一规模阈值;
当所述用户规模大于所述第二规模阈值时,确定与所述租户账户匹配的目标数据库类型为物理隔离类型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,包括:
当所述目标数据库类型为物理隔离类型时,在物理隔离数据库中创建对应的数据库模式脚本;
将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,包括:
当所述目标数据库类型为数据隔离类型时,获取数据隔离数据库的已有租户账户数量;
确定所述租户账户数量最少的目标数据隔离数据库;
在所述目标数据隔离数据库中创建对应的数据库模式脚本,将所述数据库模式脚本确定为与所述租户账户匹配的目标数据库模式。
5.根据权利要求2所述的方法,其特征在于,所述根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,包括:
当所述目标数据库类型为逻辑隔离类型时,获取逻辑隔离数据库的各数据库模式及对应的排序和租户账户数量;
根据所述各数据库模式及对应的排序,确定候选数据库模式;
当所述候选数据库模式对应的租户账户数量未达到数量阈值时,将所述候选数据库模式确定为与所述租户账户匹配的目标数据库模式。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述候选数据库模式对应的租户账户数量达到数量阈值时,为所述租户账户分配待分配数据库模式;
当所述逻辑隔离数据库的各数据库模式中存在所述待分配数据库模式时,将所述待分配数据库模式确定为与所述租户账户匹配的目标数据库模式。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述逻辑隔离数据库的各数据库模式中不存在所述待分配数据库模式时,在所述逻辑隔离数据库中创建所述待分配数据库模式的模式脚本;
将所述待分配数据库模式的模式脚本确定为与所述租户账户匹配的目标数据库模式。
8.根据权利要求1至7任一项所述的方法,其特征在于,在所述建立所述账户标识与所述模式标识之间的对应关系之后,所述方法还包括:
根据所述对应关系更新数据库模式信息表以及更新缓存,所述数据库模式信息表以及缓存中分别记录了所述租户账户的账户标识与对应目标数据库模式的模式标识之间的对应关系。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
获取所述租户账户的数据合并请求,根据所述数据合并请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;
将所述目标数据同步至逻辑隔离数据库对应的数据库模式中。
10.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
获取所述租户账户的升级请求,所述升级请求中携带有升级类别;
根据所述升级请求从所述租户账户的账户标识对应的目标数据库模式中抽取目标数据;
根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中。
11.根据权利要求10所述的方法,其特征在于,所述升级类别包括数据隔离升级;所述根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中,包括:
根据所述数据隔离升级确定对应的升级数据库模式为数据隔离数据库模式,将所述目标数据同步至所述数据隔离数据库模式中。
12.根据权利要求10所述的方法,其特征在于,所述升级类别包括物理隔离升级;所述根据所述升级类别确定对应的升级数据库模式,将所述目标数据同步至所述升级数据库模式中,包括:
根据所述物理隔离升级确定对应的升级数据库模式为物理隔离数据库模式;
当所述租户账户存在对应的物理隔离数据库模式时,将所述目标数据同步至所述物理隔离数据库模式中。
13.根据权利要求10所述的方法,其特征在于,所述方法还包括:
显示所述目标数据同步至所述升级数据库模式中的同步进度信息。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
当所述同步进度信息中的同步状态为升级成功时,获取删除数据的操作指令;
根据所述删除数据的操作指令,从所述租户账户的账户标识对应的目标数据库模式中删除所述目标数据。
15.一种数据隔离装置,其特征在于,所述装置包括:
目标数据库类型确定模块,用于获取租户账户的注册请求,根据所述注册请求确定与所述租户账户匹配的目标数据库类型,所述注册请求中携带有所述租户账户的账户标识;
数据库模式确定模块,用于根据所述目标数据库类型,确定与所述租户账户匹配的目标数据库模式,所述目标数据库模式具有对应的模式标识;
关系建立模块,用于建立所述账户标识与所述模式标识之间的对应关系,根据所述对应关系执行所述租户账户的数据读写操作。
16.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14中任一项所述的方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
18.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
CN202210939783.4A 2022-08-05 2022-08-05 数据隔离方法、装置、计算机设备和存储介质 Pending CN115062000A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210939783.4A CN115062000A (zh) 2022-08-05 2022-08-05 数据隔离方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210939783.4A CN115062000A (zh) 2022-08-05 2022-08-05 数据隔离方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN115062000A true CN115062000A (zh) 2022-09-16

Family

ID=83207964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210939783.4A Pending CN115062000A (zh) 2022-08-05 2022-08-05 数据隔离方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115062000A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190272331A1 (en) * 2018-03-02 2019-09-05 Salesforce.Com, Inc. Technologies for providing service isolation, scalability, and proactive tenant migration in multi-tenant ecosystems
CN111582773A (zh) * 2020-06-22 2020-08-25 南京德睿能源研究院有限公司 一种基于多租户技术的微电网能量云模型控制方法及系统
CN113342827A (zh) * 2021-07-01 2021-09-03 广东电网有限责任公司 一种基于多租户技术的电网数据存储方法、存储介质及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190272331A1 (en) * 2018-03-02 2019-09-05 Salesforce.Com, Inc. Technologies for providing service isolation, scalability, and proactive tenant migration in multi-tenant ecosystems
CN111582773A (zh) * 2020-06-22 2020-08-25 南京德睿能源研究院有限公司 一种基于多租户技术的微电网能量云模型控制方法及系统
CN113342827A (zh) * 2021-07-01 2021-09-03 广东电网有限责任公司 一种基于多租户技术的电网数据存储方法、存储介质及系统

Similar Documents

Publication Publication Date Title
US8200705B2 (en) Method and apparatus for applying database partitioning in a multi-tenancy scenario
US9684702B2 (en) Database redistribution utilizing virtual partitions
CN110799960B (zh) 数据库租户迁移的系统和方法
US10585691B2 (en) Distribution system, computer, and arrangement method for virtual machine
CN108287669B (zh) 数据存储方法、装置及存储介质
US10585915B2 (en) Database sharding
US7788233B1 (en) Data store replication for entity based partition
CN105989194A (zh) 表数据比较的方法和系统
US20120296866A1 (en) System and method for implementing on demand cloud database
CN103198090A (zh) 用于优化虚拟桌面环境中的存储分配的方法和系统
CN111427841A (zh) 数据管理方法、装置、计算机设备和存储介质
US20120278285A1 (en) Storage Performance Optimization
CN109408523B (zh) 数据共享方法、装置、数据共享平台、电子设备
US10489356B1 (en) Truncate and append database operation
JP6975153B2 (ja) データ格納サービス処理方法及び装置
CN111917834A (zh) 一种数据同步方法、装置、存储介质及计算机设备
US9461884B2 (en) Information management device and computer-readable medium recorded therein information management program
CN110442585B (zh) 数据更新方法、数据更新装置、计算机设备及存储介质
CN104461736B (zh) 资源分配与搜索方法、资源分配与搜索系统和云服务器
CN113553458A (zh) 图数据库中的数据导出方法及装置
CN115062000A (zh) 数据隔离方法、装置、计算机设备和存储介质
CN113590643B (zh) 基于双轨数据库的数据同步方法、装置、设备和存储介质
US20080208797A1 (en) Automated record attribute value merging from multiple directory servers
KR101919816B1 (ko) 데이터베이스 샤딩 환경에서의 정합성 검사
US10331627B2 (en) Method and system for unified technological stack management for relational databases

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220916