本发明专利技术提供了一种大数据量批处理系统,包括:中间件单元用于向一级缓存装置发送查询请求,以及接收来自二级缓存装置的二级分页主键集合,根据二级分页主键集合向数据库查询待处理数据并在对待处理数据进行计算处理后,向数据库发送持久化数据请求;一级缓存装置用于向数据库查询符合查询请求的主键集合,以及根据主键集合生成一级分页主键集合并将一级分页主键集合返回至二级缓存装置;二级缓存装置用于根据一级分页主键集合生成二级分页主键集合并将二级分页主键集合返回至中间件单元。本发明专利技术还提供了一种大数据量批处理方法。根据本发明专利技术的技术方案,可大大提高系统海量数据的处理速度,降低系统处理时间,进而提升系统的综合性能。
【技术实现步骤摘要】
本专利技术涉及计算机
,具体而言,涉及一种大数据量批处理系统和一种大数据量批处理方法。
技术介绍
目前大型的联机事务处理系统(OLTP)中,衡量其系统性能好坏的指标,往往是一些关键核心算法在大数据量应用场景下的处理速度,而处理速度的快慢直接影响整个系统的性能。一个大型的信息化系统,往往都有一些自己比较复杂业务处理逻辑、业务处理算法,当这些复杂的业务处理在小数据量应用场景下效率问题往往都被忽视,因为这种场景下系统响应速度是比较快的,而在大数据量情况下可能就会出现系统处理性能的瓶颈,长时间无响应或者直接宕机等严重情况,那么其中比较共性和核心的问题就是第一,如果数据量过大,程序一次性读到内存中可能造成系统内存溢出;第二,如果不是一次性读取数据到内存中,循环读取一条一条数据在进行处理,则算法由批处理变成了循环单个处理,也必定大大影响系统的性能。对此,现有技术使用后台分页技术来解决这样的问题。现有的分页技术都是在数据库端实现分页技术,一种是直接利用SQL语句来进行分页,例如第一次取第1-50条记录,第二次取第51-100条记录等等依次类推,这种方式虽然达到了每次读取有限的记录加载到内存中,但是数据库端的压力依然很大,因为每次SQL语句的查询都是对结果集全纪录的扫描,处理速度并没有优化;另外一种是通过代码来实现分页,例如JAVA中利用ResultSet结果集进行循环遍历来实现,第一次遍历第1_50条记录并取出。第二次遍历第1-100条记录,但只取出第51-100条记录,这种方式依然存在每次预先查询所有记录的缺点;其次还有一种通过预先查出将满足条件结果集的主键PK,然后存入临时表并编上序号,之后通过序号一批批读出PK集合,在利用PK集合到数据库中查询出数据,这种方式虽然解决了前面的问题,但是由于要一批批从数据库临时表中读取数据,在高并发的情况下,数据库端的压力还是非常大,并且会有多次中间件单元到数据库的连接、查询、数据网络传输,在窄带环境中,效率依然存在一些瓶颈,另外没有合理的利用中间件单元资源。最后上述三种方案都没有提出加载数据到内存中后,如何用一种通用的方式进一步优化数据处理的速度,都只是考虑解决整个算法中数据加载的瓶颈,而往往大数据量批处理算法往往有查询加载和数据处理持久化两个过程,并且分页处理如何自动适配多数据库,这些都是问题。所以,如何解决大数据量加载过程中中间件单元资源和数据库资源的合理使用,如何使分页底层自适应多种数据库,如何提出一整套解决方法和系统,防止中间件单元内存溢出、减轻数据库端处理压力、降低中间件单元和数据库之间网络传输数据量,这是亟待解决的技术问题
技术实现思路
本专利技术正是基于上述问题,提出了一种大数据量批处理技术,能够防止中间件单元内存溢出、减轻数据库端的处理压力。根据本专利技术的一个方面,本专利技术提供了一种大数据量批处理系统,包括中间件单元、一级缓存装置和二级缓存装置,其中,所述中间件单元用于向所述一级缓存装置发送查询请求,以及接收来自所述二级缓存装置的二级分页主键集合,根据所述二级分页主键集合向数据库查询待处理数据并在对所述待处理数据进行计算处理后,向所述数据库发送持久化数据请求;所述一级缓存装置用于向所述数据库查询符合所述查询请求的主键集合,以及根据所述主键集合生成一级分页主键集合并将所述一级分页主键集合返回至所述二级缓存装置;所述二级缓存装置用于根据所述一级分页主键集合生成二级分页主键集合并将所述二级分页主键集合返回至所述中间件单元。通过上述技术方案,在中间件读取数据的过程中加入两级缓存结构,大大优化数据读取,解决了中间件内存溢出的技术问题。在上述技术方案中,优选的,还可以包括第一设置单元,设置所述一级缓存装置的一级缓存阈值;所述一级缓存装置还用于在所述主键集合的数据量小于等于所述一级缓存阈值时,直接将所述一级分页主键集合返回至所述二级缓存装置,以及在所述主键集合的数据量大于所述一级缓存阈值时,建立并插入临时表,对所述临时表进行分页并将获取的主键返回至所述二级缓存装置。如果只有一级缓存结构来解决中间件内存溢出的问题,则必须对每页主键数据量做更细粒度的控制,当采用了两级缓存结构之后,由于一级缓存返回的只是主键,每一个主键只是一个固定长度的字符串,占用内存较少,所以可大大提高一级缓存结构每页的主键数据总量。在上述技术方案中,优选的,还可以包括第二设置单元,设置所述二级缓存装置的二级缓存阈值;所述二级缓存装置还用于在所述一级分页主键的数据量小于等于所述二级缓存阈值时,直接将所述二级分页主键集合返回至所述中间件单元,以及在所述主键集合的数据量大于所述二级缓存阈值时,将所述二级分页主键集合暂存于内存,从所述内存中取出每一页主键数据,根据所述每一页主键数据查询所述待处理数据。基于中间件实际处理数据的占用量设置二级缓存装置的二级缓存阈值,合理设置各级缓存结构的存储阈值能够最大限度的提升系统的处理效率。上述技术方案中,优选的,所述中间件单元包括事务建立子单元,用于建立独立事务;加锁子单元,用于对所述待处理数据添加中间件单元级别主键锁,对所述待处理数据进行处理,在处理结束后,对所述中间件单元级别锁进行解锁。每一页数据采用独立事务处理,也就是说每页数据处理完毕后事务立即提交,而不是仅在整个算法最外层起一个事务,不会对数据库中所有数据进行长时间加锁锁定,从而提升数据库整体并发处理能力,降低了数据库端的压力。在上述任一技术方案中,优选的,还可以包括自识别装置,使所述一级缓存装置自适应多类型数据库。根据本专利技术的另一方面,还提供了一种大数据量批处理方法,包括以下步骤步骤402,中间件单元向一级缓存装置发送查询请求,数据库返回符合所述查询请求的主键集合至所述一级缓存装置;步骤404,所述一级缓存装置根据所述主键集合生成一级分页主键集合并将所述一级分页主键集合返回至二级缓存装置;步骤406,所述二级缓存装置根据所述一级分页主键集合生成二级分页主键集合并将所述二级分页主键集合返回至所述中间件单元;步骤408,所述中间件单元根据所述二级分页主键集合向所述数据库查询待处理数据并再对所述待处理数据进行计算处理后,向所述数据库发送持久化数据请求。通过上述技术方案,在中间件读取数据的过程中加入两级缓存结构,大大优化数据读取,解决了中间件内存溢出的技术问题。在上述技术方案中,优选的,所述步骤404具体包括设置所述一级缓存装置的一级缓存阈值;在所述主键集合的数据量小于等于所述一级缓存阈值时,直接将所述一级分页主键集合返回至所述二级缓存装置;在所述主键集合的数据量大于所述一级缓存阈值时,建立并插入临时表,对所述临时表进行分页并将获取的主键返回至所述二级缓存装置。如果只有一级缓存结构来解决中间件内存溢出的问题,则必须对每页主键数据量做更细粒度的控制,当采用了两级缓存结构之后,由于一级缓存返回的只是主键,每一个主键只是一个固定长度的字符串,占用内存较少,所以可大大提高一级缓存结构每页的主键数据总量。在上述技术方案中,优选的,所述步骤406具体包括设置所述二级缓存装置的二级缓存阈值;在所述一级分页主键的数据量小于等于所述二级缓存阈值时,直接将所述二级分页主键集合返回至所述中间件单元;在所述主键集合的数据量大于所述二级缓存阈值时本文档来自技高网...
【技术保护点】
一种大数据量批处理系统,其特征在于,包括:中间件单元、一级缓存装置和二级缓存装置,其中,所述中间件单元用于向所述一级缓存装置发送查询请求,以及接收来自所述二级缓存装置的二级分页主键集合,根据所述二级分页主键集合向数据库查询待处理数据并在对所述待处理数据进行计算处理后,向所述数据库发送持久化数据请求;所述一级缓存装置用于向所述数据库查询符合所述查询请求的主键集合,以及根据所述主键集合生成一级分页主键集合并将所述一级分页主键集合返回至所述二级缓存装置;所述二级缓存装置用于根据所述一级分页主键集合生成二级分页主键集合并将所述二级分页主键集合返回至所述中间件单元。
【技术特征摘要】
1.一种大数据量批处理系统,其特征在于,包括中间件单元、一级缓存装置和二级缓存装置,其中, 所述中间件单元用于向所述一级缓存装置发送查询请求,以及接收来自所述二级缓存装置的二级分页主键集合,根据所述二级分页主键集合向数据库查询待处理数据并在对所述待处理数据进行计算处理后,向所述数据库发送持久化数据请求; 所述一级缓存装置用于向所述数据库查询符合所述查询请求的主键集合,以及根据所述主键集合生成一级分页主键集合并将所述一级分页主键集合返回至所述二级缓存装置; 所述二级缓存装置用于根据所述一级分页主键集合生成二级分页主键集合并将所述二级分页主键集合返回至所述中间件单元。2.根据权利要求1所述的大数据量批处理系统,其特征在于,还包括第一设置单元,设置所述一级缓存装置的一级缓存阈值; 所述一级缓存装置还用于在所述主键集合的数据量小于等于所述一级缓存阈值时,直接将所述一级分页主键集合返回至所述二级缓存装置,以及在所述主键集合的数据量大于所述一级缓存阈值时,建立并插入临时表,对所述临时表进行分页并将获取的主键返回至所述二级缓存装置。3.根据权利要求1所述的大数据量批处理系统,其特征在于,还包括 第二设置单元,设置所述二级缓存装置的二级缓存阈值; 所述二级缓存装置还用于在所述一级分页主键的数据量小于等于所述二级缓存阈值时,直接将所述二级分页主键集合返回至所述中间件单元,以及在所述主键集合的数据量大于所述二级缓存阈值时,将所述二级分页主键集合暂存于内存,从所述内存中取出每一页主键数据,根据所述每一页主键数据查询所述待处理数据。4.根据权利要求3所述的大数据量批处理系统,其特征在于,所述中间件单元包括 事务建立子单元,用于建立独立事务; 加锁子单元,用于对所述待处理数据添加中间件单元级别主键锁,对所述待处理数据进行处理,在处理结束后,对所述中间件单元级别锁进行解锁。5.根据权利要求1至4中任一项所述的大数据量批处理系统,其特征在于,还包括自识别装置...
【专利技术属性】
技术研发人员:张成,
申请(专利权)人:用友软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。