一种基于元数据表的多租户数据处理方法及装置制造方法及图纸

技术编号:30899524 阅读:20 留言:0更新日期:2021-11-22 23:43
本发明专利技术公开了一种基于元数据表的多租户数据处理方法及装置,所述方法在接收字段新增请求后,确定新增字段在预设共享物理表中的映射字段,然后将新增字段的新增字段名称以及对应映射字段存储在元数据表中,将新增字段的新增字段值,根据映射字段存在预设共享物理表中。能过实施本发明专利技术当不同租户新增不同属性的字段时,无需在共享物理表新增对应的字段列,共享物理表保持原有的映射字段不变,只需将租户新增的字段与共享物理表中的映射字段,建立映射关系后,即可将新增字段值存储值共享物理表中,避免了共享物理表的数据稀疏,以及存储空间的浪费。空间的浪费。空间的浪费。

【技术实现步骤摘要】
一种基于元数据表的多租户数据处理方法及装置


[0001]本专利技术涉及计算机
,尤其涉及一种基于元数据表的多租户数据处理方法及装置。

技术介绍

[0002]开发特定领域的应用软件中,经常需要针对不同租户的数据进行存储,在数据存储时,需要区分不同的租户,且不同的租户都有自己的个性化属性的存储需求。
[0003]现有技术中,多租户技术在数据存储方面有一个租户共享物理表的方案,在该方案中所有租户都使用一张共享物理表中,然后通过在表中增加一个字段(通常就是租户id)来区分不同租户,但是由于不同租户之间的业务需求不一,当租户需要添加自定义字段时,需要在共享物理表中添加列,对于某租户而言,其他租户添加的列对该租户为无用列,但还是需要在共享物理表中存在,但当租户数量较大时,需要在共享物理表中增加大量列,这就导致共享物理表中存在大量的空值,数据稀疏、十分浪费空间。

技术实现思路

[0004]本专利技术实施例提供一种元数据表的多租户数据处理方法及装置,能解决在现有技术中在进行各租户的个性化字段扩展时,导致数据稀疏,浪费存储空间的问题。
[0005]本专利技术一实施例提供了一种基于元数据表的多租户数据处理方法,包括:
[0006]接收字段新增请求;其中,所述字段新增请求包括:租户ID、新增字段名称、新增字段值以及新增字段所归属的租户表的租户表名;其中,所述租户表用于存储各新增字段的新增字段名称;
[0007]判断在接收所述字段新增请求前,是否已接收过租户ID相同且租户表名相同的已接收字段新增请求;若否,则将预设共享物理表中的初始映射字段作为所述字段新增请求所对应的映射字段;若是,则将前一所述已接收字段新增请求所对应的映射字段的下一映射字段作为所述字段新增请求所对应的映射字段;其中,所述预设共享物理表用于存储各个租户的新增字段的新增字段值,所述预设共享物理表包括若干映射字段;
[0008]将所述租户ID、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中;
[0009]根据所述字段新增请求所对应的映射字段的字段名称,将所述新增字段值存储至所述预设共享物理表中。
[0010]进一步的,所述元数据表包括:第一元数据表以及第二元数据表;
[0011]所述将所述租户ID、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中,具体包括:
[0012]将所述租户ID、所述租户表名以及所述预设共享物理表的表名作为一数据组存储至所述第一元数据表,并生成所述数据组对应的主键ID;
[0013]将所述租户ID、所述主键ID、所述字段新增请求所对应的映射字段的字段名称以及所述新增字段名称存储至所述第二元数据表。
[0014]进一步的,在将所述租户ID、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中之前,还包括:
[0015]根据预设的权限控制信息对当前租户的租户ID进行权限校验,判断当前租户是否具备所述新增字段的新增权限;
[0016]若是,则根据预设的格式校验信息对所述新增字段名称进行格式校验,在格式校验通过时,所述权限控制信息以及格式校验信息存储至所述第二元数据表中并执行后续步骤;在格式校验不通过时,反馈新增失败信息并停止执行后续步骤;
[0017]若否,则反馈新增失败信息并停止执行后续步骤;
[0018]其中,所述权限控制信息包括:可新增所述新增字段的租户ID、可删除所述新增字段的租户ID、可修改所述新增字段的租户ID以及可查询所述新增字段的租户ID;所述格式校验信息包括:所述新增字段所需满足的数据类型信息、数据长度限制信息以及正则表达式信息。
[0019]进一步的,还包括:接收字段删除请求;其中,所述字段删除请求包括:待删除字段所对应的第二租户ID、待删除字段的字段名称、以及待删除字段所归属的第二租户表的第二租户表名;
[0020]根据第二租户ID以及第二租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第二主键ID;
[0021]将所述第二主键ID、第二租户ID以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段;
[0022]根据所述待删除字段所对应的映射字段,确定所述待删除字段的字段值在所述预设共享物理表中的存储位置,继而将所确定的存储位置处的字段值删除。
[0023]进一步的,在将所述第二主键ID、第二租户ID以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段之前,还包括:
[0024]将所述第二主键ID、第二租户ID以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的权限控制信息;
[0025]根据所述待删除字段所对应的权限控制信息,提取可删除所述待删除字段的租户ID;
[0026]根据当前租户的租户ID以及可删除所述待删除字段的租户ID,判定当前租户是否具备删除所述待删除字段的权限;
[0027]若是,则执行后续步骤;若否,则反馈删除失败信息并停止执行后续步骤。
[0028]进一步的,还包括:接收字段修改请求;其中,所述字段修改请求包括:待修改字段所对应的第三租户ID、待修改字段的字段名称、修改后的字段值、以及待修改字段所归属的第三租户表的第三租户表名;
[0029]根据第三租户ID以及第三租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第三主键ID;
[0030]将所述第三主键ID、第三租户ID以及待修改字段的字段名称与所述第二元数据表
中所存储的数据进行匹配,提取待修改字段所对应的映射字段;
[0031]根据所述待修改字段所对应的映射字段,确定所述待修改字段的原始字段值在所述预设共享物理表中的存储位置,根据所确定的存储位置删除所述待修改字段的原始字段值并将修改后的字段值存储至所述预设共享物理表中。
[0032]进一步的,在将所述第三主键ID、第三租户ID以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的映射字段之前,还包括:
[0033]将所述第三主键ID、第三租户ID以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的权限控制信息;
[0034]根据所述待修改字段所对应的权限控制信息,提取可修改所述待修改字段的租户ID;
[0035]根据当前租户的租户ID以及可修改所述待修改字段的租户ID,判定当前租户是否具备修改所述待修改字段的权限;
[0036]若是,则执行后续步骤;若否,则反馈修改失败信息并停止执行后续步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于元数据表的多租户数据处理方法,其特征在于,包括:接收字段新增请求;其中,所述字段新增请求包括:租户ID、新增字段名称、新增字段值以及新增字段所归属的租户表的租户表名;其中,所述租户表用于存储各新增字段的新增字段名称;判断在接收所述字段新增请求前,是否已接收过租户ID相同且租户表名相同的已接收字段新增请求;若否,则将预设共享物理表中的初始映射字段作为所述字段新增请求所对应的映射字段;若是,则将前一所述已接收字段新增请求所对应的映射字段的下一映射字段,作为所述字段新增请求所对应的映射字段;其中,所述预设共享物理表用于存储各个租户的新增字段的新增字段值,所述预设共享物理表包括若干映射字段;将所述租户ID、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中;根据所述字段新增请求所对应的映射字段的字段名称,将所述新增字段值存储至所述预设共享物理表中。2.如权利要求1所述的基于元数据表的多租户数据处理方法,其特征在于,所述元数据表包括:第一元数据表以及第二元数据表;所述将所述租户ID、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中,具体包括:将所述租户ID、所述租户表名以及所述预设共享物理表的表名作为一数据组存储至所述第一元数据表,并生成所述数据组对应的主键ID;将所述租户ID、所述主键ID、所述字段新增请求所对应的映射字段的字段名称以及所述新增字段名称存储至所述第二元数据表。3.如权利要求2所述的基于元数据表的多租户数据处理方法,其特征在于,在将所述租户ID、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中之前,还包括:根据预设的权限控制信息对当前租户的租户ID进行权限校验,判断当前租户是否具备所述新增字段的新增权限;若是,则根据预设的格式校验信息对所述新增字段名称进行格式校验,在格式校验通过时,将所述权限控制信息以及格式校验信息存储至所述第二元数据表中并执行后续步骤;在格式校验不通过时,反馈新增失败信息并停止执行后续步骤;若否,则反馈新增失败信息并停止执行后续步骤;其中,所述权限控制信息包括:可新增所述新增字段的租户ID、可删除所述新增字段的租户ID、可修改所述新增字段的租户ID以及可查询所述新增字段的租户ID;所述格式校验信息包括:所述新增字段所需满足的数据类型信息、数据长度限制信息以及正则表达式信息。4.如权利要求3所述的基于元数据表的多租户数据处理方法,其特征在于,还包括:接收字段删除请求;其中,所述字段删除请求包括:待删除字段所对应的第二租户ID、待删除字段的字段名称、以及待删除字段所归属的第二租户表的第二租户表名;根据第二租户ID以及第二租户表名在所述第一元数据表中查找对应的数据组,并根据
所查找到的数据组确定对应的第二主键ID;将所述第二主键ID、第二租户ID以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段;根据所述待删除字段所对应的映射字段,确定所述待删除字段的字段值在所述预设共享物理表中的存储位置,继而将所确定的存储位置处的字段值删除。5.如权利要求4所述的基于元数据表的多租户数据处理方法,其特征在于,在将所述第二主键ID、第二租户ID以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段之前,还包括:将所述第二主键ID、第二租户ID以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的权限控制信息;根据所述待删除字段所对应的权限控制信息,提取可删除所述待删除字段的租户ID;根据当前租户的租户ID以及可删除所述待删除字段的租户ID,判定当前租户是否具备删除所述待删除字段的权限;若是,则执行后续步骤;若否,则反馈删除失败信息并停止执行后续步骤。6.如权利要求3所述的基于元数据表的多租户数据处理方法,其特征在于,还包括:接收...

【专利技术属性】
技术研发人员:林少章黄伟李斌
申请(专利权)人:广州有信科技有限公司
类型:发明
国别省市:

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

1