一种基于分库分表的动态数据处理方法、系统和装置制造方法及图纸

技术编号:33534436 阅读:12 留言:0更新日期:2022-05-19 02:12
本发明专利技术涉及一种基于分库分表的动态数据处理方法、系统和装置。其方法部分主要包括:接收输入数据并将输入数据与对应的模型标识绑定,根据绑定的模型标识以及当前用户标识获取相关数据;根据所述相关数据对输入数据进行效验,保留效验后符合要求的输入数据,并计算分库分表数据;将效验后的输入数据以及所述分库分表数据赋值给实体对象,由该实体对象进行ORM,以生成SQL;执行生成的SQL,将返回的数据绑定到ORM对应的实体对象,根据实体对象对应的相关数据对返回的数据进行效验后返回给调用方。本发明专利技术可以在不生成代码、不编辑的情况下,动态的适配不同格式数据,无需开发即可适配,提高了开发和运维的效率。提高了开发和运维的效率。提高了开发和运维的效率。

【技术实现步骤摘要】
一种基于分库分表的动态数据处理方法、系统和装置


[0001]本专利技术涉及模型驱动
,特别是涉及一种基于分库分表的动态数据处理方法、系统和装置。

技术介绍

[0002]随着企业数字化和上云的趋势愈演愈烈,越来越多的个性化SaaS(Software

as

a

Service,软件即服务)应用,需要更快、更高效的开发。模型驱动(Model Driven)使用可视化建模技术来定义数据及其关系,使开发人员和业务用户能够快速处理各种结构化数据,交付应用程序,而不需要代码。
[0003]而目前,现有技术的模型驱动一般采用动态生成代码后再进行CI(Continuous Integration,持续集成)/CD(Continuous Deployment,持续部署),此类技术需要生成代码并完成打包、部署等活动后相关程序才能生效;第二种,采用动态编译方式生成动态类来绑定对象,此类技术可以实时生效,但需要动态编译,容易导致程序异常;第三种,采用大量预留不同类型的字段,比如预留200个字符串型字段,以解决不大于200个字符串型属性实体的ORM(Object Relational Mapping,对象关系映射)和数据处理,此类技术未根本解决字段的动态变化问题,超出范围之后还是要对代码进行变更;最后一种,通过纯SQL(Structured Query Language,结构化查询语言)进行数据处理,此类技术可以适配各种格式数据,但需要自行通过拼接SQL的方式适配各种不同数据库,获取数据后的对象绑定需要额外的代码来实现。
[0004]另一方面,个性化SaaS应用要求同一种业务在实现时,根据业务的变化而有差异,数据结构、存储的库都因业务而变。分库分表技术的成熟,使得同时操作不同库不同表的数据成为可能,如:垂直分库,按照业务将表进行分类,分布到不同的数据库上面;垂直分表,将一个表按照字段分成多表,每个表存储其中一部分字段;水平分库,把同一个表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上;水平分表,在同一个数据库内,把同一个表的数据按一定规则拆到多个表中。而一般分库分表主要针对一个实体类对应的一张表进行拆分,拆分的表之间具有一定的关联性,是对解决同一种业务的数据进行拆分。对于多种类业务的数据则无法处理好。
[0005]鉴于以上情况,如何克服现有技术所存在的缺陷,解决动态数据处理时需要开发、生成代码、适配性低,不能动态适配各种业务的不同数据格式等问题,是本
待解决的难题。

技术实现思路

[0006]针对现有技术的以上缺陷或改进需求,本专利技术提供一种基于分库分表的动态数据处理方法、系统和装置,无需开发,在不生成代码、不编译的情况下,将不同的业务数据绑定到一个实体对象,可以动态适配不同数据格式,对不同种类数据库的数据进行处理。
[0007]本专利技术实施例采用如下技术方案:
[0008]第一方面,本专利技术提供了一种基于分库分表的动态数据处理方法,包括:
[0009]接收输入数据并将输入数据与对应的模型标识绑定,根据绑定的模型标识以及当前用户标识获取相关数据;
[0010]根据所述相关数据对输入数据进行效验,保留效验后符合要求的输入数据,并计算分库分表数据;
[0011]将效验后的输入数据以及所述分库分表数据赋值给实体对象,由该实体对象进行ORM,以生成SQL;
[0012]执行生成的SQL,将返回的数据绑定到ORM对应的实体对象,根据实体对象对应的相关数据对返回的数据进行效验后返回给调用方。
[0013]进一步的,所述相关数据包括模型和模型字段数据以及租户和角色权限数据,所述根据绑定的模型标识以及当前用户标识获取相关数据具体包括:
[0014]根据绑定的模型标识获取模型和模型字段数据;
[0015]根据当前用户标识获取当前用户的租户和角色权限数据。
[0016]进一步的,所述根据相关数据对输入数据进行效验,保留符合要求的输入数据,并计算分库分表数据具体包括:
[0017]根据租户和角色权限数据过滤模型字段数据并用过滤后的模型字段数据对输入数据进行效验,保留效验后符合要求的输入数据;
[0018]根据模型和模型字段数据以及租户和角色权限数据来计算分库分表数据。
[0019]进一步的,所述实体对象绑定有对应的模型标识并含有分库分表属性以及可扩展的键

值属性。
[0020]进一步的,在所述由该实体对象进行ORM,以生成SQL的过程中,将分库分表属性和键

值属性展开扁平化,将键

值属性的key、value的层级和分库分表属性的层级保持一致,将所有的分库分表属性和键

值属性的key绑定到SQL的字段,将所有分库分表属性的值和键

值属性的value作为SQL的参数。
[0021]进一步的,所述根据实体对象对应的相关数据对返回的数据进行效验后返回给调用方具体包括:
[0022]根据实体对象绑定的模型标识得到对应的相关数据,根据相关数据中的模型和模型字段数据以及租户和角色权限数据来对返回的数据进行效验后返回给调用方。
[0023]进一步的,所述执行生成的SQL具体包括:
[0024]将生成的SQL根据提前配置的分库分表规则路由到不同种类的数据库中执行,并返回数据库中执行后的数据。
[0025]第三方面,本专利技术提供了一种基于分库分表的动态数据处理系统,用于实现如第一方面所述的基于分库分表的动态数据处理方法,所述系统包括数据建模、访问控制、解释执行服务以及分库分表中间件;
[0026]所述数据建模提供可视化建模能力,产生模型和模型字段数据,其中包含用于分库分表规则的相关配置数据;
[0027]所述访问控制提供可视化租户、角色权限配置能力,产生租户和角色权限数据,用于过滤模型和模型字段数据,租户和部分角色权限数据用于分库分表规则;
[0028]所述解释执行服务用于获得输入的不同格式数据,并将输入数据与对应的模型标
识绑定,根据绑定的模型标识以及当前用户标识获取相关数据;根据相关数据对输入数据进行效验,保留效验后符合要求的输入数据,并计算分库分表数据;将效验后的输入数据以及分库分表数据赋值给实体对象,由该实体对象进行ORM,以生成SQL;当分库分表中间件返回执行SQL后的数据时,将返回的数据绑定到ORM对应的实体对象,根据实体对象对应的相关数据对返回的数据进行效验后返回给调用方;
[0029]所述分库分表中间件用于获取生成的SQL,将SQL经过分库分表规则路由到不同种类的数据库中执行,并返回数据库中的数据。
[0030]进一步的,所述数据建模、访问控制、解释执行服务以及分库分表中间件通过分离成多个微服务或者合并成一个微服务来提供对应功能,其中当分库分表中间件独立部署时,由该分库分表中间件来连接不同种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分库分表的动态数据处理方法,其特征在于,包括:接收输入数据并将输入数据与对应的模型标识绑定,根据绑定的模型标识以及当前用户标识获取相关数据;根据所述相关数据对输入数据进行效验,保留效验后符合要求的输入数据,并计算分库分表数据;将效验后的输入数据以及所述分库分表数据赋值给实体对象,由该实体对象进行ORM,以生成SQL;执行生成的SQL,将返回的数据绑定到ORM对应的实体对象,根据实体对象对应的相关数据对返回的数据进行效验后返回给调用方。2.根据权利要求1所述的基于分库分表的动态数据处理方法,其特征在于,所述相关数据包括模型和模型字段数据以及租户和角色权限数据,所述根据绑定的模型标识以及当前用户标识获取相关数据具体包括:根据绑定的模型标识获取模型和模型字段数据;根据当前用户标识获取当前用户的租户和角色权限数据。3.根据权利要求2所述的基于分库分表的动态数据处理方法,其特征在于,所述根据相关数据对输入数据进行效验,保留符合要求的输入数据,并计算分库分表数据具体包括:根据租户和角色权限数据过滤模型字段数据并用过滤后的模型字段数据对输入数据进行效验,保留效验后符合要求的输入数据;根据模型和模型字段数据以及租户和角色权限数据来计算分库分表数据。4.根据权利要求2所述的基于分库分表的动态数据处理方法,其特征在于,所述实体对象绑定有对应的模型标识并含有分库分表属性以及可扩展的键

值属性。5.根据权利要求4所述的基于分库分表的动态数据处理方法,其特征在于,在所述由该实体对象进行ORM,以生成SQL的过程中,将分库分表属性和键

值属性展开扁平化,将键

值属性的key、value的层级和分库分表属性的层级保持一致,将所有的分库分表属性和键

值属性的key绑定到SQL的字段,将所有分库分表属性的值和键

值属性的value作为SQL的参数。6.根据权利要求4所述的基于分库分表的动态数据处理方法,其特征在于,所述根据实体对象对应的相关数据对返回的数据进行效验后返回给调用方具体包括:根据实体对象绑定的模型标识得到对应的相关数据,根据相关数据中的模型和模型字段数据以及租户和角色...

【专利技术属性】
技术研发人员:胡昌华
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:

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

1