本发明涉及计算机,特别涉及一种数据处理方法及装置、存储介质及电子设备。
背景技术:
1、系统应用在运行过程中,随着业务的发展,业务数据量会随之大幅度增长,数据体量可能会达到千万级,甚至亿万级。如果系统采用单表存储,千万级的数据存储往往会影响数据的查询性能,继而影响系统服务的可用性和用户体验,此种情况下,系统一般会采用分库分表的方式进行数据拆分,特别是对数据进行水平分表。
2、目前的对数据进行水平分表时,需要特定名称或类型的分表参数,并且需要更改系统的接口规范,否则无法支持已有系统的分表改造,导致数据进行分表的效率低下。
技术实现思路
1、有鉴于此,本发明实施例提供一种数据处理方法及装置、存储介质及电子设备,应用本发明无需对系统进行分表改造即可进行分表,提高分表效率。
2、为实现上述目的,本发明实施例提供如下技术方案:
3、一种数据处理方法,包括:
4、通过预设的第一拦截器拦截当前调用的数据库访问层方法;
5、对所述数据库访问层方法的参数注解信息进行解析,获取所述数据库访问层方法的元数据,所述元数据包含方法实体映射表、方法参数名解析器映射表、分表信息映射表和附加信息映射表;
6、基于所述数据库访问层方法的元数据,从所述数据库访问层方法的调用信息中获取分表参数、分表属性值和分表附加信息值;
7、基于所述数据库访问层方法的分表策略名称获取分表策略,在所述分表策略中,基于所述分表属性值、所述分表附加信息值和数据库访问层方法信息,对所述分表属性值进行索引计算,得到所述分表属性值的分表索引结果;
8、基于所述分表索引结果将所述分表参数进行重构,得到各个重构分表参数以及每个所述重构分表参数的分表索引,并将每个所述重构分表参数的分表索引保存至预设的分表上下文;
9、通过预设的第二拦截器基于所述分表上下文中的各个分表索引,将每个所述重构分表参数所对应的sql语句的逻辑表名替换为实际表名,以便每个所述重构分表参数基于所述sql语句的实际表名进行访库,得到每个所述重构分表参数的访库结果;
10、对各个重构分表参数的访库结果进行聚合,得到所述数据库访问层方法最终的调用结果。
11、一种数据处理装置,包括:
12、拦截单元,用于通过预设的第一拦截器拦截当前调用的数据库访问层方法;
13、解析单元,用于对所述数据库访问层方法的参数注解信息进行解析,获取所述数据库访问层方法的元数据,所述元数据包含方法实体映射表、方法参数名解析器映射表、分表信息映射表和附加信息映射表;
14、获取单元,用于基于所述数据库访问层方法的元数据,从所述数据库访问层方法的调用信息中获取分表参数、分表属性值和分表附加信息值;
15、计算单元,用于基于所述数据库访问层方法的分表策略名称获取分表策略,在所述分表策略中,基于所述分表属性值、所述分表附加信息值和数据库访问层方法信息,对所述分表属性值进行索引计算,得到所述分表属性值的分表索引结果;
16、重构单元,用于基于所述分表索引结果将所述分表参数进行重构,得到各个重构分表参数以及每个所述重构分表参数的分表索引,并将每个所述重构分表参数的分表索引保存至预设的分表上下文;
17、替换单元,用于通过预设的第二拦截器基于所述分表上下文中的各个分表索引,将每个所述重构分表参数所对应的sql语句的逻辑表名替换为实际表名,以便每个所述重构分表参数基于所述sql语句的实际表名进行访库,得到每个所述重构分表参数的访库结果;
18、聚合单元,用于对各个重构分表参数的访库结果进行聚合,得到所述数据库访问层方法最终的调用结果。
19、一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上所述的数据处理方法。
20、一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上所述的数据处理方法。
21、与现有技术相比,本发明具有以下优点:
22、本发明提供的一种数据处理方法及装置、存储介质及电子设备中,通过第一拦截器拦截当前调用的数据库访问层方法,对数据库访问层方法的参数注解信息进行解析,获取数据库访问层方法的元数据,基于数据库访问层方法的元数据,从数据库访问层方法的调用信息中获取分表参数、分表属性值和分表附加信息值;基于数据库访问层方法的分表策略名称获取分表策略,在分表策略中,基于分表属性值、分表附加信息值和数据库访问层方法信息,对分表属性值进行索引计算,得到分表属性值的分表索引结果;基于分表索引结果和分表属性值将分表参数进行重构,得到各个重构分表参数和每个重构分表参数的分表索引,并将每个重构分表参数的分表索引保存至分表上下文中,以便第二拦截器基于分表上下文,将每个重构分表参数的sql语句的逻辑表名替换为实际表名,以便每个重构分表参数基于sql语句的实际表名进行访库,得到每个重构分表参数的访库结果;将各个访库结果进行聚合,得到数据库访问层方法最终的调用结果。本发明无需对系统进行更改即可实现分表的改造,从而提高数据的分表效率。
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述对所述数据库访问层方法的参数注解信息进行解析,获取所述数据库访问层方法的元数据,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述数据库访问层方法的元数据,从所述数据库访问层方法的调用信息中获取分表参数、分表属性值和分表附加信息值,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述数据库访问层方法的分表策略名称获取分表策略,包括:
5.根据权利要求3所述的方法,其特征在于,所述基于所述分表索引结果将所述分表参数进行重构,得到各个重构分表参数以及每个所述重构分表参数的分表索引,包括:
6.一种数据处理装置,其特征在于,包括:
7.根据权利要求6所述的装置,其特征在于,所述解析单元,包括:
8.根据权利要求6所述的装置,其特征在于,所述获取单元,包括:
9.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1-5任意一项所述的数据处理方法。
10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1-5任意一项所述的数据处理方法。