System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及云计算,具体的涉及分布式,更具体地涉及一种批量数据的处理方法、装置、设备、存储介质和程序产品。
技术介绍
1、云原生分布式数据库,例如高斯数据库,采用分布式部署,一般数据访问需要通过协调节点分发访问数据节点,且访问时需带上表结构的分片字段,协调节点根据分片字段将请求路由到指定数据节点。但对于日终批量处理,需要遍历所有白天交易记录进行集中统一处理的情况,无法指定分片字段。对于小数据量的日终处理,启动一个作业遍历全量数据即可,但对于大批量数据来说,如果只启动一个批量节点,存在性能瓶颈,如果启动多个批量节点,存在数据重复处理情况。此外对于交易记录序号非连续、严重倾斜的数据库,如果简单平均分片存在处理时间不可控制的情况。
2、需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、鉴于上述问题,本公开提供了一种解决基于云原生分布式数据库部署的应用日终批量大数据并发问题的批量数据的处理方法、装置、设备、存储介质和程序产品。
2、根据本公开的第一个方面,提供了一种批量数据的处理方法,所述方法包括:
3、响应于批量数据的处理指令,获取待处理批量数据记录数和计算节点历史处理性能数据;
4、根据所述计算节点历史处理性能数据确定单节点在预设处理时间内的最大处理交易数;
5、根据所述最大处理交易数和待处理批量数据记录数对批量任务进行分割;
6、将分割后的任务信息保存到分布式缓存中;
7、启动计算节点向所述分布式缓存中领取所述任务信息;以及
8、根据所述任务信息执行批量数据任务。
9、根据本公开的实施例,所述根据所述最大处理交易数和待处理批量数据记录数对批量任务进行分割包括:
10、根据所述待处理批量数据记录数确定待处理批量数据交易序号上下限;以及
11、根据所述最大处理交易数、所述待处理批量数据交易序号上下限确定每一任务的交易序号区间。
12、根据本公开的实施例,所述根据所述计算节点历史处理性能数据确定单节点在预设处理时间内的最大处理交易数包括:
13、根据所述计算节点历史处理性能数据计算单节点单位时间内处理交易数;以及
14、根据所述单节点单位时间内处理交易数计算预设处理时间内的最大处理交易数。
15、根据本公开的实施例,所述启动计算节点向所述分布式缓存中领取所述任务信息包括:
16、响应于批量执行器控制台下发的任务触发指令,启动多个计算节点;以及
17、基于分布式任务锁依次向分布式缓存中领取所述任务信息。
18、根据本公开的实施例,所述基于分布式任务锁依次向分布式缓存中领取所述任务信息包括:
19、在获取任务信息前获取该任务信息对应的分布式任务锁;以及
20、将获取分布式任务锁的任务信息状态置为已认领。
21、根据本公开的实施例,所述根据所述任务信息执行批量数据任务包括:
22、根据所述任务信息中的交易序号区间在数据节点中确定目标业务数据;以及
23、对所述目标业务数据进行处理。
24、本公开的第二方面提供了一种批量数据的处理装置,所述装置包括:
25、获取模块,用于响应于批量数据的处理指令,获取待处理批量数据记录数和计算节点历史处理性能数据;
26、确定模块,用于根据所述计算节点历史处理性能数据确定单节点在预设处理时间内的最大处理交易数;
27、任务分割模块,用于根据所述最大处理交易数和待处理批量数据记录数对批量任务进行分割;
28、存储模块,用于将分割后的任务信息保存到分布式缓存中;
29、任务领取模块,用于启动计算节点向所述分布式缓存中领取所述任务信息;以及
30、任务执行模块,用于根据所述任务信息执行批量数据任务。
31、根据本公开的实施例,所述任务分割模块包括:第一确定子模块和第二确定子模块。
32、第一确定子模块,用于根据所述待处理批量数据记录数确定待处理批量数据交易序号上下限;以及
33、第二确定子模块,用于根据所述最大处理交易数、所述待处理批量数据交易序号上下限确定每一任务的交易序号区间。
34、根据本公开的实施例,所述确定模块包括第一计算子模块和第二计算子模块。
35、第一计算子模块,用于根据所述计算节点历史处理性能数据计算单节点单位时间内处理交易数;以及
36、第二计算子模块,用于根据所述单节点单位时间内处理交易数计算预设处理时间内的最大处理交易数。
37、根据本公开的实施例,所述任务领取模块包括计算节点启动子模块、任务领取子模块。
38、计算节点启动子模块,用于响应于批量执行器控制台下发的任务触发指令,启动多个计算节点;以及
39、任务领取子模块,用于基于分布式任务锁依次向分布式缓存中领取所述任务信息。
40、根据本公开的实施例,任务领取子模块包括获取单元和状态更新单元。
41、获取单元,用于在获取任务信息前获取该任务信息对应的分布式任务锁;以及
42、状态更新单元,用于将获取分布式任务锁的任务信息状态置为已认领。
43、根据本公开的实施例,所述任务执行模块包括:第三确定子模块和处理子模块。
44、第三确定子模块,用于根据所述任务信息中的交易序号区间在数据节点中确定目标业务数据;以及
45、处理子模块,用于对所述目标业务数据进行处理。
46、本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述批量数据的处理方法。
47、本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述批量数据的处理方法。
48、本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述批量数据的处理方法。
49、通过本公开的实施例提供的一种批量数据的处理方法,响应于批量数据的处理指令,根据计算节点历史处理性能数据确定单节点在预设处理时间内的最大处理交易数,根据所述最大处理交易数和待处理批量数据记录数对批量任务进行分割,通过将批量任务进行分割,使得每个任务的处理时间上限可控,从而整体处理时间可控,以提升云原生分布式数据库并发处理能力;将分割后的任务信息保存到分布式缓存中;启动计算节点向所述分布式缓存中领取所述任务信息;以及根据所述任务信息执行批量数据任务。通过批量执行器主动认领任务的方式,可有效的在各批量执行器之间均衡计算压力。相较于相关技术,本文档来自技高网...
【技术保护点】
1.一种批量数据的处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述最大处理交易数和待处理批量数据记录数对批量任务进行分割包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述计算节点历史处理性能数据确定单节点在预设处理时间内的最大处理交易数包括:
4.根据权利要求1所述的方法,其特征在于,所述启动计算节点向所述分布式缓存中领取所述任务信息包括:
5.根据权利要求4所述的方法,其特征在于,所述基于分布式任务锁依次向分布式缓存中领取所述任务信息包括:
6.根据权利要求5所述的方法,其特征在于,所述根据所述任务信息执行批量数据任务包括:
7.一种批量数据的处理装置,其特征在于,所述装置包括:
8.一种电子设备,包括:
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~6
...【技术特征摘要】
1.一种批量数据的处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述最大处理交易数和待处理批量数据记录数对批量任务进行分割包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述计算节点历史处理性能数据确定单节点在预设处理时间内的最大处理交易数包括:
4.根据权利要求1所述的方法,其特征在于,所述启动计算节点向所述分布式缓存中领取所述任务信息包括:
5.根据权利要求4所述的方法,其特征在于,所述基于分布式任务...
【专利技术属性】
技术研发人员:廖宸,李东丽,刘启明,邓华丰,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。