一种提高spring-batch框架批处理执行效率的方法技术

技术编号:34954704 阅读:44 留言:0更新日期:2022-09-17 12:32
本发明专利技术涉及一种提高spring

【技术实现步骤摘要】
一种提高spring

batch框架批处理执行效率的方法


[0001]本专利技术涉及计算机
,尤其是涉及一种提高spring

batch框架批处理执行效率的方法。

技术介绍

[0002]在现代企业应用当中,面对复杂的业务以及海量的数据,除了通过庞杂的人机交互界面进行各种处理外,还有一种处理方式,即批处理,批处理不需要人工干预,只需要定期读入大批量数据,然后完成相应业务处理并进行归档。批处理方式作为现代企业应用当中不可或缺的数据处理方式,如何高效的执行批处理任务成为问题。
[0003]目前,针对于分布式系统使用多线程的情况下,现有批处理架构的处理流程是通过reader层读取全部所需处理数据,并生成分片线程文件,每一条数据单独获取逐条流转到processor层进行业务逻辑,然后通过writer产出结果,直到数据全部处理完成。然而这种方式的缺点主要是在大数据量的处理下批量执行时间较长,资源消耗较大,对于时效性较高的业务存在一定的风险。

技术实现思路

[0004]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种提高spring

batch框架批处理执行效率的方法,该方法可大大提高批量执行效率,降低大数据量、数据时效性高的业务风险,可在固定时间段承载更多的业务功能,提高产能产出。
[0005]本专利技术的目的可以通过以下技术方案来实现:
[0006]一种提高spring

batch框架批处理执行效率的方法,该方法的具体内容为:
[0007]基于文件线程数据库缓存接口,创建线程分片文件,随后加载分页条数并写入,将单独的大文件或大结果集按规则拆分成小文件或小结果集,供后续处理;
[0008]开发人员利用业务reader接口,根据业务需求编写查询/读取逻辑,通过文件线程数据库缓存接口加载待处理数据,并将待处理数据流转至processor层;
[0009]利用文件缓存实体接口配置单次缓存数,从线程分片文件中一次性读取对应的行数据,并将其转换为行数据实体,写入至redis缓存中;
[0010]利用文件读取接口配置读取文件的基本信息;
[0011]通过springframework的Reader接口创建spring

batch框架公共类。
[0012]进一步地,所述读取文件的基本信息包括但不限于分割符、字符编码、换行符和跳过行数。
[0013]进一步地,所述文件线程数据库缓存接口利用spring的TaskExecutor创建线程分片文件。
[0014]进一步地,所述文件线程数据库缓存接口通过batchKeyLoadPageSize参数加载分页条数并写入,将单独的大文件或大结果集按规则拆分成小文件。
[0015]进一步地,其中,所述大文件为大于预设大小的文件,所述小文件为小于或等于预
设大小的文件。所述大结果集为大于或等于预设结果集大小阈值的结果集,则该结果集为大结果集,所述小结果集为小于结果集大小阈值的结果集。
[0016]进一步地,所述文件缓存实体接口提供cacheLineNum参数实现配置单次缓存数。
[0017]进一步地,所述文件缓存实体接口从线程分片文件中一次性读取对应的行数据,通过transform方法转换为行数据实体,写入至redis缓存中。
[0018]本专利技术提供的提高spring

batch框架批处理执行效率的方法,相较于现有技术至少包括如下有益效果:
[0019]1)本专利技术对需要处理的批量数据进行预缓存处理,单次交互可处理多条数据,以减少数据扫描和数据库交互次数,从而减少分片和线程处理总数,从整体层面缩短系统批处理执行时间;降低了对资源的消耗,尽可能避免时效性对业务的影响,提高了产能产出。
[0020]2)本专利技术方法在数据库层面和文件层面均可使用,且能够覆盖大部分批处理场景,统一批处理模式和流程。
附图说明
[0021]图1为实施例中提高spring

batch框架批处理执行效率的方法的元素关系示意图;
[0022]图2为实施例中提高spring

batch框架批处理执行效率的方法的逻辑流程示意图。
具体实施方式
[0023]下面结合附图和具体实施例对本专利技术进行详细说明。显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。
[0024]实施例
[0025]本专利技术涉及一种提高spring

batch框架批处理执行效率的方法,spring

batch框架的基本概念及原理如下:spring

batch是开源的大数据量并行处理框架,通过spring

batch可以构建出轻量级的健壮的并行处理应用,支持事务、并发、流程、监控,提供统一的接口管理和任务管理。
[0026]使用spring batch做数据迁移时时遇到的一个关键问题:数据迁移量大时如何保证内存。当使用spring batch时,必须配置三个东西:reader,processor,和writer。reader用于从数据库中读数据,当数据量较小时,reader的逻辑不会对内存带来太多压力,但是当要去读的数据量非常大的时候,就不得不考虑内存等方面的问题,因为若数据量非常大,内存,执行时间等等都会受到影响。Writer用于从Spring Batch的应用将数据写入到特定目的地。processor是包含处理该数据读入到弹簧批次的处理代码的类。如果应用程序读取n条记录,则处理器中的代码将在每条记录上执行。
[0027]本专利技术提高spring

batch框架批处理执行效率方法所根据的元素关系如图1所示,其中:
[0028]JOB:是spring

batch框架的核心概念,它包含了批处理的所有操作,是一个批量任务;
[0029]STEP:每一个JOB由一个或多个STEP组成,是批量任务中的任务步骤;STEP与reader接口、processor接口、writer接口分别对接。
[0030]reader:数据源读取接口;
[0031]processor:业务逻辑处理接口;
[0032]writer:处理后的数据输出接口。
[0033]基于图1的元素关系,本专利技术创建了一个统一的、规范性的批处理公共类,供独立的业务reader继承,方法的逻辑利用缓存,实际过程如图2所示,其中:
[0034]业务reader:开发人员仅需根据业务需求编写查询/读取逻辑,将待处理数据流转至processor层,待处理数据是通过下面reader加载处理得本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高spring

batch框架批处理执行效率的方法,其特征在于,包括:基于文件线程数据库缓存接口,创建线程分片文件,随后加载分页条数并写入,将单独的大文件或大结果集按规则拆分成小文件或小结果集,供后续处理;利用业务reader接口,根据业务需求编写查询/读取逻辑,通过文件线程数据库缓存接口加载待处理数据,并将待处理数据流转至processor层;利用文件缓存实体接口配置单次缓存数,从线程分片文件中一次性读取对应的行数据,并将其转换为行数据实体,写入至redis缓存中;利用文件读取接口配置读取文件的基本信息;通过springframework的Reader接口创建spring

batch框架公共类。2.根据权利要求1所述的提高spring

batch框架批处理执行效率的方法,其特征在于,所述文件线程数据库缓存接口利用spring的TaskExecutor创建线程分片文件。3.根据权利要求2所述的提高spring

batch框架批处理执行效率的方法,其特征在于,所述文件线程数据库缓存接口通过batchKeyLoadPageSize参数加载分页条数并写入,将单独的...

【专利技术属性】
技术研发人员:王钰博徐俊霞
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:

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

1